summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* cross: Be more permissive about not-found exe_wrappernirbheek/exe-wrapper-compiler-fallbacksNirbheek Chauhan2018-07-0912-32/+186
| | | | | | | | | | | | | | | | | | | | | | We used to immediately try to use whatever exe_wrapper was defined in the cross file, but some people generate the cross file once and use it for several projects, most of which do not even need an exe wrapper to build. Now we're a bit more resilient. We quietly fall back to using non-exe-wrapper paths for compiler checks and skip the sanity check. However, if some code needs the exe wrapper, f.ex., if you run a built executable using custom_target() or run_target(), we will error out during setup. Tests will, of course, continue to error out when you run them if the exe wrapper was not found. We don't want people's tests to silently "pass" (aka skip) because of a bad CI setup. Closes https://github.com/mesonbuild/meson/issues/3562 This commit also adds a test for the behaviour of exe_wrapper in these cases, and refactors the unit tests a bit for it.
* cross: Use ExternalProgram for cross-file exe_wrapperNirbheek Chauhan2018-07-0910-36/+68
| | | | | | We already have code to fetch and find binaries specified in a cross file, so use the same code for exe_wrapper. This allows us to handle the same corner-cases that were fixed for other cross binaries.
* Print a more usable message when a subproject fails to configureNirbheek Chauhan2018-07-074-8/+24
| | | | | | | Instead of just printing the message in the exception, if it's a MesonException, also print the file and the line number. If it's an unknown exception, print the entire traceback so that we can pin-point what the Meson bug causing it is.
* Raise a MesonException when substituting an invalid valueNirbheek Chauhan2018-07-074-3/+15
| | | | Avoids throwing a traceback. Also, warn when setting such a value.
* Add new method: mlog.deprecation()Nirbheek Chauhan2018-07-076-7/+12
| | | | Instead of constructing it manually, use a helper.
* Merge pull request #3763 from noverby/wip/noverby/jar-linking-manifestJussi Pakkanen2018-07-077-2/+64
|\ | | | | java: support for linking jar files (using manifest)
| * java: prevent creation of manifest duplicate in jarNiclas Moeslund Overby2018-07-031-1/+1
| |
| * java: remove manifest classpath from installed jarNiclas Moeslund Overby2018-07-031-0/+14
| |
| * java: add jar linking testNiclas Moeslund Overby2018-07-035-3/+29
| |
| * java: implement java linkingNiclas Moeslund Overby2018-07-032-2/+24
| |
* | Ask for more details when warning about unknown arch [skip appveyor]Nirbheek Chauhan2018-07-071-1/+3
| |
* | Canonicalise 64-bit PowerPC CPU families to "ppc64"Ross Burton2018-07-072-4/+4
| | | | | | | | | | | | | | Instead of exposing the endianness in the CPU family, canonicalise the CPU family to just "ppc64" to match MIPS (which is also bi-endian). Part of the work for #3842.
* | Reference-manual.md: Document find_library().partial_dependency() [skip ci]Nirbheek Chauhan2018-07-061-4/+12
| | | | | | | | + typos.
* | mlog: Log timestamps in profile-self modeNirbheek Chauhan2018-07-062-1/+15
| | | | | | | | | | This makes it much clearer which statements are taking a long time, and helps in interpreting the outputted profile itself.
* | mlog: Add built-in support for quoting bolded messagesNirbheek Chauhan2018-07-062-25/+31
| | | | | | | | | | This allows us to drop wonky sep='' hacks and manual addition of spaces across the codebase.
* | gnome.gtkdoc: Don't treat install_dir as a file optionNirbheek Chauhan2018-07-063-1/+22
| | | | | | | | | | | | Causes the value to be expanded to current source directory. Fixes https://github.com/mesonbuild/meson/issues/3829
* | Builtin-options.md: broken markdown [skip ci]Nirbheek Chauhan2018-07-061-5/+1
| |
* | run_unittests.py: Test that empty cdata subst are actually doneNirbheek Chauhan2018-07-051-0/+4
| | | | | | | | Improved test for https://github.com/mesonbuild/meson/issues/3826
* | meson.add_install_script: Move notes section up [skip ci]Nirbheek Chauhan2018-07-051-20/+22
| | | | | | | | | | | | | | | | The notes section of add_install_script somehow got separated, which meant that no one reads it anymore. Also rephrase it a bit to clarify that scripts *MUST* handle DESTDIR correctly to mirror what Meson does, and how.
* | Fix flake8 issues (#3834)Jon Turney2018-07-055-3/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Fix flake8 whitespace reports $ flake8 | grep -E '(E203|E221|E226|E303|W291|W293)' ./mesonbuild/coredata.py:337:5: E303 too many blank lines (2) * Fix flake8 'variable assigned value but unused' reports $ flake8 | grep -E F841 ./mesonbuild/modules/gnome.py:922:9: F841 local variable 'target_name' is assigned to but never used * Fix flake8 'imported but unused' reports $ flake8 | grep F401 ./mesonbuild/compilers/__init__.py:128:1: F401 '.c.ArmclangCCompiler' imported but unused ./mesonbuild/compilers/__init__.py:138:1: F401 '.cpp.ArmclangCPPCompiler' imported but unused ./mesonbuild/modules/__init__.py:4:1: F401 '..mlog' imported but unused PR #3717 imports ARMCLANG compilers in __init__, but does not add them to __all__, so they are not re-exported by the compilers package like everything else. * More details about flake8 in Contributing.md Mention that Sider runs flake8 Suggest seting flake8 as a pre-commit hook
* | Fix pkexec command for installation via polkitXi Ruoyao2018-07-041-1/+1
| |
* | find_library: Only run link test on system dirsNirbheek Chauhan2018-07-043-12/+24
| | | | | | | | | | | | | | Paths provided to us by the user or by pkg-config can be (and must be) assumed to be usable since they might not be usable standalone. Closes https://github.com/mesonbuild/meson/issues/3832
* | configure_file: Don't optimize away substitutionsNirbheek Chauhan2018-07-046-22/+52
| | | | | | | | | | | | | | | | | | | | | | It's possible that the configuration data object has components added conditionally, and that sometimes an empty configuration data object is passed on purpose. Instead, we do the substitution and also warn if no tokens were found that could've been substituted. Closes https://github.com/mesonbuild/meson/issues/3826
* | test cases: Merge two configure_file testsNirbheek Chauhan2018-07-043-9/+8
|/ | | | Unnecessary overhead having a separate test like that.
* Add libmodulemd to the Users list (#3827) [skip ci]Stephen Gallagher2018-07-031-1/+1
| | | libmodulemd is a GObject Introspected C library using meson to build and generate gtk-doc HTML.
* Users.md: Add libmodulemd [skip ci]Nirbheek Chauhan2018-07-031-0/+1
|
* prune nonexistent dirs from library search pathBruce Richardson2018-07-031-1/+1
| | | | | | 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.
* 0.47 release notes: Document polkit support [skip ci]Nirbheek Chauhan2018-07-031-0/+8
|
* 0.47 release notes: Fix syntax, rephrase confusing sections [skip ci]Nirbheek Chauhan2018-07-031-56/+62
|
* Bump version number for new development. [skip ci]Jussi Pakkanen2018-07-021-1/+1
|
* Update everything for new release.0.47.0Jussi Pakkanen2018-07-0228-263/+294
|
* Merge pull request #3823 from mesonbuild/nirbheek/fix-featurenew-subprojectsJussi Pakkanen2018-07-0217-153/+232
|\ | | | | Nirbheek/fix featurenew subprojects
| * setup.cfg: Don't warn about commented codeNirbheek Chauhan2018-07-021-0/+2
| |
| * Contributing.md: Document procedure for new features [skip ci]Nirbheek Chauhan2018-07-023-4/+18
| |
| * FeatureNew: Make all checks subproject-specificNirbheek Chauhan2018-07-0213-149/+211
| | | | | | | | | | | | | | | | | | | | | | | | 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()
| * meson.vim: Add missing disabler() entry [skip ci]Nirbheek Chauhan2018-07-021-0/+1
| |
* | Documentation cleanup. [skip ci]Jussi Pakkanen2018-07-021-102/+127
|/
* FeatureNew: Declare functions as class methods explicitlyNirbheek Chauhan2018-07-021-6/+10
|
* interpreter: Use is_subproject() everywhereNirbheek Chauhan2018-07-021-3/+3
|
* FeatureNew: Fix method names for some feature checksNirbheek Chauhan2018-07-022-11/+12
|
* FeatureNew: Minor code cleanup, no changesNirbheek Chauhan2018-07-021-42/+41
| | | | | Early return reduces indentation level and makes the code easier to read.
* Remove permittedSnippetKwargs, snippets are not specialNirbheek Chauhan2018-07-024-24/+17
| | | | | All we needed to do was change _get_callee_args() to also support snippets.
* Add some tests for FeatureNewMathieu Duponchelle2018-07-021-8/+33
|
* Various bug fixes for FeatureNewSalamandar2018-07-024-34/+70
| | | | | | | | | | | | | | | | | * 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
* gnome: Use raw link arguments with g-ir and gtk-docNirbheek Chauhan2018-07-014-19/+32
| | | | | | | | | | | | | 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
* gnome: Distinguish between internal and external linker flagsTing-Wei Lan2018-07-0110-24/+194
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* Debug-log pkg-config callsChristopher Dunn2018-07-011-2/+6
| | | | resolves #3607
* Don't let build_always take precedence over build_by_default (#3816)Andrei Alexeyev2018-07-014-15/+53
| | | | | | | | * Don't let build_always take precedence over build_by_default * Test for proper interaction of build_by_default with build_always Fixes #3815
* Proper error message for non-found exe in run_target. Closes #3818Jussi Pakkanen2018-07-012-0/+6
|
* custom targets: Only add a dependency on absolute path external programsNirbheek Chauhan2018-07-011-1/+5
| | | | | | 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.