aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2017-06-09tests: Improve llvm dependency test coverageNirbheek Chauhan3-0/+13
2017-06-09unit tests: Add class to generate failing testsNirbheek Chauhan4-27/+93
It is not feasible to test all failure modes by creating projects in `test cases/failing` that would be an explosion of files, and that mechanism is too coarse anyway. We have no way to ensure that the expected error is being raised. See FailureTests.test_dependency for an example.
2017-06-09find_library: link_args is always a listNirbheek Chauhan2-3/+1
2017-06-09Add an env var to force meson to print a backtraceNirbheek Chauhan1-0/+4
This is really useful when debugging test failures. Without a stack trace, you have to grep the source code for the error message. Also set this in run_tests.py.
2017-06-09ExtraFrameworkDependency: Don't set requiredNirbheek Chauhan2-4/+6
Otherwise we will never hit the informative DependencyException.
2017-06-09Add a new test for SDL2, which didn't have oneNirbheek Chauhan2-0/+42
Currently optional on all platforms.
2017-06-09dependencies: Add a new class ExternalDependencyNirbheek Chauhan13-394/+226
This class now consolidates a lot of the logic that each external dependency was duplicating in its class definition. All external dependencies now set: * self.version * self.compile_args and self.link_args * self.is_found (if found) * self.sources * etc And the abstract ExternalDependency class defines the methods that will fetch those properties. Some classes still override that for various reasons, but those should also be migrated to properties as far as possible. Next step is to consolidate and standardize the way in which we call 'configuration binaries' such as sdl2-config, llvm-config, pkg-config, etc. Currently each class has to duplicate code involved with that even though the format is very similar. Currently only pkg-config supports multiple version requirements, and some classes don't even properly check the version requirement. That will also become easier now.
2017-06-08Document that the gnome.generate_vapi() function can install the .vapiSam Thursfield1-0/+2
2017-06-08fix WarningLevel in vcxproj #1913Bug1-3/+3
- VS 2010-2015 expect <WarningLevel> to be inside <ClCompile> - WarningLevel now correctly reflects VisualStudioCCompiler.get_warn_args
2017-06-08Merge pull request #1874 from rindeal/configure_file-captureJussi Pakkanen7-1/+104
add `capture: true` ability to configure_file()
2017-06-08Do not use context managers. Because Windows.Jussi Pakkanen1-9/+16
2017-06-07Update reference manual and release notesJan Chren (rindeal)2-1/+8
2017-06-07add tests for `capture` in `configure_file()`Jan Chren (rindeal)4-0/+83
2017-06-07add `capture: true` ability to configure_file()Jan Chren (rindeal)1-0/+13
Closes: https://github.com/mesonbuild/meson/issues/1863
2017-06-07Merge pull request #1866 from ebassi/mkdb-argsJussi Pakkanen3-1/+12
Add mkdb_args support to gnome.gtkdoc()
2017-06-07Document the mkdb_args argument for gnome.gtkdoc()Emmanuele Bassi1-0/+1
Include the newly added argument.
2017-06-07generalize the system include detection a bitAdam C. Foltzer1-2/+6
This should help when using a non-standard sysroot, common in cross-compiling
2017-06-07Merged needs_exe_wrapper branch.Jussi Pakkanen4-0/+49
2017-06-07Improve user-defined function wording & link to FAQTim Hutt1-1/+1
2017-06-07Document that user-defined functions and methods are unsupportedTim1-0/+5
Fixes #1870
2017-06-07Merge pull request #1898 from centricular/fix-rpath-linkingJussi Pakkanen2-46/+75
Use absolute RPATHs while linking due to a binutils bug
2017-06-07Update the list of possible llvm-config binariesTing-Wei Lan1-4/+12
This commit syncs the list with gnome-builder, which updates its list in https://bugzilla.gnome.org/show_bug.cgi?id=782296. llvm-config40 is added becaue LLVM 4.0 becomes a stable release. llvm-config-5.0 is added to the bottom of the list because it is still a development snapshot (svn trunk).
2017-06-05unit tests: Skip tests if no readelf foundNirbheek Chauhan1-2/+6
2017-06-05compilers: Only set -rpath-link on GNU ld and linuxlikeNirbheek Chauhan1-32/+35
It's an invalid option with Apple ld and leads to a build error.
2017-06-05unit tests: Also check RUNPATH when fetching RPATHNirbheek Chauhan1-2/+2
2017-06-05Use absolute RPATHs while linking due to a binutils bugNirbheek Chauhan2-1/+28
Use -rpath-link with the absolute paths to the respective build dirs to work around a binutils bug that causes $ORIGIN to not be used while linking. Includes a unit test that manually checks the RPATH value written out to ensure that it uses $ORIGIN. See: https://sourceware.org/bugzilla/show_bug.cgi?id=16936 Closes https://github.com/mesonbuild/meson/issues/1897
2017-06-05unit tests: Use only implementation of get_sonameNirbheek Chauhan1-18/+13
2017-06-04A few typo fixes in the converter script.Jussi Pakkanen1-2/+2
2017-06-04Added more functions to the list of checks.Jussi Pakkanen1-0/+143
2017-06-04Merge pull request #1545 from centricular/dont-link-recursivelyJussi Pakkanen32-53/+377
Don't add dependencies recursively while linking
2017-06-03Set clang_type to CLANG_WIN on windows.Alan1-0/+2
2017-06-03Use && to ensure failed test run is flagged properly.Jussi Pakkanen1-1/+1
2017-06-03Revert "gnome: Use --pkg to pass pkg-config cflags to g-ir-scanner"Jussi Pakkanen1-4/+1
This reverts commit 3a2e333f004828e5390ce96344cb338be11e70b0.
2017-06-03gnome: Use --pkg to pass pkg-config cflags to g-ir-scannerFlorian Müllner1-1/+4
While g-ir-scanner's compatible -I and -D flags cover what most pkg-config files use, there's no guarantee that files don't set anything more exotic that conflicts with the tool's own options. For a real world example, mozjs-38 has '-include some-header-file.h', which translates to '--include nclude another-file-to-scan.h' for the scanner; unless for some reason there's an 'nclude' GIR available on the system, the target will thus fail. Avoid this case by pointing g-ir-scanner to the correct pkg-config file instead of passing any cflags directly.
2017-06-03compilers: Make CCompiler.find_library return value consistentPaulo Antonio Alvarez1-2/+2
When the CCompiler.links method call in CCompiler.find_library fails, find_library resorts to finding the library file itself. In this second case, the return value is not a list, whereas if links suceeds, the return value is a list. Make it so that find_library returns a list in either case.
2017-06-03Use correct gettext input file in testRene Lopez2-2/+14
2017-06-03Allow empty extra arguments in gettext scriptRene Lopez1-1/+1
2017-06-03Add a note about multi-line statements by ending the line with \Tim1-2/+1
2017-06-03Merge pull request #1857 from aradi/configure-subsvalJussi Pakkanen7-1/+31
Configure subsval
2017-06-03Add version for configure_file extension in reference manualBálint Aradi1-1/+1
2017-06-03Update reference manual and release notesBálint Aradi2-1/+5
2017-06-03Enable variables for output in configure_fileBálint Aradi5-0/+26
2017-06-03Use relative rpath so builds are reproducible.Jussi Pakkanen3-12/+37
2017-06-03docs: Fix broken page linksChris Mayo6-6/+6
2017-06-03docs: Complete list of targets from i18n.gettext()TingPing1-0/+2
2017-06-02Revert slashes in filenames being a hard error to give downstream projects ↵Jussi Pakkanen2-9/+5
time to transition.
2017-06-02ninja: Use shlex.quote for quoting on non-WindowsNirbheek Chauhan2-31/+31
This is more reliable, and more accurate. For instance, this means arguments in commands aren't surrounded by `'` on Linux unless that is actually needed by that specific argument. There is no equivalent helper for Windows, so we keep the old behaviour for that.
2017-06-02ninja: De-dup libraries and use --start/end-groupNirbheek Chauhan17-16/+146
Now we aggressively de-dup the list of libraries used while linking, and when linking with GNU ld we have to enclose all static libraries with -Wl,--start-group and -Wl,--end-group to force the linker to resolve all symbols recursively. This is needed when static libraries have circular deps on each other (see included test). The --start/end-group change is also needed for circular dependencies between static libraries because we no longer recursively list out all library dependencies. The size of build.ninja for GStreamer is now down to 6.1M from 20M, and yields a net reduction in configuration time of 10%
2017-06-02ninja: Use a set for target deps and ordered depsNirbheek Chauhan1-6/+6
This significantly reduces the size of build.ninja for GStreamer.
2017-06-02Don't add dependencies recursively while linkingNirbheek Chauhan21-10/+204
We were doing this on the basis of an old comment, but there was no test for it and I couldn't reproduce the issue with clang on Linux at all. Let's add a (somewhat comprehensive) test and see if it breaks anywhere if we stop doing this. Halves the size of gstreamer's build.ninja from 20M to 8.7M Closes https://github.com/mesonbuild/meson/issues/1057