aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
AgeCommit message (Collapse)AuthorFilesLines
2019-09-26Q&D experiment to scan and build C++ modules with VS.vsmodtestJussi Pakkanen3-2/+83
2019-09-26cmake: Support ALIAS librariesDaniel Mensinger1-1/+10
2019-09-26cmake: define set_and_check in CMake package config (fixes #5889)Daniel Mensinger1-0/+12
2019-09-26envconfig: Add MicroBlaze CPU familyNathan Rossi1-0/+1
Add the CPU family for the MicroBlaze processor. Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
2019-09-26Merge pull request #5958 from keszybz/caching-cleanupJussi Pakkanen3-37/+33
Caching cleanup
2019-09-25environment: Don't make special case for scan-build on LinuxTing-Wei Lan1-9/+4
Versioning of executables is not related to the operating system kernel. It is possible for a Linux distribution to support multiple versions of LLVM in a way similar to FreeBSD. For example, on Debian, you can use 'apt install clang-tools-7' to install the versioned 'scan-build-7' executable without bringing the unversioned 'scan-build' into the environment. Therefore, we should not skip the version list on Linux. It also makes it consistent with the behavior of llvm dependency, which does not change the search list depending on the operating system. This commit also fixes the version suffix for Debian. Debian stops using the minor version number on the executable after version 7, so it should be 'scan-build-7', not 'scan-build-7.0'. This is a follow-up of https://github.com/mesonbuild/meson/pull/5918.
2019-09-25Print user defined options in meson-log.txtXavier Claessens2-0/+15
It can be useful to know what options have been passed to the command line, excluding default values. Closes: #5956
2019-09-25Use functools cache instead of open-coded implementationZbigniew Jędrzejewski-Szmek1-11/+4
Functional behaviour is not identical, because the cache not set when an exception is thrown. I hope this doesn't matter in practice.
2019-09-25Drop unused variableZbigniew Jędrzejewski-Szmek1-1/+0
2019-09-25Add helper to print warnings onceZbigniew Jędrzejewski-Szmek3-25/+29
The helper is general, although in this patch it is only used for warnings. No functional change intended.
2019-09-25removed the InternalDepdendencyHolder, since it is unusedDaniel Mensinger1-38/+1
2019-09-24CUDA support on WindowsAleksey Gurtovoy9-51/+177
2019-09-23Add blocks dependencyPatrick Griffis2-1/+35
This allows easily enabling the blocks clang extension.
2019-09-23mtest: TAP: ignore empty linesMarc-André Lureau1-0/+3
According to http://testanything.org/tap-specification.html "Any output line that is not a version, a plan, a test line, a diagnostic or a bail out is considered an “unknown” line. A TAP parser is required to not consider an unknown line as an error but may optionally choose to capture said line and hand it to the test harness, which may have custom behavior attached [...] TAP::Harness reports TAP syntax errors at the end of a test run". (glib gtest can generate empty lines)
2019-09-23mesonbuild: fix exception name.Jehan1-1/+1
CrossNoRunException is in compilers module, not mesonlib.
2019-09-17configure_file(): Allow multiple inputs in command modeXavier Claessens1-41/+34
Closes: #5893
2019-09-17pkgconfig: Fix ordering of public librariesXavier Claessens1-3/+8
The main library must come before extra libraries, because they are likely to be dependencies of the main library that get promoted from private to public. This was causing static link issues with glib-2.0.pc.
2019-09-14uniform scan-build detection processGabriel Ganne3-36/+56
Detect scan-build the same way when trying to launch it and when generating the target. The detection method is: 1. look within SCANBUILD env variable 2. shutil.which('scan-build') 3. *on non-linux platforms only*: go through all the possible name candidates and test them individually. The third step is added following this comment https://github.com/mesonbuild/meson/pull/5857#issuecomment-528305788 However, going through a list of all the possible candidates is neither easily maintainable nor performant, and is therefore skipped on platforms that should not require such a step (currently, only Linux platforms). This is a follow-up to the issue raised by @lantw44 during PR: https://github.com/mesonbuild/meson/pull/5857
2019-09-14Merge pull request #5917 from alanc/solaris-fixesJussi Pakkanen2-1/+9
Solaris fixes
2019-09-13get_library_dirs: Add Solaris 64-bit library subdirsAlan Coopersmith1-0/+8
Solaris puts 32-bit libraries in the main /lib & /usr/lib directories and 64-bit libraries in platform specific subdirectories. Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2019-09-13mconf: Fix meson configure crash (fixes #5909)Daniel Mensinger1-2/+2
2019-09-12modules/python: improve log when probing Python binaryRoss Burton1-9/+8
If the Python binary that we find doesn't return valid JSON when asked to run a small script, show the command being ran and stdout/stderr in meson-log.txt. Fixes: #5914
2019-09-10compilers: Recognize Solaris 11.4 linkerAlan Coopersmith1-1/+1
Solaris 11.3 & earlier sent the --version output to stderr, but Solaris 11.4 moved it to stdout in an attempt to be more compatible with the GNU tools, so look for it in both streams of output. Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2019-09-10Workaround for mingw-llvm linker (lld) misdetectionAndrei Alexeyev1-0/+17
llvm-mingw uses a wrapper script to inject (among other things) a -target argument into the clang command, which breaks -Wl,--version. This confuses Meson into thinking the linker is some unknown version of Apple ld, which breaks builds. This patch makes it detect and recover from the issue. Fixes #5910
2019-09-09environment: merge successive is_windows blocksDylan Baker1-3/+1
2019-09-09the solaris linker also needs start/end-group for circular linkingDylan Baker1-2/+2
2019-09-09environment: gcc/g++ and clang/clang++ are valid objc/objc++ compilers to tryDylan Baker1-2/+5
2019-09-09If ar is unrecognized, try gar for GNU arAlan Coopersmith1-6/+7
Needed on Solaris, where native ar doesn't recognize all the flags that meson uses, but GNU ar does.
2019-09-08Fix static archives stripping (#5905)David Seifert1-1/+14
* Do not strip static archives Stripping static archives without more fine-grained options (e.g. `-g`) leads to failures such as ld: libfoo.a: error adding symbols: archive has no index; run ranlib to add one because GNU strip removes *every* symbol in a static archive by default. Given that static archives are not final build artifacts (unlike executables and shared libraries), stripping them gains little and only causes more edge case failures. * Gentoo's portage only strips debug information: https://github.com/gentoo/portage/blob/86f211e3a552753eb945670a39c1a3b14c3c3bd1/bin/estrip#L322 * Fedora also only strips debug information: https://github.com/rpm-software-management/rpm/blob/e9c13c6565cf4782d1f73255ee9144dd9bd2aca7/scripts/brp-strip-static-archive#L18 * Debian also only does some very light stripping: https://github.com/Debian/debhelper/blob/72ed1d3261730d56da6afde0ec7f52f32976e04d/dh_strip#L374 Fixes #4138 * Add test case for static archive stripping
2019-09-08fix objc freestanding sanitycheckNguyen, Giang (G. Yakiro)1-1/+1
2019-09-06Add `-Wl,-rpath-link` for secondary dependenciesDavid Seifert1-3/+45
2019-09-05Merge pull request #5823 from scivision/linker-pgi-linuxJussi Pakkanen4-4/+29
PGI compiler fixes
2019-09-05mesonlib.split_args/quote_arg/join_argsAleksey Gurtovoy15-58/+134
2019-09-05PGI cannot accept -pthreadMichael Hirsch, Ph.D1-0/+4
2019-09-05PGI: windows workaround not-msvc-like enough functionMichael Hirsch, Ph.D1-1/+5
2019-09-05PGI: use ar link wrapper on WindowsMichael Hirsch, Ph.D3-3/+20
2019-09-05Create CUDA linker with CUDA compilerKramer Peace2-10/+3
Since they are laways paired there is no need to "search" for the cuda linker.
2019-09-05Add get_soname_args method to CUDA linkerKramer Peace1-0/+5
Currently it retruns an empty string array.
2019-09-05Add a CUDA linker objectKramer Peace3-1/+38
Fixes issue #5870
2019-09-04mintro: Fix resolving nodes in kwargs (fixes #5884)Daniel Mensinger1-42/+66
2019-09-03Log the used strip command. [skip ci]Jussi Pakkanen1-1/+1
2019-09-03correct function callClinton Roy1-1/+1
2019-09-02Handle case of dependency('threads') in 'requires'Simon Allen1-0/+2
2019-09-01flatten list to subprocess.Popen, necessary for Python 3.8Michael Hirsch, Ph.D1-2/+2
2019-08-30environment: clang uses lld-link or link.exe on windowsDylan Baker1-4/+39
2019-08-30compilers: Move the compiler argument to proxy linker flags to the compiler ↔Dylan Baker8-88/+137
class Instead of the DynamicLinker returning a hardcoded value like `-Wl,-foo`, it now is passed a value that could be '-Wl,', or could be something '-Xlinker=' This makes a few things cleaner, and will make it possible to fix using clang (not clang-cl) on windows, where it invokes either link.exe or lld-link.exe instead of a gnu-ld compatible linker.
2019-08-28Fix gcc include dotDylan Baker1-0/+2
2019-08-28ninjabackend: do not generate scan-build target if it cannnot be runGabriel Ganne1-0/+3
as what was done with clang-format, test the presence of the tool before generating a dedicated target. Pass silently if scan-build is not found. Signed-off-by: Gabriel Ganne <gabriel.ganne@mindmaze.ch>
2019-08-27Merge pull request #5756 from thiblahute/wine_shortpathsNirbheek Chauhan3-18/+48
wine: Try to get the short paths when generating WINEPATH
2019-08-27envconfig: make MachineInfo.is_windows and is_cygwin match mesonlibDylan Baker1-2/+2
The mesonlib versions are slightly more specific in what they accept.