summaryrefslogtreecommitdiff
path: root/mesonbuild/dependencies/dev.py
Commit message (Collapse)AuthorAgeFilesLines
* Fix VS Intellisense for projects which depend on LLVM found via CMake.Jesse Natalie2020-04-121-0/+3
|
* Log when ignoring LLVM because dynamic was requestedJesse Natalie2020-04-101-0/+1
| | | Without this, there's tons of log output about finding LLVM, followed by "couldn't find LLVM."
* cmake: Add find_package COMPONETS supportDaniel Mensinger2020-03-191-1/+1
|
* dependencies: Add a zlib system dependency for windowsDylan Baker2020-01-311-2/+20
|
* dependencies: Add system zlib method for freebsd and dragonflybsdDylan Baker2020-01-311-3/+8
| | | | | | | I've tested this on FreeBSD, and dragonfly's userland is close enough I'm willing to call it good without testing. OpenBSD and NetBSD also have a zlib in their base configurations, but I'm not confident enough to enable those without testing.
* dependencies: Add a zlib system dependency for macOSDylan Baker2020-01-311-0/+30
| | | | | | | This comes pre-installed, but currently we don't have a way to detect it without relying on pkg-config or cmake. This is only valid with the apple clang-based compilers, as they do some special magic to get headers.
* Small cleanups for the LLVM dependency class (#6548)Dylan Baker2020-01-301-1/+6
|
* dependencies: Rename _add_sub_dependency2 to _add_sub_dependencyDylan Baker2020-01-291-5/+5
| | | | Since the original _add_sub_dependency is no longer in use.
* dependencies: Use a DependencyFactory for threadsDylan Baker2020-01-291-5/+13
| | | | | This lets us make a number of uses of threads safer, because we can use the threads_factory instead of the ThreadDependency
* dependencies: Use DependencyFactory for gmockDylan Baker2020-01-291-20/+23
|
* dependencies: Use a DependencyFactory for gtestDylan Baker2020-01-291-20/+21
|
* dependencies: Use a DependencyFactory for LLVMDylan Baker2020-01-291-27/+15
|
* dependencies: Make Dependency initializer signatures matchDylan Baker2020-01-291-5/+5
| | | | | | | | | | | | Currently PkgConfig takes language as a keyword parameter in position 3, while the others take it as positional in position 2. Because most dependencies don't actually set a language (they use C style linking), using a positional argument makes more sense. ExtraFrameworkDependencies is even more different, and duplicates some arguments from the base ExternalDependency class. For later changes I'm planning to make having all of the dependencies use the same signature is really, really helpful.
* dependencies/base: Split process_method_kw out of DependencyDylan Baker2020-01-291-4/+4
| | | | | I want to use this in a new class as well, that doesn't descend from Dependency.
* cmake: Refactor CMakeExecutor and CMakeTraceParserDaniel Mensinger2020-01-261-0/+3
| | | | | | This moves most of the execution code from the CMakeInterpreter into CMakeExecutor. Also, CMakeTraceParser is now responsible for determining the trace cmd arguments.
* types: import typing as T (fixes #6333)Daniel Mensinger2020-01-081-3/+3
|
* lgtm: fix Multiple calls to __init__Daniel Mensinger2019-12-051-6/+2
| | | | | | | Some slight refactoring for the dependency classes and I switched the elbrus compiler to the GnuLikeCompiler. This is also the correct use according to the documentation of GnuLikeCompiler.
* Fix typos found by codespellWolfgang Stöggl2019-11-061-3/+3
| | | | - Typos were found by codespell v1.16.0
* Move the list of LLVM version suffixes to a common placeTing-Wei Lan2019-09-291-19/+2
| | | | | | | Both scan-build and llvm-config need the same list of LLVM version suffixes. It is better to keep the list at a common place instead of having several copies in different files, which is likely to become out-of-sync when the list is updated.
* dependencies/dev: Switch order of llvm dependency findersDylan Baker2019-07-021-3/+3
| | | | | | | | | Cmake ignores shared vs dynamic linking, and always returns static. This went unnoticed, but results in regresssions for mesa. We need to fix cmake, but with 0.51.1 due out shortly switching the order provides a quick fix to restore expected functionality seems acceptable. Fixes #5568
* cmake: Move parsing the CMake trace into the CMake moduleDaniel Mensinger2019-06-121-4/+4
|
* Purge `is_cross` and friends without changing user interfacesJohn Ericson2019-06-091-9/+13
| | | | | | | | | | | | In most cases instead pass `for_machine`, the name of the relevant machines (what compilers target, what targets run on, etc). This allows us to use the cross code path in the native case, deduplicating the code. As one can see, environment got bigger as more information is kept structured there, while ninjabackend got a smaller. Overall a few amount of lines were added, but the hope is what's added is a lot simpler than what's removed.
* dependencies/llvm: Fixup bad output from llvm-config on windowsDylan Baker2019-05-271-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
* cmake: Fixed new thread dependencyDaniel Mensinger2019-05-031-3/+1
|
* cmake: LLVM better modules handlingDaniel Mensinger2019-05-031-14/+18
|
* cmake: revert module name mappingDaniel Mensinger2019-05-031-8/+12
|
* cmake: minor code fixesDaniel Mensinger2019-05-031-7/+9
|
* CMake: optional modules supportDaniel Mensinger2019-05-031-3/+7
|
* LLVM: Added CMake backendDaniel Mensinger2019-05-031-2/+35
|
* LLVM dependency refactoringDaniel Mensinger2019-05-031-1/+18
|
* dependencies: Use the _add_sub_dependencyDylan Baker2019-05-021-3/+3
|
* dependencies/dev: Use ext_deps for GTest in GMockDylan Baker2019-04-051-4/+1
| | | | | Rather than assigning the gtest variables to gmock, just set gtest as a sub dependency.
* dependencies/misc: don't special case threadsDylan Baker2019-04-051-9/+4
| | | | | | | Instad of having special casing of threads in the backends and everywehre else, do what we did for openmp, create a real dependency. Then make use of the fact that dependencies can now have sub dependencies to add threads.
* dependencies/llvm: Add support for fedora 30Dylan Baker2019-03-141-22/+32
| | | | | | | | | | In Fedora 30 the llvm-config binary has the number of bits in the isa added as a suffic to the name llvm-config-64 or llvm-config-32, and no naked llvm-config binary is provided. This commit moves the list of llvm-config binaries to the constructor so that we can modify the list on a per-instance basis, and adds the new Feodra names. Fixes #5059
* llvm: Add llvm-config80 for FreeBSDDylan Baker2019-03-071-5/+4
|
* dependencies/llvm: add debian's llvm-9Dylan Baker2019-01-231-1/+2
| | | | Debian has already pushed llvm-9 into experimental
* dependencies/llvm: Mark as not found when not foundDylan Baker2018-10-111-0/+3
| | | | | | | When either the shard or static libs are not available, and the dependency is not required mark the dependency as not found and return. Fixes #4360
* dependencies/LLVM: rework shared link detection to be more robustDylan Baker2018-10-011-14/+69
| | | | | | | | | | | | | | | | | | | | | | Instead of trying to hardcode which versions of which OSes are misconfiguring llvm-config, lets try to use a generic mechanism that catches most of the broken cases. If a dynamic lib is built but the tools are linked staticly (LLVM_BUILD_LLVM_DYLIB=true and LLVM_LINK_LLVM_DYLIB=false) and you don't enabled shared libs (LLVM_BUILD_SHARED_LIBS=false, which should be false), then llvm-config will mistakenly return a each static library with .(so|dll|dylib) appended, instead of -lLLVM-x.y.z. if LLVM_LINK_LLVM_DYlIB is true this works fine. There's been a bug opened in upstream since 2014 about this with no responses[1]. So, this patches looks at --shared-mode (which tells us whether llvm-config was linked staticly or dynamicly), then if the shared-mode is static it will check and see what it gets. If it gets valid results then it will go with those, if it doesn't then it will try to build a set of valid link arguments to link with libLLVM.(so|dll|dylib). [1] https://bugs.llvm.org/show_bug.cgi?id=19937
* dependencies/llvm: Fix shared linking on osxDylan Baker2018-10-011-5/+7
| | | | | | The versions of LLVM provided by brew have the same configuration problem that dragonflyBSD and FreeBSD do, which means that they produce wrong results for shared linking.
* dependencies/llvm: Add LLVM 7Dylan Baker2018-09-221-2/+3
| | | | | | It appears that debian has changed their naming scheme. This might require revisiting in the future to add llvm-config-7.0 if debian decides to do that.
* Add missing reporting of some methods tried to find the dependencyJon Turney2018-09-101-0/+6
| | | | | Make us report 'system' and 'framework' when we tried those methods to locate the dependency.
* llvm: fix build flags with older llvm versionsJakub Wilk2018-09-041-1/+1
| | | | | | | Fix fallback code for older (<= 3.8) llvm versions to not be dependent on readdir() order. Fixes #4102
* Pull in GTest as a dependency of GMockDavid Seifert2018-09-021-7/+25
| | | | | | * WrapDB already unconditionally includes GTest, and using GMock without GTest is extremely hard and definitely not the default setup.
* Prefer pkgconfig for `GMockDependency`David Seifert2018-09-021-2/+25
| | | | * Also bring `main` semantics in line with `GTestDependency`
* Prefer pkgconfig for `GTestDependency`David Seifert2018-09-021-2/+20
|
* Comparison with an unknown dependency version should always failJon Turney2018-08-261-2/+0
| | | | | Consistently use None to store an unknown dependency version (rather than 'none', 'unknown' or some made up version)
* Consolidate reporting result of a dependency checkJon Turney2018-08-011-9/+30
| | | | | | | | | | | | | | | | | | | | | | | | | If successful, we should identify the method which was successful If successful, we should report the version found (if known) If failing, we should identify the methods we tried Some dependency detectors which had no reporting now gain it There's all kinds of complexities, inconsistencies and special cases hidden in the existing behaviour, e.g.: - boost reports modules requested, and BOOST_ROOT (if set) - gtest/gmock report if they are a prebuilt library or header only - mpi reports the language - qt reports modules requested, and the config tool used or tried - configtool reports the config tool used - llvm reports if missing modules are optional (one per line) We add some simple hooks to allow the dependency object to expose the currently reported information into the consolidated reporting Note that PkgConfigDependency() takes a silent: keyword which is used internallly to suppress reporting. This behaviour isn't needed in find_external_dependency().
* gnome: Use raw link arguments with g-ir and gtk-docNirbheek Chauhan2018-07-011-1/+1
| | | | | | | | | | | | | Those tools use our arguments to build a file and execute it to introspect it at runtime. However, they do not know that you can pass the full path to the library to use, and ignore the arguments. The long-term fix for this is to have them output a .c file that Meson will build for them, which they can then run, but that will require upstream changes: https://gitlab.gnome.org/GNOME/gtk-doc/merge_requests/1 Closes https://github.com/mesonbuild/meson/issues/3774
* dependencies: Don't assume self.compiler is a C compilerNirbheek Chauhan2018-06-201-3/+3
| | | | | | | | | | | All dependencies were using find_library, has_header, get_define, etc on self.compiler assuming that it's a compiler that outputs and consumes C-like libraries. This is not true for D (and in the future, for Rust) since although they can consume C libraries, they do not use the C ecosystem. For such purposes, we now have self.clib_compiler. Nothing uses self.compiler anymore as a result, and it has been removed.
* No longer require duplicate gtest header install.Jussi Pakkanen2018-05-041-3/+5
|