summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | Machine file pkg_config_path overrides environmentXavier Claessens2020-10-163-13/+15
| | | | | | | | | | | | | | | | | | This is consistent with c_args in machine file overriding CFLAGS from env. This also spotted an issue where in a native build this resulted in pkg_config_path being /bar instead of /foo: `-Dpkg_config_path=/foo -Dbuild.pkg_config_path=/bar` Fixes: #7573
* | Add test case for "subproject:opt" in project()Xavier Claessens2020-10-163-0/+7
| | | | | | | | This is regression test for #7573
* | Refactor handling of machine file optionsXavier Claessens2020-10-166-221/+140
|/ | | | | | It is much easier to not try to parse options into complicated structures until we actually collected all options: machine files, command line, project()'s default_options, environment.
* compilers/cuda: Use format_map(mapping) instead of format(**mapping)Carlos Bederian2020-10-161-2/+2
|
* Add CUDA compiler header symbol testsCarlos Bederian2020-10-161-0/+27
|
* compilers/cuda: Fix has_header_symbol checkCarlos Bederian2020-10-161-4/+17
|
* Fix consistency in variables kwargXavier Claessens2020-10-1611-31/+58
| | | | | Share common code to extract the `variables` kwarg in declare_dependency() and pkg.generate().
* windows: Avoid target name clash happening in GTK+Xavier Claessens2020-10-151-1/+3
|
* gnome: generate cpp gresource source in cpp projectsmimi899992020-10-151-2/+8
| | | | Closes #7839
* intro: Add extra_files key to intro output (fixes #7310)Daniel Mensinger2020-10-1510-57/+116
|
* Merge pull request #6968 from xclaesse/auto-promoteJussi Pakkanen2020-10-1414-187/+309
|\ | | | | Merge wraps from subprojects into wraps from main project
| * wrap: Add 'redirect' type and use it when auto promoteXavier Claessens2020-10-132-13/+87
| |
| * Add wrap mode to disable auto promoteXavier Claessens2020-10-135-8/+20
| |
| * wrap: Use sub-subproject packagefilesXavier Claessens2020-10-132-5/+6
| |
| * interpreter: Improve message when fallback dependency is not foundXavier Claessens2020-10-131-32/+48
| | | | | | | | | | | | | | | | | | | | - Log the message before raising the exception. - Add a reason when the dependency is not found because the subproject failed to configure, because it was not obvious in the case the subproject failed to configure earlier while looking for an optional dependency. - Avoid double message when the subproject has overriden the dependency and we provided the fallback variable as well.
| * Merge wraps from subprojects into wraps from main projectXavier Claessens2020-10-1311-97/+116
| | | | | | | | | | | | | | | | | | | | | | | | | | wraps from subprojects are now merged into the list of wraps from main project, so they can be used to download dependencies of dependencies instead of having to promote wraps manually. If multiple projects provides the same wrap file, the first one to be configured wins. This also fix usage of sub-subproject that don't have wrap files. We can now configure B when its source tree is at `subprojects/A/subprojects/B/`. This has the implication that we cannot assume that subproject "foo" is at `self.subproject_dir / 'foo'` any more.
| * interpreter: Rename dirname to subp_nameXavier Claessens2020-10-131-65/+65
| | | | | | | | | | | | | | | | dirname is confusing because the name of a subproject does not always match its directory name, the wrap file can define another directory. For example foo.wrap will often extract the subproject into foo-1.2 directory, in that case the subproject name is 'foo' and the subproject directory is 'foo-1.2'.
* | vs: add static_from_buildtype to b_vscrtPeter Harris2020-10-145-23/+41
|/
* include_type: Add CMake subporject dependency method (fixes #6879)Daniel Mensinger2020-10-134-5/+21
|
* include_type: honor include_type in dependency fallbacks (fixes #7503)Daniel Mensinger2020-10-132-0/+11
|
* Merge pull request #7816 from mensinda/cmCrossJussi Pakkanen2020-10-1337-282/+605
|\ | | | | cmake: Cross compilation support
| * cmake: Add cross docsDaniel Mensinger2020-10-133-0/+102
| |
| * cmake: Add cross testsDaniel Mensinger2020-10-1324-14/+95
| |
| * cmake: Add cross compilation supportDaniel Mensinger2020-10-1310-268/+408
| |
* | mtest: Allow filtering tests by subprojectNirbheek Chauhan2020-10-133-7/+53
|/ | | | | | | | | | | | You could always specify a list of tests to run by passing the names as arguments to `meson test`. If there were multiple tests with that name (in the same project or different subprojects), all of them would be run. Now you can: 1. Run all tests with the specified name from a specific subproject: `meson test subprojname:testname` 1. Run all tests defined in a specific subproject: `meson test subprojectname:` Also forbid ':' in test names. We already forbid this elsewhere, so should not be a big deal.
* msubprojects: Handle wrap-file to wrap-git caseXavier Claessens2020-10-134-19/+57
|
* msubprojects: Handle change of URL in wrap-gitXavier Claessens2020-10-133-5/+33
|
* ci: fix fedora imageDaniel Mensinger2020-10-131-4/+4
|
* cuda: Also read CUDART_VERSION from cuda_runtime_api.hDaniel Mensinger2020-10-131-2/+25
|
* ci: Add an interactive mode (testTTY) for the CI image builderDaniel Mensinger2020-10-133-9/+29
|
* exclude generated file from clang-tidy processingMichele Dionisio2020-10-121-1/+3
| | | | | | by default run_clang_tidy process al file in compile_commands.json but the file generated has to be esclude like already done from manual_clangformat
* Merge pull request #7740 from bonzini/fallback-falseJussi Pakkanen2020-10-1211-53/+130
|\ | | | | Allow blocking/forcing automatic subproject search
| * dependency: support boolean argument "allow_fallback"Paolo Bonzini2020-10-0811-13/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sometimes, distros want to configure a project so that it does not use any bundled library. In this case, meson.build might want to do something like this, where slirp is a combo option with values auto/system/internal: slirp = dependency('', required: false) if get_option('slirp') != 'internal' slirp = dependency('slirp', required: get_option('slirp') == 'system') endif if not slirp.found() slirp = subproject('libslirp', ...) .variable('...') endif and we cannot use "fallback" because the "system" value should never look for a subproject. This worked until 0.54.x, but in 0.55.x this breaks because of the automatic subproject search. Note that the desired effect here is backwards compared to the policy of doing an automatic search on "required: true"; we only want to do the search if "required" is false! It would be possible to look for the dependency with `required: false` and issue the error manually, but it's ugly and it may produce an error message that looks "different" from Meson's. Instead, with this change it is possible to achieve this effect in an even simpler way: slirp = dependency('slirp', required: get_option('slirp') != 'auto', allow_fallback: get_option('slirp') == 'system' ? false : ['slirp', 'libslirp_dep']) The patch also adds support for "allow_fallback: true", which is simple and enables automatic fallback to a wrap even for non-required dependencies.
| * interpreter: clean up handling of force_fallbackPaolo Bonzini2020-10-082-14/+13
| | | | | | | | | | | | | | | | Force_fallback is not an interpreter keyword argument, and there is no reason to handle it as one since it is not used anywhere else (and in fact is explicitly ignored by get_dep_identifier). Use a Python keyword argument instead, which makes the code simpler.
| * interpreter: refactor handling of dependency(fallback: ...)Paolo Bonzini2020-10-081-21/+22
| |
| * docs: improve documentation of subproject fallbackPaolo Bonzini2020-10-081-15/+34
| | | | | | | | | | | | | | | | Automatic fallback to subprojects is complicated and should be pointed out outside the "fallback" keyword argument. It is also surprising that fallback to a subproject will not happen if override_dependency has already been used with the request dependency. Document all this.
* | mtest: collect failures regardless of colorized consoleCamilo Celis Guzman2020-10-121-9/+11
| |
* | typing: fix mypy typing errorDaniel Mensinger2020-10-121-3/+3
| |
* | Update wrap maintenance documentation. [skip ci]Jussi Pakkanen2020-10-103-20/+32
| |
* | add test case for #6365Sahnvour2020-10-105-0/+35
| |
* | Properly handle the case of linking static library with custom targetsSahnvour2020-10-101-4/+31
|/
* Tests: py.dependency() now has required:true by defaultXavier Claessens2020-10-071-1/+1
| | | | | It used to ignore the required argument and got fixed to be consistent with dependency() function.
* Add win_subsystem kwarg. Closes #7765.Jussi Pakkanen2020-10-079-11/+94
|
* python.dependency() is not respecting 'required' kwargXavier Claessens2020-10-061-2/+9
|
* environment: provide a more detailed explanation of linker detection failuresDylan Baker2020-10-061-2/+8
| | | | | | | | Just saying "it failed" is accurate, but not useful to helping someone figure out why it failed. Giving them the stdout and stderr (like we might with compilers) should help people resolve the issue. Fixes: #7173
* compilers: Enable C++20 for Intel C++ Compiler.Vinson Lee2020-10-061-0/+3
| | | | | | | | Intel C++ Compiler 19.1 has C++20 features. https://software.intel.com/content/www/us/en/develop/articles/intel-c-compiler-191-for-linux-release-notes-for-intel-parallel-studio-xe-2020.html Signed-off-by: Vinson Lee <vlee@freedesktop.org>
* options: Handle updates to choices in optionsDylan Baker2020-10-055-5/+82
| | | | | | | | | | | | Currently if you change the `choices` field in the meson_options.txt file, no update will be done until `meson setup --wipe` is called. Now if the choices change then the options will be properly merged. If the currently select value is still valid it is guaranteed to be kept, if it is now invalid the new default value will be used and a warning will be printed. Fixes #7386
* Never run clang-format / clang-tidy against directoriesBernd Busse2020-10-055-0/+8
| | | | | | | `pathlib.Path.glob()` also returns directories that match source filenames (i.e. a directory named `test.h/`), but `clang-format` and `clang-tidy` fail when handed a directory. We manually skip calling `clang-format` and `clang-tidy` on those directories.
* machinefiles: Allow keys to be stored case insensitiveDylan Baker2020-10-056-3/+28
| | | | | | | | | | | This is required to make the various keys in the [user options] section work the same as they do in the meson_options.txt file, where we don't have any rules about case sensitivity. There is some risk here. Someone may be relying on this lower by default behavior, and this could break their machine files. Fixes #7731
* linkers: Drop -pie on macOSRoman Bolshakov2020-10-041-1/+1
| | | | | | | | | | | Projects that specify b_pie=true clutter build logs with the warning: clang: warning: argument unused during compilation: '-pie' [-Wunused-command-line-argument] No option is needed to produce PIE binaries because ld64 is making PIE executables on 10.7 and above by default, as documented in ld(1). Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>