summaryrefslogtreecommitdiff
path: root/mesonbuild/dependencies
AgeCommit message (Collapse)Author
2025-12-22dependencies: make arguments to InternalDependency.__init__ optionalPaolo Bonzini
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-12-17dependencies/coarrays: Remove dead codeDylan Baker
2025-12-17dependencies: Remove `log_tried` methodDylan Baker
It's now only used to populate the DependencyCandidate, so we can remove it and just calculate the same information from the `type_name` parameter. This reduces code and the number of method calls.
2025-12-17dependencies/detect: simplify logging tried methodsDylan Baker
Avoid extra method calls and repeating ourselves.
2025-12-17dependencies: Catch non MesonException in detect and give better messageDylan Baker
2025-12-17Dependencies: Make use of the DependencyCandidate classDylan Baker
This makes the type checking more reasonable (including fixing an issue that newer mypy is pointing out to us), consolidating special cases, and improving code readability.
2025-12-17dependencies: Add a wrapper class for Dependency candidatesDylan Baker
The goal is to have a single type for candidates that replaces having a mixture of class initializers, partials, and factories with a single wrapper class.
2025-12-17dependencies: Require 'native' be passed in kwargsDylan Baker
This simplifies a bunch of cases, and likely fixes some annoying bugs in cross compile situations where should have been passing this and weren't.
2025-12-17dependencies: stop passing "language" as a keyword argumentDylan Baker
It's allowed in the `DependencyKeywordArguments` TypeDict already, so we now have two sources of truth. Additionally, it's often populated by reading from that dict, so we're just doing useless work.
2025-12-17dependencies/framework: remove useless stringlistify callDylan Baker
We have type checking that ensures this is a string list already.
2025-12-17dependencies: Pass the `name` to `ExternalDependency` constructorDylan Baker
So we don't create a default name that is overwritten except in the case of appleframeworks. This allows for some cleanup, including deleting some initializers that were only setting the name.
2025-12-17dependencies: Move type_name to class levelDylan Baker
This is really class constant for all dependencies, and by taking it out of the initializer we make the `__init__` call have a more consistent interface.
2025-12-17dependencies: Annotate the DependencyPackages classDylan Baker
2025-12-11MPI detection: support Intel MPI on WindowsLisandro Dalcin
Co-authored-by: Dylan Baker <dylan@pnwbakers.com>
2025-12-11MPI detection: do not look for mpicc on WindowsLisandro Dalcin
2025-12-08dependencies/ui.py: Improve Vulkan detection on WindowsChun-wei Fan
There now exists a Windows Vulkan SDK for ARM64, and the latest Vulkan SDKs for x64 Windows also provides ARM64 libraries and binaries for cross-builds (and vice-versa). So, now we have the following in the Vulkan SDKs: * Bin-ARM64 and Lib-ARM64 in x64 Windows SDKs that contains ARM64 Vulkan binaries and libraries. * Bin-X64 and Lib-X64 in ARM64 Windows SDKs that contains x64 Vulkan binaries and libraries * SDKs after 1.4.x (or so) no longer ships 32-bit Windows binaries and libraries. This updates the Vulkan detection logic to account for these differences so that the correct library is picked up upon linking on Windows, especially when cross-compiling ARM64 binaries on x64 Windows, and vice versa, while maintaining compatibility with native and 32-bit builds.
2025-11-19compilers: Remove Environment parameter from Compiler.get_defineDylan Baker
2025-11-19compilers: Remove Environment parameter from Compiler.compute_intDylan Baker
2025-11-19compilers: Remove Environment parameter from Compiler.has_headerDylan Baker
2025-11-19compilers: Remove Environment parameter from Compiler.has_header_symbolDylan Baker
2025-11-19compilers: Remove Environment parameter from Compiler.has_functionDylan Baker
2025-11-19compilers: Remove Environment parameter from Compiler.find_libraryDylan Baker
2025-11-19compilers: Remove Environment parameter from Compiler.thread_flagsDylan Baker
Same logic as the openmp flags
2025-11-19compilers: Remove Environment parameter from Compiler.openmp_flagsDylan Baker
I've done the compile and link flags in one commit since they're so closely related
2025-11-19compilers: Remove Environment parameter from Compiler.get_library_dirsDylan Baker
2025-11-19compilers: Remove Environment parameter from Compiler.get_return_valueDylan Baker
2025-11-19compilers: Remove Environment parameter from Compiler.find_frameworkDylan Baker
Which, ironically, is passed down three levels and never used.
2025-11-19compilers: Remove environment parameter from Compiler.find_framework_pathsDylan Baker
2025-11-19compilers: Remove Environment parameter from Compiler.sanity_checkDylan Baker
2025-11-19Compilers: remove Environment parameter from Compiler.links()Dylan Baker
2025-10-31Fix: Add OpenMP 6.0 macro definition to implementation tablejaideepkathiresan
2025-10-31dependencies: remove copy of self.libtype being setDylan Baker
This is a clear copy-n-paste or rebase error on my part.
2025-10-29environment: move tool detection functions to a new modulePaolo Bonzini
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-10-29environment: move detection functions to envconfig.pyPaolo Bonzini
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2025-10-20dependencies: Add remaining internal arguments to Dependency classesDylan Baker
These may be better replaced by setting instance attributes, honestly.
2025-10-20dependencies: Add `silent` to known keyword arguments to DependencyDylan Baker
2025-10-20interpreter: remove dependency_kwargsDylan Baker
Since it's basically unusued, but the DEPENDENCY_KWS can be used instead This requires changing the number of arguments from 19 to 20 because the `DEPENDENCY_KWS` includes `disabler`, but the `permitted_dependency_kwargs` does not.
2025-10-20modules/python: port dependency embed to typed_kwargsDylan Baker
2025-10-20interpreter: port dependency version to typed_kwargsDylan Baker
2025-10-20interpreter: port dependency static to typed_kwargsDylan Baker
Static must be optional, because although the default is static=false, we special case that static : false is different than static being not set in a number of cases.
2025-10-20interpreter: port dependency required to typed_kwargsDylan Baker
2025-10-20interpreter: port dependency private_headers to typed_kwargsDylan Baker
2025-10-20interpreter: port dependency optional_modules to typed_kwargsDylan Baker
2025-10-20interpreter: port dependency native to typed_kwargsDylan Baker
2025-10-20interpreter: port dependency modules to typed_kwargsDylan Baker
2025-10-20interpreter: port dependency method to typed_kwargsDylan Baker
This allows us a bunch of nice things: 1. We can use the DependencyMethods enum everywhere 2. The deprecated methods can be checked in the Interpreter, so we can now emit deprecation warnings for stuff that was deperecated in 0.44! 3. We can share this more strongly typed method everywhere
2025-10-20interpreter: port dependency main to typed_kwargsDylan Baker
2025-10-20interpreter: port dependency language to typed_kwargsDylan Baker
2025-10-20interpreter: port dependency include_type to typed_kargsDylan Baker
The cleanup this allows lower down points out that we don't properly validate the value passed to `as_system()`. I have no idea what happens if you pass a non-valid value, but it's a bug and I've simply made it a hard error. We can re-assess if necessary.
2025-10-20interpreter: port dependencies components to typed_kwargsDylan Baker