aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
AgeCommit message (Collapse)AuthorFilesLines
2019-06-09cmake: Minor fixes to handle some CMake specific behaviorDaniel Mensinger1-13/+25
Now, all source files are ignored that are not part of the language of the target. This is also what CMake does. Additionally it is now supported to build source files that are generated inside the build directory.
2019-06-08Moved RuntimeLibrary property to ItemDefinitionGroup/ClCompilefilippocrocchini1-9/+10
2019-06-06cmake: Fix cygwin failuresDaniel Mensinger1-1/+10
2019-06-06cmake: removed legacy kwargs from interpreter dictDaniel Mensinger1-1/+1
2019-06-06cmake: moved subprojects into the CMake moduleDaniel Mensinger5-29/+106
2019-06-06cmake: Make flake8 happyDaniel Mensinger2-18/+26
2019-06-06cmake: rebase fixesDaniel Mensinger2-5/+6
2019-06-06cmake: set the linker for clang-cl for CMakeDaniel Mensinger1-0/+2
2019-06-06cmake: blacklist some `cl` compiler and linker flagsDaniel Mensinger1-0/+40
2019-06-06cmake: general windows and old CMake fixesDaniel Mensinger2-10/+36
2019-06-06cmake: Some minor style changesDaniel Mensinger1-17/+23
2019-06-06cmake: Added option for additional CMake argsDaniel Mensinger2-10/+14
2019-06-06cmake: Minor fixesDaniel Mensinger2-19/+29
2019-06-06cmake: support object librariesDaniel Mensinger2-7/+47
2019-06-06cmake: Always add the CMake build dir to the include dirsDaniel Mensinger1-1/+2
2019-06-06cmake: Fixed install prefixDaniel Mensinger2-5/+12
2019-06-06cmake: First working versionDaniel Mensinger2-25/+135
2019-06-06cmake: basic AST generationDaniel Mensinger2-16/+218
2019-06-06cmake: extract the codemodelDaniel Mensinger2-11/+172
2019-06-06cmake: get CMake inputsDaniel Mensinger2-4/+78
2019-06-06cmake: Handle a few more stub messagesDaniel Mensinger1-13/+33
2019-06-06cmake: configure worksDaniel Mensinger2-2/+61
2019-06-06cmake: Server handshakeDaniel Mensinger5-3/+359
2019-06-06cmake: Made CMake executable finding availiable for other functionsDaniel Mensinger1-36/+40
2019-06-06Added method kwarg to subprojectDaniel Mensinger2-13/+36
2019-06-06Merge pull request #5263 from Ericson2314/per-machine-cli-argsJussi Pakkanen7-117/+166
Per machine 'build_' and '' options
2019-06-06gnome.yelp(): Fix media symlink fallback pathChristoph Reiter1-2/+4
When the media file for a specific language doesn't exist we try to symlink it to the C one. If symlinking fails we need to fall back to copying the C one like in the non-symlink case. The fallback code path didn't set the source so this always failed. Also check if the C fallback exists before trying to symlink/copy, otherwise we crash if C isn't the first lang we try.
2019-06-05Per machine do 'build.' and '' option prefixesJohn Ericson7-116/+162
See the docs/ changes for details.
2019-06-05mlog.debug the meson-set PKG_CONFIG_PATHJohn Ericson1-1/+4
This is very useful for debugging!
2019-06-06compilers/c: Fix removal of name from Combo options for ICLDylan Baker1-1/+1
2019-06-05Merge pull request #5436 from dcbaker/cmake-lexer-spaces-in-argsJussi Pakkanen1-34/+71
Cmake lexer spaces in args
2019-06-05rewriter: Fix that default_options would not set the correct idDaniel Mensinger1-2/+2
Currently default_options uses "" for the kwarks id, however this is incorect and it must be "/". Additionally, this error won't be ignored in the future with "--skip" (this is why the tests were passing and this wasn't detected earlier).
2019-06-03ninjabackend: refactor _generate_single_compileMarcel Hollerbach1-19/+24
when we are generating the include directories for a build target, then we are iterating over all include directories, check if they are . or .. and if not, generate a compile args object for it. However, the join calls and the generation of the compile object is quite expensive, if we cache the results of this, then we can _generate_single_compile from 60% to roughly 50%.
2019-06-03backend: refactor get_custom_target_provided_librariesMarcel Hollerbach2-3/+13
the problem here is, that get_custom_target_provided_libraries iterated over all generated sources of a target. In each output we check if this is a library or not. In projects like EFL we have added a lot of generated target to many different targets, so the iterating of the output is rather consistent, with this commit we drop from 19% of the time spending in get_custom_target_provided_libraries down to 3.51%.
2019-06-03subproject: fix update_svnMarkus Theil1-1/+1
Signed-off-by: Markus Theil <markus.theil@tu-ilmenau.de>
2019-05-30dependencies/cmake: Handle spaces in set_target_propertiesDylan Baker1-12/+29
this is better, but it's still not perfect. cmake doesn't return quotes to us in the trace output, and being 100% the same as cmake is pretty much impossible without that information. What I've done should be a "good enough" implementation without having to maintain a copy of every property allowed in cmake, as well as custom properties.
2019-05-29dependencies/cmake: Handle spaces in set_property callsDylan Baker1-14/+14
2019-05-29dependencies/cmake: correctly handle spaces in variable namesDylan Baker1-7/+27
2019-05-29tests: Test the cmake parser more thuroughlyDylan Baker1-1/+1
It turns out there are bugs, in particular with spaces in variables...
2019-05-28BUGFIX variable name #5285Michael Hirsch, Ph.D1-2/+4
handle x86 correctly
2019-05-28interpreter: add fallback argument to subproject.get_variable()Mathieu Duponchelle1-6/+13
2019-05-28gnome: make sure the target build directory is passed first for linkingChristoph Reiter1-8/+8
determine_rpath_dirs() can return paths to external dependencies not in the build dir and passing them first as a link path leads to g-ir-scanner for example linking against the already installed library instead of the just built one. This was reported in g-i: https://gitlab.gnome.org/GNOME/gobject-introspection/issues/272 and comes up quite often when a library adds some new symbols which aren't present in the system library, which then makes linking fail. The first place where the order is changed is _scan_gir_targets(), which looks like an unintentional change in the refactoring in 8377ea45aa61efbe8e1a75b74 The second place in _get_link_args() has always been that way and only the rpath order is changed, but it looks to me as if the same rules should apply here too.
2019-05-28meson-introspect: do not include host environment in test/benchmark ↵Paolo Bonzini1-1/+1
introspection The host environment could change between the time "meson setup" produces intro-tests.json, and the time "meson test" is run. Including it only adds clutter to the introspection data. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2019-05-27coredata: add cmake_prefix_path optionDylan Baker2-4/+26
2019-05-27dependencies/llvm: Fixup bad output from llvm-config on windowsDylan Baker1-2/+8
It turns out that llvm-config on windows can return such wonderful output as `-LIBDIR:c:\\... c:\\abslute\\path\\to\\lib.lib`, which was all fine and dandy when we were blindly passing it through, GCC/MinGW ignored it and MSVC understood it meant `/LIBDIR:`; however, after we added some code to validate linker arguments, and we have some code before the validation that tries to remove posix style -L arguments, resulting in IBDIR:..., which doesn't validate. This patch fixes up the output of llvm-config so that -LIBDIR: is replaced by the the link libdir argument of the compiler, via the compiler/linker method for getting that. Fixes #5419
2019-05-23Merge pull request #5028 from bonzini/sourcesetJussi Pakkanen1-0/+190
new module "sourceset" to match source file lists against configuration data
2019-05-22dub: add other library target typesLuís Ferreira1-1/+1
Signed-off-by: Luís Ferreira <lsferreira169@gmail.com>
2019-05-22new module "sourceset" to match source file lists against configuration dataPaolo Bonzini1-0/+190
In QEMU a single set of source files is built against many different configurations in order to generate many executable. Each executable includes a different but overlapping subset of the source files; some of the files are compiled separately for each output, others are compiled just once. Using Makefiles, this is achieved with a complicated mechanism involving a combination of non-recursive and recursive make; Meson can do better, but because there are hundreds of such conditional rules, it's important to keep meson.build files brief and easy to follow. Therefore, this commit adds a new module to satisfy this use case while preserving Meson's declarative nature. Configurations are mapped to a configuration_data object, and a new "source set" object is used to store all the rules, and then retrieve the desired set of sources together with their dependencies. The test case shows how extract_objects can be used to satisfy both cases, i.e. when the object files are shared across targets and when they have to be separate. In the real-world case, a project would use two source set objects for the two cases and then do "executable(..., sources: ... , objects: ...)". The next commit adds such an example.
2019-05-21Merge pull request #5372 from dcbaker/get_variableJussi Pakkanen2-1/+78
Dependency.get_variable method
2019-05-21gnome: use g_intern_static_string() for enum/flags type namesFederico Mena Quintero1-1/+1
We are emitting a static string, so use that shortcut function to intern it, which will save one allocation.