Commit Graph

10144 Commits

Author SHA1 Message Date
Daniel Mensinger 1eb9d8ad6e cmake: Always create missing includes in build dir
There really isn't any reason to not always create missing
include directories inside the build dir. Just restricting
this to generate generated sources should work in an ideal
world, however, there exists lots of suboptimal CMake code
where this assumption is not always true.
2020-10-24 19:31:15 +02:00
Dylan Baker e8399c8c6e
depenencies/llvm: Handle llvm-config --shared-mode failing (#7379)
* depenencies/llvm: Handle llvm-config --shared-mode failing

Fixes: #7371
Fixes: #7878

* test cases/llvm: Refactor to use test.json

Instead of trying to cover everything internally
2020-10-22 17:21:14 +03:00
Danilo Spinella e7009d439c Syntax.md: Fix variable used in substring example 2020-10-22 08:47:24 -04:00
Xavier Claessens 14fd1a329a pkgconfig: Define libdir and includedir in -uninstalled.pc files
This fixes glib-2.0-uninstalled.pc file.
GLib does `extra_cflags : ['-I${libdir}/glib-2.0/include']` because some
of its headers gets installed there. But when used uninstalled that path
makes no sense and pkg-config aborts because ${libdir} is not defined.
This cannot be worked around by GLib because Meson does not allow
setting different `extra_cflags` for -uninstalled.pc, and does not allow
setting libdir in `uninstalled_variables`.
2020-10-22 00:58:30 +03:00
Dylan Baker bf5bcad05f interpreter: Add missing new feature flag for executable(win_subsystem)
I noticed this when reviewing #7872
2020-10-19 13:48:56 -04:00
Paolo Bonzini e36b1923e2 fix markdown issue 2020-10-19 09:40:31 -07:00
Paolo Bonzini df29f760dd switch gui_app deprecation to FeatureDeprecatedKwargs
The deprecation message for "gui_app" is appearing for every target
rather than just once, and even if the required version is older
than 0.56.0.  Use @FeatureDeprecatedKwargs to fix both issues.
2020-10-19 09:40:31 -07:00
Ken Cunningham faabbb3bb2 fix typo "machintosh" -> "macintosh"
fixes machine detection for
power macintosh systems
2020-10-19 09:39:03 -07:00
Jussi Pakkanen 55d370e565 Bump version number for rc1. 2020-10-19 00:34:49 +03:00
Jussi Pakkanen 0f4f0acaff Remove a status message that leaks to stdout. 2020-10-19 00:04:38 +03:00
Jussi Pakkanen 64f8479097 In text, betterer grammer usings. 2020-10-19 00:04:14 +03:00
Jussi Pakkanen ac6041e110 Add delays to test for timestamp issues on mac. 2020-10-19 00:03:37 +03:00
Paolo Bonzini 021d242f9c build: use PIE objects for static libraries if b_staticpic=false but b_pie=true
If static_library is used as a convenience library (e.g. for link_whole)
it should in principle not need position independent code.
However, if the executables that the libraries is linked to are PIE,
the non-PIC objects in the static library will cause linker errors.
To avoid this, obey b_pie for static libraries if either b_staticpic=false
or they use "pic: false".

Without this patch, QEMU cannot use b_staticpic, which causes a slowdown
on some QEMU benchmarks up to 20%.
2020-10-18 18:56:35 +03:00
Xavier Claessens a050db5e30 Fix gnome.compile_resources() when glib is a subproject
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-17 22:25:57 +03:00
Xavier Claessens 0c95d92404 pkgconfig: InternalDependency's ext_deps should be private by default
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-17 15:53:46 +03:00
Jussi Pakkanen 66d3747efe
Merge pull request #7859 from mensinda/cmBlacklist
cmake: ignore CMAKE_TOOLCHAIN_FILE and CMAKE_PROJECT_INCLUDE
2020-10-17 12:35:35 +03:00
Xavier Claessens ed70c6df52 Subprojects should not inherit parent override
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-16 17:42:24 -04:00
Xavier Claessens 7271b1e942 Machine file pkg_config_path overrides environment
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-16 17:42:24 -04:00
Xavier Claessens 254b836bd4 Add test case for "subproject:opt" in project()
This is regression test for #7573
2020-10-16 17:42:24 -04:00
Xavier Claessens 7902d2032d Refactor handling of machine file options
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-16 17:42:24 -04:00
Daniel Mensinger 36cde6f91e
cmake: Ignore additional internal CMake variables 2020-10-16 22:43:20 +02:00
Daniel Mensinger 5f1da86a9b
cmake: ignore CMAKE_TOOLCHAIN_FILE and CMAKE_PROJECT_INCLUDE to avoid conflicts with the meson CMake logic 2020-10-16 20:44:04 +02:00
Carlos Bederian c3b3dc598e compilers/cuda: Use format_map(mapping) instead of format(**mapping) 2020-10-16 18:18:46 +02:00
Carlos Bederian 71be873be2 Add CUDA compiler header symbol tests 2020-10-16 18:18:46 +02:00
Carlos Bederian f09457a1e8 compilers/cuda: Fix has_header_symbol check 2020-10-16 18:18:46 +02:00
Xavier Claessens bcf369ea3c Fix consistency in variables kwarg
Share common code to extract the `variables` kwarg in
declare_dependency() and pkg.generate().
2020-10-16 18:09:56 +03:00
Xavier Claessens 2e80c52129 windows: Avoid target name clash happening in GTK+ 2020-10-15 23:07:29 +03:00
mimi89999 4d140eb830 gnome: generate cpp gresource source in cpp projects
Closes #7839
2020-10-15 08:09:51 -04:00
Daniel Mensinger 7c377e5a5d intro: Add extra_files key to intro output (fixes #7310) 2020-10-15 01:56:59 +03:00
Jussi Pakkanen 30d78f3981
Merge pull request #6968 from xclaesse/auto-promote
Merge wraps from subprojects into wraps from main project
2020-10-14 19:40:34 +03:00
Peter Harris 8b8a610ea4 vs: add static_from_buildtype to b_vscrt 2020-10-14 19:35:28 +03:00
Xavier Claessens 3a01823786 wrap: Add 'redirect' type and use it when auto promote 2020-10-13 17:55:16 -04:00
Xavier Claessens 173c115834 Add wrap mode to disable auto promote 2020-10-13 17:55:16 -04:00
Xavier Claessens a20d7ad67d wrap: Use sub-subproject packagefiles 2020-10-13 17:55:16 -04:00
Xavier Claessens 8281bd9e23 interpreter: Improve message when fallback dependency is not found
- 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-13 17:55:16 -04:00
Xavier Claessens 6333ee88c1 Merge wraps from subprojects into wraps from main project
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-13 17:55:16 -04:00
Xavier Claessens 311a07c39a interpreter: Rename dirname to subp_name
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-13 17:53:05 -04:00
Daniel Mensinger e36f713a7f include_type: Add CMake subporject dependency method (fixes #6879) 2020-10-13 23:51:25 +03:00
Daniel Mensinger e00df9046d include_type: honor include_type in dependency fallbacks (fixes #7503) 2020-10-13 23:51:25 +03:00
Jussi Pakkanen 3372c58ca6
Merge pull request #7816 from mensinda/cmCross
cmake: Cross compilation support
2020-10-13 23:38:51 +03:00
Nirbheek Chauhan 55cf399ff8 mtest: Allow filtering tests by subproject
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-13 19:01:15 +03:00
Daniel Mensinger f5c9bf96b3
cmake: Add cross docs 2020-10-13 17:04:20 +02:00
Daniel Mensinger b27af7e465
cmake: Add cross tests 2020-10-13 17:04:20 +02:00
Daniel Mensinger 7e58f33376
cmake: Add cross compilation support 2020-10-13 17:04:19 +02:00
Xavier Claessens dccff1f2bc msubprojects: Handle wrap-file to wrap-git case 2020-10-13 11:12:49 +00:00
Xavier Claessens 3ade5bbd92 msubprojects: Handle change of URL in wrap-git 2020-10-13 11:12:49 +00:00
Daniel Mensinger 47046c3fb9 ci: fix fedora image 2020-10-13 00:30:31 +02:00
Daniel Mensinger 392bdcbddd cuda: Also read CUDART_VERSION from cuda_runtime_api.h 2020-10-13 00:30:31 +02:00
Daniel Mensinger f6b346f2e2 ci: Add an interactive mode (testTTY) for the CI image builder 2020-10-13 00:30:31 +02:00
Michele Dionisio eef880f509 exclude generated file from clang-tidy processing
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-12 18:17:15 +03:00