Commit Graph

5937 Commits

Author SHA1 Message Date
Nirbheek Chauhan 2ac6f6be32 test cases: Merge two configure_file tests
Unnecessary overhead having a separate test like that.
2018-07-04 00:25:01 +00:00
Stephen Gallagher 70bc754a2c Add libmodulemd to the Users list (#3827) [skip ci]
libmodulemd is a GObject Introspected C library using meson to build and generate gtk-doc HTML.
2018-07-03 16:58:42 +00:00
Nirbheek Chauhan d58379abbe
Users.md: Add libmodulemd [skip ci] 2018-07-03 22:26:55 +05:30
Bruce Richardson 755ec53a6b prune nonexistent dirs from library search path
Rather than storing in the cache of search paths the full list returned
from the compiler and having each call ignore the non-existent ones, remove
from the list all non-existent ones before returning to the caching function.
2018-07-03 12:50:17 +00:00
Nirbheek Chauhan 8aba4aa2d7 0.47 release notes: Document polkit support [skip ci] 2018-07-03 03:12:55 +05:30
Nirbheek Chauhan c47c7105cc 0.47 release notes: Fix syntax, rephrase confusing sections [skip ci] 2018-07-03 01:51:54 +05:30
Jussi Pakkanen 36fbb48b43 Bump version number for new development. [skip ci] 2018-07-02 22:19:32 +03:00
Jussi Pakkanen 5d08219464 Update everything for new release. 2018-07-02 20:50:56 +03:00
Jussi Pakkanen 1c44afdeed
Merge pull request #3823 from mesonbuild/nirbheek/fix-featurenew-subprojects
Nirbheek/fix featurenew subprojects
2018-07-02 20:37:59 +03:00
Jussi Pakkanen 1ec3c79056 Documentation cleanup. [skip ci] 2018-07-02 20:35:00 +03:00
Nirbheek Chauhan cc58fdac33 setup.cfg: Don't warn about commented code 2018-07-02 19:52:53 +05:30
Nirbheek Chauhan d6a9b4cc79 Contributing.md: Document procedure for new features [skip ci] 2018-07-02 19:52:53 +05:30
Nirbheek Chauhan a1d9adba09 FeatureNew: Make all checks subproject-specific
We now pass the current subproject to every FeatureNew and
FeatureDeprecated call. This requires a bunch of rework to:

1. Ensure that we have access to the subproject in the list of
   arguments when used as a decorator (see _get_callee_args).
2. Pass the subproject to .use() when it's called manually.
3. We also can't do feature checks for new features in
   meson_options.txt because that's parsed before we know the
   meson_version from project()
2018-07-02 19:52:53 +05:30
Nirbheek Chauhan 5714ba2534 meson.vim: Add missing disabler() entry [skip ci] 2018-07-02 18:49:34 +05:30
Nirbheek Chauhan cd1d53ee75 FeatureNew: Declare functions as class methods explicitly 2018-07-02 07:05:08 +00:00
Nirbheek Chauhan a524524ac0 interpreter: Use is_subproject() everywhere 2018-07-02 07:05:08 +00:00
Nirbheek Chauhan 907a68bcf1 FeatureNew: Fix method names for some feature checks 2018-07-02 07:05:08 +00:00
Nirbheek Chauhan 18cd3bd31a FeatureNew: Minor code cleanup, no changes
Early return reduces indentation level and makes the code easier to
read.
2018-07-02 07:05:08 +00:00
Nirbheek Chauhan 817dcaa23b Remove permittedSnippetKwargs, snippets are not special
All we needed to do was change _get_callee_args() to also support
snippets.
2018-07-02 07:05:08 +00:00
Mathieu Duponchelle d0c5fddd72 Add some tests for FeatureNew 2018-07-02 07:05:08 +00:00
Salamandar df1970d3ad Various bug fixes for FeatureNew
* Use _get_callee_args to unwrap function call arguments, needed for
  module functions.

* Move some FeatureNewKwargs from build.py to interpreter.py

* Print a summary for featurenew only if conflicts were found. The
  summary now only prints conflicting features.

* Report and store featurenew/featuredeprecated only once

* Fix version comparison: use le/ge and resize arrays to not fail on
  '0.47.0>=0.47'

Closes https://github.com/mesonbuild/meson/issues/3660
2018-07-02 07:05:08 +00:00
Nirbheek Chauhan 5113eb14b9 gnome: Use raw link arguments with g-ir and gtk-doc
Those tools use our arguments to build a file and execute it to
introspect it at runtime. However, they do not know that you can pass
the full path to the library to use, and ignore the arguments.

The long-term fix for this is to have them output a .c file that Meson
will build for them, which they can then run, but that will require
upstream changes:
https://gitlab.gnome.org/GNOME/gtk-doc/merge_requests/1

Closes https://github.com/mesonbuild/meson/issues/3774
2018-07-01 21:54:09 +00:00
Ting-Wei Lan cb36add970 gnome: Distinguish between internal and external linker flags
When an older version of the library being built is installed in the
same prefix as external dependencies, we have to be careful to construct
the linker or compiler command line. If a -L flag from external
dependencoes comes before a -L flag pointing to builddir, it is possible
for the linker to load older libraries from the installation prefix
instead of the newly built ones, which is likely to cause undefined
reference error.

Since the order of dependencies is not significant, we cannot expect
internal dependencies to appear before external dependencies when
recursively iterating the list of dependencies. To make it harder to
make mistakes, linker flags come from internal and external
dependencies are now stored in different order sets. Code using
_get_dependencies_flags are expected to follow the order when
constructing linker command line:

  1. Internal linker flags
  2. LDFLAGS set by users
  3. External linker flags

It is similar to what automake and libtool do for autotools projects.
2018-07-01 21:54:09 +00:00
Christopher Dunn cb2e4877da Debug-log pkg-config calls
resolves #3607
2018-07-01 17:00:33 +00:00
Andrei Alexeyev f7f5e2a725 Don't let build_always take precedence over build_by_default (#3816)
* Don't let build_always take precedence over build_by_default

* Test for proper interaction of build_by_default with build_always

Fixes #3815
2018-07-01 16:55:38 +00:00
Jussi Pakkanen dc683218a4
Proper error message for non-found exe in run_target. Closes #3818 2018-07-01 19:45:03 +03:00
Nirbheek Chauhan 7b2a07bcf9 custom targets: Only add a dependency on absolute path external programs
If the external program is a string that is meant to be searched in
PATH, we can't add a dependency on it at configure time because we don't
know where it will be at compile time.
2018-07-01 13:59:48 +00:00
Nirbheek Chauhan ec29f19c12 Add a helper for fetching of binaries from cross files
A number of cases have to be taken care of while doing this, so
refactor it into a helper on ExternalProgram and use it everywhere.

1. Command is a list of len > 1, use it as-is
2. Command is a list of len == 1 (or a string), use as a string
3. If command is an absolute path, use it as-is
4. If command is not an absolute path, search for it
2018-07-01 13:59:48 +00:00
Nirbheek Chauhan ae8d044cb6 Allow command lists for find_program cross file overrides
This is accepted by all other binaries in the cross file. With this
change, we also don't check whether the specified command exists at
configure time, but that's probably a feature anyway.

Fixes https://github.com/mesonbuild/meson/issues/3737
2018-07-01 13:59:48 +00:00
Nirbheek Chauhan 6bdacba001
Getting-meson.md: Fix incorrect image link [skip ci] 2018-07-01 18:58:23 +05:30
Nirbheek Chauhan 2cbf7caf5c
Nirbheek/fix pkgconfig library dedup (#3813)
* Add a test case for bad de-dup of -framework args

https://github.com/mesonbuild/meson/issues/3800

* pkgconfig: Don't naively de-dup all arguments

Honestly don't know what I was smoking. Of course the `Libs:` field in
a pkg-config file can have arguments other than -l and -L

Closes https://github.com/mesonbuild/meson/issues/3800

* pkgconfig module: Fix needlessly aggressive de-dup
2018-07-01 12:31:31 +00:00
Jussi Pakkanen 76184bb6b8 Document merge workflow for contributors and maintainers. [skip ci] 2018-07-01 01:11:40 +03:00
Jussi Pakkanen 1f6247d118 Add missing file to manifest. [skip ci] 2018-06-30 23:21:16 +03:00
Jon Turney c151eb4967 Improve logging when dependency is anonymous
Various pieces of logging assume the dependency has a name, and aren't
grammatical if the dependency is '', so say it is anonymous instead.
2018-06-30 13:28:15 +00:00
Jon Turney fd4872ae77 More tests to cover missing fallback for a non-found dependency
Fix logic so we correctly raise an exception about missing fallback in the
case where the dependency is required.
2018-06-30 13:28:15 +00:00
Jon Turney 9efdcfbb8d Fix handling of dependency('', fallback: ['subproject', 'dep'])
Also extend a test case to cover this.
2018-06-30 13:28:15 +00:00
Bruce Richardson af546b52ca fix find_library when cross-compiling 32-bit on 64-bit systems
When find_library is used to find dependencies, meson checks all paths for
libraries with all prefixes that could match. This means that when we are
compiling with -m32 on a 64-bit system, meson will find 64-bit libraries and
assumes that they will work. Naturally that is not the case.

The obvious fix is to do a test link against those libraries, but the extra
wrinkle here is that we need to do a "whole link" so as to test the static
libs. A check with gcc+ld on linux shows that unless there are unresolved
symbols from the main.c file, the static library is never checked so we avoid
the error from an incompatible library.
2018-06-30 11:16:03 +00:00
Jussi Pakkanen bde99eb6c4 Warn if using Clang+asan+b_lundef. Closes #764. 2018-06-30 00:50:06 +03:00
Juergen Hoetzel e1eb84eb9e Add feature footer 2018-06-30 00:29:15 +03:00
Juergen Hoetzel 337301a766 Setup mode-specific `comment-start' and `'comment-end'
Get rid of meson.comment-dwim workaround.
2018-06-30 00:29:15 +03:00
Matthias Klumpp 7618fa81d3 d: Don't fail if -link-defaultlib is manually added to the LDC link args 2018-06-30 00:28:39 +03:00
Alberto Sartori 5715284177 add documentation of meson test --print-errorlogs (#3809) [skip ci] 2018-06-29 13:00:19 +00:00
Dylan Baker f3a8f9c34d Options: treat array option -Dopt= and -Dopt=[] as equivalent
Currently the former will be parsed as [''], while the latter is parsed
as [] in python. This makes for some obnoxious special handling
depending on what the user passes. This is even more obnoxious since for
string type arguments this doesn't require special handling.
2018-06-29 10:56:25 +00:00
Jussi Pakkanen 14fe0985f7 Add upgrade support to the MSI generator. [skip ci] 2018-06-28 00:13:01 +03:00
Marvin Scholz 3232806b08 Fix ExtraFrameworkDependency Framework detection
The name splitting was wrong and would not incorrectly handle folders
with two dots, like Foo.framework.dSYM and treat this as 'Foo' instead
of 'Foo.framework', which would lead to meson detecting dSYM bundles
as frameworks and try to use those like a framework, which is wrong.

Fix #3793
2018-06-27 01:17:15 +03:00
Jon Turney 8b12a71f22 Refine documentation for build_always [skip ci]
We mention this is equivalent to setting both build_by_default and
build_always_stale in the release note, and in the warning emitted when it's
used, but not in the reference manual.
2018-06-26 23:05:01 +03:00
Jussi Pakkanen ce7cdadd37 Fix glib build when using MSI installer. Closes #3762. 2018-06-26 23:01:52 +03:00
Xavier Claessens 32c22ec492 gtkdoc: Use generated types file if there is one
Closes: #3773.
2018-06-26 22:58:45 +03:00
Mathieu Duponchelle d784b5772a ArLinker: Use response files on Windows
ninja chokes when building FFmpeg's static libraries, as the
command line can be larger than 32000.

This was disabled on purpose in #1649, but the rsp syntax was
different: this commit makes it so the options and output file
are still passed on the command line, gcc-ar didn't work
otherwise.
2018-06-25 16:12:35 +00:00
Jussi Pakkanen 87871e7b95 Update documentation about compiler envvars and cross files. [skip ci] 2018-06-24 21:19:49 +03:00