aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
AgeCommit message (Collapse)AuthorFilesLines
2020-05-22boost: Always sort shared before static (fixes #7171)Daniel Mensinger1-2/+2
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 Baker2-6/+15
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 Pakkanen2-22/+44
Fix tests with cross binary arguments
2020-05-19Build private directory name from output file name.Jussi Pakkanen2-1/+4
2020-05-18pass exe_wrapper to test scripts through the environmentDylan Baker1-15/+17
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 Baker2-5/+20
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 Baker1-0/+5
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-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 Pakkanen10-49/+98
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-16Let LDFLAGS specify rpath.Dan Kegel1-0/+18
Fixes #2567
2020-05-16Let .pc files specify rpath.Dan Kegel10-49/+80
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-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-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-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 Baker1-3/+11
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 Baker1-6/+20
The intended use it to tell people the new thing to do.
2020-05-14gnome.generate_gir: Fix missing include directoriesXavier Claessens1-6/+4
This revert a part of #7020 because it was using gir_inc_dirs before it is set. Properly fix typelib_includes instead that was working only when g-i is a pkgconfig dependency.
2020-05-14coredata: Fixup the default libdir value, not the set valueNirbheek Chauhan1-3/+3
We shouldn't change the value of libdir after builtins have been initialized because we want to change the *default* value.
2020-05-14cmake: Fix string substitution index errorNirbheek Chauhan1-2/+2
``` File "mesonbuild/cmake/interpreter.py", line 293, in postprocess 'Unknown {}_std "{}" -> Ingoring. Try setting the project' IndexError: Replacement index 2 out of range for positional args tuple ```
2020-05-14ui/qt: Warn if Android cpu_family is unknownNirbheek Chauhan1-0/+3
2020-05-14ui/qt: use new directory layout for qt on androidMatthew Waters1-0/+14
Now follows ios and other platform directory layouts. Moves from separate android_$arch directories to every library containing a _$arch suffix. e.g. libQt5Core_x86.a in a single directory.
2020-05-14gfortran: Fix has_header implementation with GCC 10Nirbheek Chauhan1-0/+12
__has_include is not accepted as a pre-processor directive in Fortran code since GCC 10. Closes https://github.com/mesonbuild/meson/issues/7017
2020-05-14boost: Try finding libraries with the matching arch (fixes #7110)Daniel Mensinger2-5/+52
2020-05-13Merge pull request #6620 from jon-turney/test-output-checkDylan Baker4-17/+39
Add a mechanism for validating meson output in tests
2020-05-13interpretor: Do not add dependencies if we already have themMarcel Hollerbach1-0/+4
in tree like dep structures with a lot of source: declarations, this can result in a lot of presure on the source list. this saves ~3s out of 7s in the interpretor stage in efl build.
2020-05-13macos: Remove framwork linkerlike argsEric Lemanissier1-1/+1
fixes-up 33fbc548ab74e79280d2f57b2cd499d14c1f1e91
2020-05-13Fix outdated cross-compilation checksOle André Vadla Ravnås4-14/+17
2020-05-13Fix has_function() for clang on 64bit WindowsChristoph Reiter1-1/+1
has_function() tries to link an example program using the function to see if it is available, but with clang on 64bit Windows this example always already failed at the compile step: error: cast from pointer to smaller type 'long' loses information long b = (long) a; This is due to long!=pointer with LLP64 Change from "long" to "long long" which is min 64bit and should always fit a pointer. While "long long" is strictly a C99 feature every non super ancient compiler should still support it.
2020-05-12cmake: Ignore unknown c(pp)? stds (fixes #7104)Daniel Mensinger1-1/+16
2020-05-12interpreterbase: Fix version checking for deprecationDylan Baker1-2/+17
Currently deprecation features use the same logic as new features, but that doesn't work correctly. FeatureNew wants to warn about cases where you claim to support >= 0.40, but use a feature from 0.42; deprecation wants to warn when you claim to support >= 0.50, but use a feature that was replaced in 0.45. To make this work we need to invert the version check in the deprecation function, so that if the deprecation is 0.45, and the supported version is >= 0.50, we get a true not a false.
2020-05-12interpreter: Don't assign duplication and new feature warning to the same ↵Dylan Baker1-3/+12
variable Currently The Deprecated and New features checkers share an attribute through a base class that should be per class. We need to duplicate this and move it into each of the sublcasses Fixes #7080
2020-05-11ConfigToolDependency: Don't fallback to system tool when cross compilingXavier Claessens1-21/+4
The system tool is always the wrong thing to use and cause hard to debug issues when trying to link system libraries with cross built binaries. The ExternalDependency base class already had a method to deal with this, used by PkgConfigDependency and QtBaseDependency, so it should make things more consistent.
2020-05-11Add AVR to cpu families. Closes #7085.Jussi Pakkanen1-0/+1