aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
AgeCommit message (Collapse)AuthorFilesLines
2021-07-05Bump version number for rc1.0.59.0.rc1Jussi Pakkanen1-1/+1
2021-07-05cmake: Improved error message for using dependency for executablesDaniel Mensinger1-0/+2
fixes #8893
2021-07-05condense linesEli Schwartz8-32/+16
2021-07-05simplify mesonlib imports for the sake of line lengthsEli Schwartz2-18/+19
2021-07-05more f-strings too complex to be caught by pyupgradeEli Schwartz20-92/+81
2021-07-05fix typo in log messageEli Schwartz1-1/+1
2021-07-05pyupgradeEli Schwartz1-1/+1
2021-07-05use modern set syntaxEli Schwartz1-1/+1
In one place, we reintroduced old set syntax after having initially cleaned it up everywhere via commit 4340bf34faca7eed8076ba4c388fbe15355f2183
2021-07-04dependencies: Deterministic LLVM compile and link arg ordering (#8959)kira781-2/+2
* dependencies: Deterministic LLVM compile and link arg ordering In LLVMDependencyConfigTool, the members compile_args and required_modules are either converted to or stored as sets, which do not have a stable ordering. This results in nondeterministic builds, particularly with required_modules causing the order in which the LLVM libraries are linked in to the output binaries to change across independent builds. As any guarantee about ordering for compile_args is lost by being converted from a list to a set and back, and the modules added to required_modules was even already sorted once, sort both when converting them to lists. * Use mesonlib.OrderedSet instead of sorting the sets. Co-authored-by: Kaelyn Takata <kaelyn.alexi@protonmail.com>
2021-07-05cmake: Only use the `cm_` prefix when it is actually required (fixes #8955)Daniel Mensinger1-1/+4
2021-07-04dist: only exclude actual git filesAndrea Pappacoda1-4/+6
Instead of excluding all files starting with .git, meson dist now only excludes files really used by git
2021-07-03Merge pull request #8950 from dcbaker/submit/import-required-disabledJussi Pakkanen5-22/+98
Add required and disabled to import, modules.found method
2021-07-03Delete redirected wrap files in subprojects purgeTristan Partin2-1/+11
We need to store the original filename as well as whether the wrap was redirected in order to properly purge the redirected wrap.
2021-07-02Flatten test suite valueTristan Partin1-2/+2
This behavior is more inline with the rest of Meson
2021-07-02backends/ninja: only pass project specific arguments to scan-buildDylan Baker1-1/+2
Currently all arguments are being passed to scan-build as part of the refactoring of how Meson internally handles arguments, but that's wrong, only project specific arguments are supposed to be passed. Fixes: #8818
2021-07-02fix: get_variable default variables are not ObjectHolders (fixes #8936)Daniel Mensinger6-10/+15
2021-07-01Add minimum NVIDIA driver version entry in table for newly-released CUDA ↵Olexa Bilaniuk1-0/+1
Toolkit 11.4.0. We skip 11.3.1 because it shares the same version requirements as 11.3.0.
2021-06-30interpreter: add required and disabled to importDylan Baker3-32/+60
This is useful both from the perspective of optional functionality that requires a module, and also as I continue to progress with Meson++, which will probably not implement all of the modules that Meson itself does.
2021-07-01C2000: linker uses now binary setting defined within the cross-filemiebka2-3/+3
2021-06-30modules: modules need to return either an ExtensionModlue or aDylan Baker3-6/+6
NewExtensionModule object So that we get the found() method.
2021-06-30modules: add classes with the found methodDylan Baker1-2/+52
These will be needed for checking whether a module is found or not if it is required false.
2021-06-30interpreter: use typed_pos_args for func_importDylan Baker1-18/+16
and make the helper method private
2021-06-29Merge pull request #8882 from xclaesse/msubprojects-parallelJussi Pakkanen1-337/+430
msubprojects: Run action on all subprojects in parallel
2021-06-29Add feed arg to custom_target()Simon Ser6-19/+43
2021-06-29fix: Always explicitly set encoding for text files (fixes #8263)Daniel Mensinger65-182/+196
2021-06-29pathlib: Patch pathlib to work around some bugs (fixes #7295)Daniel Mensinger2-0/+77
2021-06-28 build: fix object path for vs backendDenis Fortin1-1/+8
2021-06-27modules/qt: use _impl private methods to avoid incorrect FeatureNewDylan Baker1-11/+28
`qt.preprocess` dispatches to the individual methods instead of duplicating all of the logic itself, but this means that it goes through the type checking, and feature checking a second time. To avoid this we need to use a private helper method instead. Fixes #8920
2021-06-27Update detect.pyIan Harvey1-1/+1
Adjust Intel Fortran compiler detection to handle changes in ifort logo with the introduction of the oneapi toolkit. See #8338.
2021-06-26refactor: Refactor BothLibraries logicDaniel Mensinger12-50/+48
This commit introduces a new type of `HoldableObject`: The `SecondLevelHolder`. The primary purpose of this class is to handle cases where two (or more) `HoldableObject`s are stored at the same time (with one default object). The best (and currently only) example here is the `BothLibraries` class.
2021-06-25msubprojects: Display progress while tasks are runningXavier Claessens1-9/+49
Logs are printed only when the task is done to not interleave logs while running multiple tasks in parallel. That means that nothing is printed until the task is done and that could take time.
2021-06-25msubprojects: Add message at the end of purgeXavier Claessens1-0/+12
2021-06-25msubprojects: Run action on all subprojects in parallelXavier Claessens1-336/+377
This moves all the code into a class and call its run() method in a thread. The class queues all logs to print them at the end to avoid mixing output of multiple actions.
2021-06-25typing: Annotate compilers.detectDaniel Mensinger2-63/+74
2021-06-25Split compiler detection from EnvironmentDaniel Mensinger12-1375/+1528
This moves all the compiler detection logic into the new compilers.detect module. This dramatically reduces the size and complexity of Environment.
2021-06-25linkers: move linkers.py into the linkers packageDaniel Mensinger2-8/+123
2021-06-23gnome: add update_desktop_database to post_install()Xavier Claessens1-4/+18
2021-06-23gnome: Set GSETTINGS_SCHEMA_DIR in devenvXavier Claessens1-0/+1
2021-06-23interpreter: Empty list used to be allowed in install_headers/manXavier Claessens1-2/+2
That change introduced when porting to @typed_pos_args breaks gtk4. We could decide to deprecate/warn but should not error for backward compatibility.
2021-06-23Merge pull request #8884 from dcbaker/submit/type-and-annotate-install-functionsJussi Pakkanen7-119/+241
Add annotations for the various install_* functions
2021-06-23Merge pull request #8912 from mensinda/fixBothLibrariesJussi Pakkanen5-8/+32
Fix `BothLibraries` processing
2021-06-22fix: Handling BothLibraries objects (fixes #8907)Daniel Mensinger5-8/+32
2021-06-22Merge pull request #8905 from mensinda/refactorFixJussi Pakkanen2-19/+29
fix: Fix set_variable not holderifying (fixes #8904)
2021-06-22Add Visual Studio 2012/2013 backends (#8803)fanc9996-7/+121
* backends: Add a Visual Studio 2013 backend This is more-or-less a quick port from the VS2015 backend, except that we update the Visual Studio version strings and toolset versions accordingly. Also correct the generator string for Visual Studio 2015 in mesonbuild/cmake/common.py. * backend: Add VS2012 backend Similar to what we did for Visual Studio 2013, add a Visual Studio 2012 backend. * vs2010backend.py: Implement `link_whole:` if needed We actually need Visual Studio 2015 Update 2 to use `/WHOLEARCHIVE:`, which is what we are currently using for `link_whole:` on Visual Studio. For Visual Studio versions before that, we need to expand from the static targets that were indicated by `link_whole:`, and any of the sub-dependent targets that were pulled in via the dependent target's `link_whole:`. This wil ensure `link_whole:` would actually work in such cases. * vs2010backend.py: Handle objects from generated sources Unforunately, we can't use backends.determine_ext_objs() reliably, as the Visual Studio backends handle this differently. * vs2010backend.py: Fix generating VS2010 projects Visual Studio 2010 (at least the Express Edition) does not set the envvar %VisualStudioVersion% in its command prompt, so fix generating VS2010 projects by taking account into this, so that we can determine the location of vcvarsall.bat correctly. * whole archive test: Disable on vs2012/2013 backends too The Visual Studio 2012/2013 IDE has problems handling the items that would be generated from this test case, so skip this test when using --backend=vs[2012|2013]. This test does work for the Ninja backend when VS2012 or VS2013 is used, though. Consolidate this error message with XCode along with the vs2010 backend. * docs: Add the new vs2012 and vs2013 backends Let people know that we have backends for vs2012 and 2013. Also let people know that generating Visual Studio 2010 projects have been fixed and the pre-vs2015 backends now handle the `link_whole:` project option.
2021-06-22Merge pull request #8900 from bonzini/extract-objects-docsJussi Pakkanen1-4/+6
extract_objects: fixes, tests and documentation for using the result in a custom_target
2021-06-22Merge pull request #8898 from e820/interpreter-required-argumentsDylan Baker2-4/+18
interpreter: Add checked kwarg to compiler.get_supported_arguments
2021-06-22minstall: make intentions clearerDylan Baker1-2/+2
The existing code works, but it probably doesn't do what the author thought it would do. `(x or y or z) is not None` works by checking that each of those things are *truthy* in turn, and returning the first truthy value, which is compared against None. Using `all()` makes it very clear that what you want to do is make sure that each value is not None.
2021-06-22install_*: FileMode doesn't need to be NoneDylan Baker3-12/+7
There's no reason to allow None into the backend, it already has code to check that all of the values of the FileMode object are None, so let's use that, which is much simpler all the way down.
2021-06-22interpreter: use typed_kwargs for install_manDylan Baker2-12/+19
2021-06-22interpreter: man sections can be up to 9 on many platformsDylan Baker1-3/+4
Linux and FreeBSD use section 9 for kernel man pages, so we should allow that.