aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
AgeCommit message (Collapse)AuthorFilesLines
2022-07-03move various unused typing-only imports into type-checking blocksEli Schwartz19-34/+77
2022-07-03fix totally invalid import of an importEli Schwartz1-1/+3
MachineChoice is a mesonlib object, not a compilers object, so it makes no sense to import it from the latter simply because the latter imports it too. This results in brittle module dependencies and everything breaking when a refactor removes it from the latter. ... also it is a typing-only import so while we are fixing it to import from the right place, we can also put it in a type-checking block.
2022-07-03sort imports for neatnessEli Schwartz3-18/+17
2022-07-03Bump version number for new development.Jussi Pakkanen1-1/+1
2022-07-03Finalize the release.0.63.0Jussi Pakkanen1-1/+1
2022-06-27dependencies: update llvm versionsDylan Baker1-1/+3
15 is the current snapshot version, 13 and 14 are released.
2022-06-27Bump version number for rc2.0.63.0.rc2Jussi Pakkanen1-1/+1
2022-06-26Fix destdir_joinAkihiko Odaki1-3/+3
The old implementation assumed a path is of Windows iff the second character is a colon. However, that is not always true. First, a colon can be included in a non-Windows path. For example, it is totally fine to have a directory named ':' on Linux 5.17.0 tmpfs. Second, a Windows path may start with \\ for UNC or extended length. Use pathlib to handle all of these cases.
2022-06-26add missing lower() to fix msvc backend platform detectionTad Young1-1/+1
Regardless of which MachineChoice we base the platform on, we compare its value to lowercased identifiers. So we need to lowercase the targetplatform too... but we only did so sometimes. This broke e.g. on "Win32", but only when *not* doing a cross build. Fixes #10539
2022-06-24fix: handle the case where the last item of `four_column` results in being < ↵fxxf1-1/+2
1 (COLUMNS <= 60) by falling back to `_col`, relevant issue #10211
2022-06-22Move python version check as first thingXavier Claessens1-6/+0
2022-06-21fix type checking for declare_dependency to allow linking to executableEli Schwartz1-3/+3
We have to handle this, because Windows needs to link to the implib of the executable (???) in order to create a shared module. This is explicitly checked for and handled in the backend, and creating a build target with `link_with: some_exe` still works, even. But updating declare_dependency to typed_kwargs neglected to take that into account, so creating a convenience interface for those same arguments failed.
2022-06-21visualstudio.py: Apply /utf-8 only on clang or VS2015+Chun-wei Fan1-7/+5
In PR 10263, we didn't account for that we may have initialize the Visual Studio-like compiler two times, once for a C compiler and once for the C++ compiler, so we end up with Meson breaking on Visual Studio 2013 or earlier, such as when building GLib. Fix this by setting up the always_args member of the VisualStudioLikeCompiler instance during __init__() as needed, so that we avoid falling into modifying shared objects.
2022-06-19Update version numbers for rc1.0.63.0rc1Jussi Pakkanen1-1/+1
2022-06-19Merge pull request #10464 from rtbo/fix_generated_depsJussi Pakkanen1-2/+9
add D generated files to order-only deps
2022-06-19python module: implicitly add python dep to extensionsEli Schwartz1-9/+19
If there isn't a preexisting dependency on python, append one. It's almost assuredly needed, so just do the right thing out of the box.
2022-06-19python module: cache dependency() lookup between invocationsEli Schwartz1-14/+26
Modeled similarly after the installations cache, but using the coredata dependency cache because it has a nice mechanism for handling the cache key.
2022-06-19gnome module: fix regression that broke using built xml files as gresourcesEli Schwartz1-1/+8
In commit 3dcc7125833cae138987aa4535c88dbd4dbd960d we moved to typed_pos_args. In the process, we deleted some code to specifically raise an error if you use custom_target or generator outputs, instead leaving it out of the typed pos args. However, that support was specifically supposed to be there. It was only an error in part of an if statement for handling old versions of glib-compile-resources. The specific error it calls out is that we need to manually parse the depfile at configure time, due to an external bug; obviously this is impossible if the gresource is only created at build time. Reinstate the original error message check, and allow built outputs to be used as compile_resources() inputs. Fixes #10367
2022-06-19Update CUDA Toolkit/driver version table for recent releases.Olexa Bilaniuk1-0/+5
Agrees with Release Notes, Section 1.1, Table 3. https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
2022-06-17always run external projects multi-threaded if possibleStaz M1-4/+3
The check for if the project supports the -j flag was needlessly complex. We support two types of project: - waf, always supports -j - make, if GNU, supports -j We never checked waf, and the make check assumed that the entire command, rather than just the last component, was "make". It also neglects "gmake". Since any possible build command *may* support -j, always run the --version check. Detect either build command in the output.
2022-06-17always set DESTDIR via the environment for external projectsStaz M1-4/+1
It doesn't matter whether it is make or not, because make, too, supports setting it via the env. This reduces the use of special cases in the code.
2022-06-17external-project: Add depends kwargXavier Claessens1-5/+11
The unit test was racy but surprisingly never failed on CI. The reason is we need to ensure ninja build somelib.so before running `make` into the external project.
2022-06-17migrate declare_dependency to typed_kwargsEli Schwartz2-32/+94
2022-06-17refactor logic for parsing dependency variables into type_checking moduleEli Schwartz2-12/+41
We will momentarily use this to implement typed_kwargs, but not for all usage sites.
2022-06-17fix confusing incorrect default name for a KwargInfoEli Schwartz2-2/+2
We can use this lots of places, and it's always the same kwarg. There doesn't seem to be a point in naming it badly, then evolving it to the standard name in the one place it is currently used. This made it not shareable.
2022-06-17typed_kwargs: support dict/list as "new since" typesEli Schwartz1-6/+12
Given a kwarg value that is itself a dict/list, we would only check if the since_values was present within that container. If the since_values is itself the dict or list type, then we aren't looking for recursive structures, we just want to know when the function began to accept that type. This is relevant in cases where a function accepted a dict, and at one point began accepting a list (of strings in the form 'key=value'), or vice versa.
2022-06-17interpreter: fix a subproject check with symlinksHemmo Nieminen1-1/+1
The check for whether or not a file is allowed to be accessed from a subproject fails if the subproject is accessed via a symlink. Use the absolute path of the subproject without resolving symlinks to fix the check. Extend unit test 106 to check for this in the future.
2022-06-17fix parameter expansion in several error messagesMichael Mera3-5/+5
At several points in the code base, f-strings are not correctly expanded due to missing 'f' string prefix. This fixes all the occurrences I could find.
2022-06-17devenv: Do not use relative WINEPATHXavier Claessens1-5/+5
It forces launching executables from the top builddir which users might not expect and creates hard to understand issues.
2022-06-17Improve WINEPATH reductionXavier Claessens4-72/+69
- Remove duplicated code in mdevenv.py - Change the limit to 1024 instead of 2048 which is what has been tested. - Skip shortening if it is already short enough. - Skip shortening with wine >= 6.4 which does not seems to have that limitation any more. - Downgrade exception to warning in the case WINEPATH cannot be shortened under 1024 chars, it is possible that it will still work.
2022-06-17ExternalProgram: Make get_version() work without interpreterXavier Claessens1-6/+15
2022-06-16fix regression that broke proper warnings about passing subproject as a depEli Schwartz1-0/+3
Regression in commit 7c757dff71c031ae02ecc358a69a213a5db4051a. SubprojectHolder is no longer an ObjectHolder and says so via a TODO: this means that we have to fiddle with held_object. Yay.
2022-06-16fix crash when passing invalid inputs as build_target dependenciesfxxf1-6/+7
The `add_deps` function did not behave correctly when a specified dependency is not an instance of `dependencies.Dependency`. Reorder the logic flow to perform this validation first. Fixes #10468
2022-06-16minstall: Add more safety checks when unpickling installdataXavier Claessens3-26/+30
When need to catch exceptions just like we do in coredata.load() to print proper error message instead of backtrace when user mix meson versions. This happens frequently when user has a newer version of meson installed in their HOME and then "sudo meson install" uses the system version of meson.
2022-06-14devenv: Add support for PowerShell 7 on WindowsSeungha Yang2-4/+3
Checks "pwsh.exe" in addition to "powershell.exe" and "cmd.exe" to support PowerShell 7 on Windows. The Powershell 7 support was added in GStreamer (which is the origin of this script) already via https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2545
2022-06-14Fix crash when a reconfigure adds a new subprojectXavier Claessens1-2/+1
When a subproject is disabled on the initial configuration we should not add it into self.coredata.initialized_subprojects because that will prevent calling self.coredata.init_builtins() on a reconfigure if the subproject gets enabled. Fixes: #10225.
2022-06-14backend: always use the same code to compute the files in ExtractedObjectsPaolo Bonzini3-18/+9
Instead of asking the ExtractedObjects, but with a hook back into the backend, use the existing function in the backend itself. This fixes using the extract_objects(...) of a generated source file in a custom_target. It should also fix recursive extract_all_objects with the Xcode backend. Fixes: #10394
2022-06-14take override_option('unity=...') into account when allowing extract_objects()Paolo Bonzini4-10/+9
A single target could be picked for unity build, and in that case extract_objects() should not be allowed. Likewise for the opposite case, where extract_objects() should be allowed if unity build is disabled for a single target. A test that covers that case is added later.
2022-06-13ninja backend: generate additional meta-rules for test/benchmarks targetsEli Schwartz3-12/+24
'meson-test-prereq' now depends on any targets that were formerly added directly to 'all'. Behavior is not changed -- the all target still depends on this other meta-rule, and thus indirectly depends on all targets it used to depend on. It is now possible to build just the targets needed for the testsuite and then e.g. run `meson test --no-rebuild`.
2022-06-13flake8: remove unused variableEli Schwartz1-1/+1
2022-06-13flake8: don't use f-strings for strings without formattingEli Schwartz3-3/+3
2022-06-13flake8: fix non-idiomatic ordering of "if not in" checksEli Schwartz1-3/+3
2022-06-13flake8: fix various whitespace nitsEli Schwartz9-16/+16
2022-06-10add Feature checks for install_subdir creating an empty directoryEli Schwartz1-0/+7
Most importantly, tell people it's broken and to stop using it for 0.62.0
2022-06-10ACfL version detection with regexStepan Nassyr1-28/+6
2022-06-10Allow for 3-component ACfL versionsStepan Nassyr1-8/+26
2022-06-10treewide: various cleanups to move imports for mypy into typechecking blocksEli Schwartz17-59/+93
Along the way, add __future__ annotations where lacking.
2022-06-10flake8: remove import that was never usedEli Schwartz1-1/+0
Introduced via commit 0d0a4fa0fe02ca8297743a5a8e64ee72060cc990, probably in the course of heavy rebasing.
2022-06-10flake8: remove no longer used importsEli Schwartz4-4/+0
2022-06-10build: CustomTargetIndex.is_linkable_target misses '.dylib'Sutou Kouhei1-1/+1
CustomTarget.is_linkable_target has '.dylib'. See also 93b1d31af9d90f306aa104eee1e9be8e1ebbacad that added '.dylib' to CustomTarget.is_linkable_target but didn't add '.dylib' to CustomTargetIndex.is_linkable_target.