aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-05-23ast: Add AST JSON printerDaniel Mensinger5-12/+174
2020-05-23Remove stray print call.Jussi Pakkanen1-1/+0
2020-05-23Revert "Merge pull request #7172 from jon-turney/test-output-check-mandatory"Jussi Pakkanen11-115/+40
This reverts commit 0871b1032c53287a1ed3ce5108799fb0daccaec5, reversing changes made to 9dc3ca2c1c9fbb47e731551c6432df144f725261.
2020-05-22Modifed buildtypes and armclang compiler flags to match documented resultsDrew Reed1-6/+6
2020-05-22Allow building with b_coverage set to true when clang is being used ↵georgev931-0/+3
regardless of linker selection.
2020-05-22Merge pull request #7123 from dcbaker/use-feature-deprecatedJussi Pakkanen8-65/+75
Use FeatureDeprecated (and other cleanups)
2020-05-22boost: Try extracting BOOST_ROOT from boost.pcDaniel Mensinger1-1/+12
This is especially useful for Conan, where only the boost.pc file is provided and manually setting BOOST_ROOT is not a good solution since it is in a private cache directory. See #5438
2020-05-22boost: Always sort shared before static (fixes #7171)Daniel Mensinger1-2/+2
2020-05-22Merge pull request #7172 from jon-turney/test-output-check-mandatoryJussi Pakkanen11-40/+115
Make the expected output check mandatory for failing-meson and warning-meson tests
2020-05-22compilers: add fetching of define list for clangYevhenii Kolesnikov7-9/+42
Simmilar to gcc, the list of pre-processor defines can be fetched with `-dM -E` option. The way cpu_family is determined on linux relies on this list. Fixes incorrect value of cpu_family on linux, when crosscompiling: ``` CC="clang -m32" meson ./build ``` Signed-off-by: Yevhenii Kolesnikov <yevhenii.kolesnikov@globallogic.com> Co-authored-by: Dylan Baker <dylan@pnwbakers.com>
2020-05-20compilers/d: Add b_ndebug supportDylan Baker3-6/+19
D lang compilers have an option -release (or similar) which turns off asserts, contracts, and other runtime type checking. This patch wires that up to the b_ndebug flag. Fixes #7082
2020-05-20compilers: Move b_ndebug into the compiler classesDylan Baker2-1/+7
Right now we hardcode -DNDEBUG as the value to be added for b_ndebug. Which is a not the correct behavior for non C/C++ languages. By pushing this back into the compiler classes we can change this for other languages.
2020-05-19Merge pull request #5986 from dcbaker/fix-tests-with-cross-binary-argumentsJussi Pakkanen20-87/+254
Fix tests with cross binary arguments
2020-05-19Build private directory name from output file name.Jussi Pakkanen3-14/+29
2020-05-18pass exe_wrapper to test scripts through the environmentDylan Baker7-21/+75
This adds a new MESON_EXE_WRAPPER environment variable containing the string form of the exe_wrapper, if there is an exe_wrapper defined. Fixes #4427
2020-05-18backends: Consider arguments passed to a test when cross compilingDylan Baker16-11/+39
Otherwise a wrapper script which takes an executable as an argument will mistakenly run when that executable is cross compiled. This does not wrap said executable in an exe_wrapper, just skip it. Fixes #5982
2020-05-18backends: ensure that test executables can be run when passed as argumentsDylan Baker5-11/+44
If an executable is passed as an argument to a script in the build directory that it resides in then it will not execute (on *nix) due to a lack of ./. Ie, `foo` must be called as `./foo`. If it is called from a different directory it will work. Ie `../foo` or `bar/foo`. Fixes #5984
2020-05-18tests: Add tests for cross file exe_wrapperDylan Baker1-2/+52
tests needs_exe wrapper but doesn't have one, !needs_exe_wrapper, and needs_exe_wrapper and has one.
2020-05-18run_unittests: move cross_file_system_paths to the cross testsDylan Baker1-61/+63
2020-05-18mtest: don't use len() to test container emptinessDylan Baker1-5/+5
It's not idiomatic python and is significantly slower than not using the bool protocol.
2020-05-18Merge pull request #7103 from dankegel/bug4027-rpath-rememberJussi Pakkanen27-55/+253
Let .pc files and LDFLAGS provide rpaths.
2020-05-18symbolextractor: add OpenBSD supportAntoine Jacoutot1-0/+19
2020-05-18compilers/d: Enable pgo for GDCDylan Baker1-1/+2
2020-05-18Add cmake files to msi package.georgev931-0/+2
2020-05-16docs: add snippet documenting rpath behavior changeDan Kegel1-0/+7
2020-05-16Let LDFLAGS specify rpath.Dan Kegel7-0/+69
Fixes #2567
2020-05-16Let .pc files specify rpath.Dan Kegel21-55/+177
Fixes #4027
2020-05-16Add flags to support generation of dependency files with armclangDrew Reed1-1/+1
2020-05-16Modifed buildtypes and armcc compiler flags to match documented resultsDrew Reed1-7/+7
2020-05-16Call to CPPCompilers initilisation function was missing the info parameter ↵Drew Reed1-1/+3
during ArmClangCPPCompiler initialisation
2020-05-15Add expected stdout for failing-meson tests which are missing itJon Turney10-0/+70
2020-05-15Make expected stdout mandatory for warning-meson and failing-meson testsJon Turney1-40/+45
Unify present or absent test.json file cases in gather_tests Make expected stdout mandatory in test.json for some test categories Use a trivial TestCategory class rather than a tuple, to make it easier to default category attributes
2020-05-15symbolextractor: Do not store the size of code objectsNirbheek Chauhan1-1/+4
This will almost always change and cause a relink of everything. Our other symbol extractor implementations do not store this either. We only need to store the size of data objects, since that necessitates a relink due to copy relocations. Drastically reduces the amount of relinking required in gstreamer and gtk on Linux.
2020-05-15ninjabackend: Treat GNOME gir/typelib as librariesNirbheek Chauhan2-1/+12
When classifying generated sources, we were treating gir/typelib files generated by gobject-introspection as headers. This is bad because it serializes the build by adding order-only dependencies to every target even though sources will never actually use them for anything. Treat them as libraries, which is somewhat more accurate.
2020-05-15ninjabackend: Use order-only gen-header deps for gen-sourcesNirbheek Chauhan1-1/+1
We do not need to *always* rebuild generated sources when a generated header changes. We will get that information from the compiler's dependency file, and ninja will track it for us. This is exactly the same as static sources. However, we do need an order-only dependency on all generated headers, because we cannot know what headers will be needed at compile time (which is when the compiler's dependency file is generated). This fixes spurious rebuilds and relinking in many cases.
2020-05-15travis/macos: Restore the old pkg-config behaviourNirbheek Chauhan2-2/+4
We need to test both "have pkg-config" and "don't have pkg-config" pathways on macOS, which is why pkg-config was only installed in one branch based on --unity=on/off.
2020-05-15cmake: Print supported stds when warningNirbheek Chauhan1-2/+4
This was helpful while debugging CI failure on the 0.54 branch due to a difference in the structure of self.env.coredata.compiler_options: https://github.com/mesonbuild/meson/runs/674391139 https://travis-ci.org/github/mesonbuild/meson/jobs/686982807
2020-05-14Docs: Make the suggested use for the not-found dependency better [skip ci]Dylan Baker1-4/+6
2020-05-14run_unittests: Use unittest.mock instead of a handrolled mockDylan Baker1-11/+8
2020-05-14optinterpreter: Enable and update FeatureNew to use_singleDylan Baker1-7/+5
With the version information fixed we can use a FeatureNew inside the optinterpreter, so let's do it.
2020-05-14interpreter: Add always set default value for version and set it ASAPDylan Baker2-5/+6
Ideally we wouldn't need to have the default dict here and could just rely on it being set as soon as project is called. There is a corner case exercised by test case common/35 run program, which is that if a FeatureNew or FeatureDeprecated is called to generate the meson version it will be unset, to work around this I've changed the type from a dict to a default dict with '' as the default value. A better fix would probably be to store all of the FeatureNew/FeatureDeprecated checks until the end, then evaluate them, but for now this results in no loss of functionality, only more functionality, even if it isn't prefect.
2020-05-14use FeatureNew.single_useDylan Baker4-26/+29
This is just slightly cleaner looking
2020-05-14modules/pkgconfig: Remove duplicate FeatureNewDylan Baker1-2/+0
2020-05-14interpreterbase: Proxy extra_message through to feature_check_classDylan Baker1-2/+5
2020-05-14interpreterbase: Add a oneline helper method for Feature(New|Deprecated)Dylan Baker1-4/+15
This allows us to replace FeatureNew(..).use() with just FeatureNew.single_use(...). It's a lttle cleaner and hides some of the smell.
2020-05-14backend/vs: Fix b_vscrt=from_buildtype for debugoptimizedPeter Harris1-2/+2
The ninja backend only uses the debug C runtime for 'debug', not for 'debugoptimized'. The ninja backend always uses the DLL C runtime for all configurations. The documentation matches the ninja backend. Make the visual studio backend follow the documentation (and the precedent set by the ninja backend).
2020-05-14boost: always use compiler include pathsDaniel Mensinger1-2/+6
2020-05-14interpreter: Replace some uses of mlog.deprecation with FeatureDeprecatedDylan Baker3-9/+8
This gives the version that the feature was deprecated in, and doesn't print the warning if the project supports versions of meson in which the project wasn't deprecated.
2020-05-14interpreter: Rename has_exe_wrapper -> can_run_host_binariesDylan Baker7-15/+29
The implementation of this function has changed enough that the name doesn't really reflect what it actually does. It basically returns true unless you're cross compiling, need and exe_wrapper, and don't have one. The original function remains but is marked as deprecated. This makes one small change the meson source language, which is that it defines that can_run_host_binaries will return true in build == host compilation, which was the behavior that already existed. Previously this was undefined in build == host compilation.
2020-05-14interpreterbase: Allow passing an extra message in feature/deprecation warningsDylan Baker3-7/+22
The intended use it to tell people the new thing to do.