aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-10-17Fix gnome.compile_resources() when glib is a subprojectXavier Claessens2-34/+39
When glib is a subproject we should use glib-compile-resources it overrides using find_program() in the case it is not installed on the build machine. With old glib version we have to run glib-compile-resources at configure time to generate the list of dependencies, but not when glib is recent enough.
2020-10-17pkgconfig: InternalDependency's ext_deps should be private by defaultXavier Claessens2-2/+3
This fixes a regression introduced by https://github.com/mesonbuild/meson/pull/7488. InternalDependency's ext_deps previously where simply ignored, but that PR has effect to add many more public Requires in generated pc files.
2020-10-17Merge pull request #7859 from mensinda/cmBlacklistJussi Pakkanen4-3/+41
cmake: ignore CMAKE_TOOLCHAIN_FILE and CMAKE_PROJECT_INCLUDE
2020-10-16Subprojects should not inherit parent overrideXavier Claessens1-5/+2
This was the behaviour in 0.55.0, so this test was assuming a behaviour change. Revert it to the behaviour we had in 0.55.0.
2020-10-16Machine file pkg_config_path overrides environmentXavier Claessens3-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
2020-10-16Add test case for "subproject:opt" in project()Xavier Claessens3-0/+7
This is regression test for #7573
2020-10-16Refactor handling of machine file optionsXavier Claessens6-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.
2020-10-16cmake: Ignore additional internal CMake variablesDaniel Mensinger1-0/+9
2020-10-16cmake: ignore CMAKE_TOOLCHAIN_FILE and CMAKE_PROJECT_INCLUDE to avoid ↵Daniel Mensinger4-3/+32
conflicts with the meson CMake logic
2020-10-16compilers/cuda: Use format_map(mapping) instead of format(**mapping)Carlos Bederian1-2/+2
2020-10-16Add CUDA compiler header symbol testsCarlos Bederian1-0/+27
2020-10-16compilers/cuda: Fix has_header_symbol checkCarlos Bederian1-4/+17
2020-10-16Fix consistency in variables kwargXavier Claessens11-31/+58
Share common code to extract the `variables` kwarg in declare_dependency() and pkg.generate().
2020-10-15windows: Avoid target name clash happening in GTK+Xavier Claessens1-1/+3
2020-10-15gnome: generate cpp gresource source in cpp projectsmimi899991-2/+8
Closes #7839
2020-10-15intro: Add extra_files key to intro output (fixes #7310)Daniel Mensinger10-57/+116
2020-10-14Merge pull request #6968 from xclaesse/auto-promoteJussi Pakkanen14-187/+309
Merge wraps from subprojects into wraps from main project
2020-10-14vs: add static_from_buildtype to b_vscrtPeter Harris5-23/+41
2020-10-13wrap: Add 'redirect' type and use it when auto promoteXavier Claessens2-13/+87
2020-10-13Add wrap mode to disable auto promoteXavier Claessens5-8/+20
2020-10-13wrap: Use sub-subproject packagefilesXavier Claessens2-5/+6
2020-10-13interpreter: Improve message when fallback dependency is not foundXavier Claessens1-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.
2020-10-13Merge wraps from subprojects into wraps from main projectXavier Claessens11-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.
2020-10-13interpreter: Rename dirname to subp_nameXavier Claessens1-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'.
2020-10-13include_type: Add CMake subporject dependency method (fixes #6879)Daniel Mensinger4-5/+21
2020-10-13include_type: honor include_type in dependency fallbacks (fixes #7503)Daniel Mensinger2-0/+11
2020-10-13Merge pull request #7816 from mensinda/cmCrossJussi Pakkanen37-282/+605
cmake: Cross compilation support
2020-10-13mtest: Allow filtering tests by subprojectNirbheek Chauhan3-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.
2020-10-13cmake: Add cross docsDaniel Mensinger3-0/+102
2020-10-13cmake: Add cross testsDaniel Mensinger24-14/+95
2020-10-13cmake: Add cross compilation supportDaniel Mensinger10-268/+408
2020-10-13msubprojects: Handle wrap-file to wrap-git caseXavier Claessens4-19/+57
2020-10-13msubprojects: Handle change of URL in wrap-gitXavier Claessens3-5/+33
2020-10-13ci: fix fedora imageDaniel Mensinger1-4/+4
2020-10-13cuda: Also read CUDART_VERSION from cuda_runtime_api.hDaniel Mensinger1-2/+25
2020-10-13ci: Add an interactive mode (testTTY) for the CI image builderDaniel Mensinger3-9/+29
2020-10-12exclude generated file from clang-tidy processingMichele Dionisio1-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
2020-10-12Merge pull request #7740 from bonzini/fallback-falseJussi Pakkanen11-53/+130
Allow blocking/forcing automatic subproject search
2020-10-12mtest: collect failures regardless of colorized consoleCamilo Celis Guzman1-9/+11
2020-10-12typing: fix mypy typing errorDaniel Mensinger1-3/+3
2020-10-10Update wrap maintenance documentation. [skip ci]Jussi Pakkanen3-20/+32
2020-10-10add test case for #6365Sahnvour5-0/+35
2020-10-10Properly handle the case of linking static library with custom targetsSahnvour1-4/+31
2020-10-08dependency: support boolean argument "allow_fallback"Paolo Bonzini11-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.
2020-10-08interpreter: clean up handling of force_fallbackPaolo Bonzini2-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.
2020-10-08interpreter: refactor handling of dependency(fallback: ...)Paolo Bonzini1-21/+22
2020-10-08docs: improve documentation of subproject fallbackPaolo Bonzini1-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.
2020-10-07Tests: py.dependency() now has required:true by defaultXavier Claessens1-1/+1
It used to ignore the required argument and got fixed to be consistent with dependency() function.
2020-10-07Add win_subsystem kwarg. Closes #7765.Jussi Pakkanen9-11/+94
2020-10-06python.dependency() is not respecting 'required' kwargXavier Claessens1-2/+9