aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
AgeCommit message (Collapse)AuthorFilesLines
2024-06-08Use helper method in Rust compiler class.Jussi Pakkanen1-2/+2
2024-06-08Use helper method in Fortran compiler classes.Jussi Pakkanen1-9/+9
2024-06-08Use helper method in C++ compiler classes.Jussi Pakkanen1-52/+60
2024-06-08Create helper method for lang opts and use in C compiler classes.Jussi Pakkanen2-34/+59
2024-06-07wrap: default values for netrc are empty string from python 3.11Ruben Gonzalez1-1/+1
From python 3.11 [1]: > The entry in the netrc file no longer needs to contain all tokens. The missing > tokens' value default to an empty string. All the tokens and their values now > can contain arbitrary characters, like whitespace and non-ASCII characters. > If the login name is anonymous, it won't trigger the security check. [1] https://github.com/python/cpython/commit/15409c720be0503131713e3d3abc1acd0da07378
2024-06-05Add -export_dynamic flag for AppleDynamicLinkerWolfgang Walther1-0/+3
The apple linker uses -export_dynamic instead of --export-dynamic [1]. This should be set when setting export_dynamic: true. Resolves #13290 [1]: https://opensource.apple.com/source/ld64/ld64-609/doc/man/man1/ld.1.auto.html
2024-06-05Merge pull request #13286 from mesonbuild/machinerefactorJussi Pakkanen4-99/+130
Extract MachineFile code to its own file
2024-06-04Extract native file parser to machinefile source file.Jussi Pakkanen4-108/+124
2024-06-03xcode: Skip generating PBXBuildStyle on Xcode 9 and aboveAlbert Tang1-9/+12
This was removed on Xcode 9, so only generate it for Xcode 8.3.3 and lower.
2024-06-03xcode: Generate files for highest detected versionAlbert Tang1-2/+2
Some settings require "objectVersion" to be set to a certain value or Xcode will not use it. To fix this, we set it to the highest possible value, determined by the detected version of Xcode. We also set "compatibilityVersion", but mainly so it lines up with "objectVersion". At the same time, we should not be generating Xcode 3.2-compatible projects by default anyway.
2024-06-03xcode: Detect installed version of XcodeAlbert Tang1-1/+31
This will allow for generating project files more specific to certain versions of Xcode without breaking compatibility.
2024-06-02Start moving machine files to their own store.Jussi Pakkanen1-0/+15
2024-06-01mintro: write humman-readable JSONFilipe Laíns1-1/+1
Signed-off-by: Filipe Laíns <lains@riseup.net>
2024-05-29cuda: disable thin archives when cuda is added through ↵David Seifert2-8/+11
`add_languages('cuda')` later
2024-05-24remove deprecation warning for `configure_file` kwarg 'copy'Marc Durdin1-1/+0
`configure_file` kwarg `copy` runs at configure time, whereas `fs.copyfile` runs at build time. Both have use cases, so this undeprecates the `configure_file` version. Fixes: #12792
2024-05-24compilers: improve a comment describing why we add a silly clang workaroundEli Schwartz1-3/+17
Clang is such a great compiler! Not. Compilers have enhanced diagnostics for some kinds of "well known" undeclared identifiers, telling you exactly which header you might have forgotten to include. The reason why clang needs an option GCC doesn't need is because clang's fixit suggestions, unlike GCC's actually *changes the type of the error*, as a result of a fixit of all things. After the fixit suggestion grants this error the right to be ignored, we start having to add clang-specific options. Follow-up to https://github.com/mesonbuild/meson/issues/9140 Upstream clang bug, which appears to be going nowhere: https://github.com/llvm/llvm-project/issues/33905
2024-05-24Revert "rust: recursively pull proc-macro dependencies as well"Sam James1-0/+2
This reverts commit aee941559c4b88a062e88186819a820c69c200ae. The commit being reverted breaks compilation of a major Meson consumer (Mesa). As a result, various distros are either pinning to <1.4.0 (before the commit) or performing this same revert downstream. Fixing a regression takes priority, so let's revert. Fixes: https://github.com/mesonbuild/meson/issues/12973
2024-05-23Refactor option classes to their own file.Jussi Pakkanen26-661/+703
2024-05-22cuda: fix `cuda.find_library()` hardcoded to yield trueDavid Seifert3-17/+30
* Previously, cuda would just plainly prepend `-l` to the libname. * By relying on the host compiler to find libraries, we now get more subtle failures, such as CUDA modules not being found anymore. * We need to simplify these CUDA modules when nvcc is used for linking, since this may have side-effects from the cuda toolchain. Closes: #13240
2024-05-22add cross-compile argument for ldc linker guessingAxel Ricard1-1/+5
2024-05-22fix sanity check for d cross-compilationAxel Ricard2-3/+14
2024-05-19pylint: fix useless-returnEli Schwartz2-2/+1
A bare return at the end of a function doesn't do anything. And in the case of a try/except, it's really just an elaborate "pass" anyway.
2024-05-19pylint: fix false positive for variable defined in different copies of ↵Eli Schwartz1-1/+2
conditional We do: ``` if is_thing: assignme = value if_is_thing: ... else: assignme = [] ``` It is always defined on both sides, but there was no particular reason we had to assign it in the later copy. pylint reported it as a false positive, and it may prove confusing in general, and it's harmless to move, so do so.
2024-05-19pylint: fix false positive for missing else branchEli Schwartz1-1/+1
We cover every case as if/elif/elif. mypy can handle this fine, but pylint doesn't do control flow or type checking and thinks in the missing else case, the variable might not be defined. For mypy as well, doing this instance check is unnecessary as it can be inferred. So just micro-optimize the check and allow pylint to safely analyze the logic.
2024-05-19Pass wrapmode value around as a string. (#13229)Jussi Pakkanen5-17/+7
2024-05-19Fix handling of C standard support for Emscripten.Ralf Gommers1-0/+10
Emscripten version numbers are unrelated to Clang version numbers, so it is necessary to change the version checks for `c_std=c17` & co. Without that, no project that defaults to C17 or newer will build with Emscripten. See https://github.com/pyodide/pyodide/discussions/4762 for more context. Also note that this bug caused defaulting to C17 in scikit-learn to be reverted (scikit-learn#29015), and it may be a problem for SciPy 1.14.0 too since that release will upgrade from C99 to C17. Co-authored-by: Loic Esteve <loic.esteve@ymail.com>
2024-05-15Merge pull request #11421 from mon/ti-armclangJussi Pakkanen3-10/+30
Basic support for TI Arm Clang toolchain
2024-05-09implement @PLAINNAME0@ and @BASENAME0@Stas Sergeev2-2/+13
@PLAINNAME@ and @BASENAME@ cannot be used in custom_target() with multiple inputs. For those, similar macros are needed with an index. Fixes #13164
2024-05-08mtest: Set MESON_TEST_ITERATION to the current iteration of the testDaan De Meyer1-2/+3
When running our integration tests in systemd we depend on each test having a unique name. This is always the case unless --repeat is used, in which case multiple tests with the same name run concurrently which causes issues when allocating resources that use the test name as the identifier. Let's set MESON_TEST_ITERATION to the current iteration of the test so we can use $TEST_NAME-$TEST_ITERATION as our test identifiers which will avoid these issues.
2024-05-07cuda: disable thin archives when 'cuda' is enabled globallyDavid Seifert1-1/+15
Bug: mesonbuild/meson/pull/9453 Bug: mesonbuild/meson/issues/9479#issuecomment-953485040
2024-05-07cuda: pass static archives to nvcc without -Xlinker= prefixDavid Seifert2-1/+13
2024-05-07cuda: pull in libdir when linking C/C++David Seifert1-1/+1
* In `CudaDependency._detect_language`, the first detected language is considered the linking one. Since `nvcc`/`cuda` implicitly know where the cuda dependency lives, this leads to situations where `cpp` as linking language is erroneously detected as `cuda` and then misses the `-L` argument.
2024-05-07Add support for GCC's null_terminated_string_arg function attributeTristan Partin1-0/+2
This is new as of 14.1.
2024-05-07Use correct subdir when generating processed file pathTristan Partin1-5/+1
We need the subdir of where the output file will actually be created, not the current subdir of the interpreter. Fixes: #13168
2024-05-01Add required kwarg to compiler.{compiles,links,run}Tristan Partin1-8/+39
This is a similar commit to the one that added required to all the compiler.has* functions.
2024-05-01use a for loop, check more linker optionsmatyalatte1-12/+26
2024-05-01vs2010backend: fix an error when using /MANIFEST:NOmatyalatte1-5/+20
2024-04-30Fix dependencies for vala.links #13158Ben Corby1-0/+44
Using the keyword argument dependencies with compiler.links() for vala doesn't work as the library being linked to needs to be prefixed with --pkg= before being passed to valac.
2024-04-28catch build files that cannot be opened in utf8 mode and emit useful errorEli Schwartz5-17/+28
Previously, if a junked meson.build or native.ini was used we got a lengthy traceback ending in UnicodeDecodeError. Fixes: #13154 Fixes: #13156
2024-04-28add punctuation mark to make log more understandablekkz1-3/+3
2024-04-28Add support for depending on ObjFWJonathan Schleifer2-0/+27
This uses objfw-config to get to the flags, however, there's still several todos that can only be addressed once dependencies can have per-language flags.
2024-04-28Prefer Clang over GCC for Objective-C(++)Jonathan Schleifer1-5/+4
GCC only has very limited support for Objective-C and doesn't support any of the modern features, so whenever Clang is available, it should be used instead. Essentially, the only reason to ever use GCC for Objective-C is that Clang simply does not support the target system.
2024-04-27mdist: gracefully handle stale Git indexBenjamin Gilbert1-0/+1
Running `touch` on a tracked file in Git, to update its timestamp, and then running `meson dist` would cause dist to fail: ERROR: Repository has uncommitted changes that will not be included in the dist tarball Use --allow-dirty to ignore the warning and proceed anyway Unlike `git status` and `git diff`, `git diff-index` doesn't refresh the index before comparing, so stat changes are assumed to imply content changes. Run `git update-index -q --refresh` first to refresh the index. Fixes: #12985
2024-04-27compilers/fortran: fix werror options for Intel compilersBenjamin Gilbert1-0/+6
Unlike in the Intel C compiler, -Werror and /WX are not accepted.
2024-04-27backend/ninja: use generate_basic_compiler_args() for C#, Java, SwiftBenjamin Gilbert3-14/+19
C#, Java, and Swift targets were manually collecting compiler arguments rather than using the helper function for this purpose. This caused each target type to add arguments in a different order, and to forget to add some arguments respectively: C#: /nologo, -warnaserror Java: warning level (-nowarn, -Xlint:all, -Xdoclint:all), debug arguments (-g, -g:none), -Werror Swift: -warnings-as-errors Fix this. Also fix up some no-longer-unused argument processing in the Compiler implementations.
2024-04-26nasm: Fallback to native compiler when cross compilingXavier Claessens1-3/+9
If nasm is not defined in cross file binaries we can fallback to build machine nasm. When cross compiling C code we need a different gcc binary for native and cross targets, e.g. `gcc` and `x86_64-w64-mingw32-gcc`. But when cross compiling NASM code the compiler is the same, it is the source code that has to be made for the target platform. We can thus use nasm from build machine's PATH to cross compile for Windows on Linux for example. The difference is the arguments Meson will pass when invoking nasm e.g. `-fwin64`. That is already handled by NasmCompiler class.
2024-04-25Catch Python exception in the event alignment can't be converted to intTristan Partin1-1/+9
The user almost certainly has to be using a compiler wrapper script that doesn't actually work if we land here. Fixes: #12982
2024-04-25find_library: improve the docs and FeatureNew to fully describe the changeEli Schwartz1-1/+1
The docs didn't really explain what the issue was with using it. And it's not actually a "crash" either way. The FeatureNew mentions that "name" is new, but it is standard for these warnings to tell you both the type of object you're operating on and the name of the method that is an issue. This omitted the former, and was very confusing.
2024-04-25dependencies/boost: Add new homebrew rootDylan Baker1-2/+7
On Apple Silicon the default search path is /opt/homebrew instead of /usr/local.
2024-04-24rust: Fix warning_level=everything caseXavier Claessens1-0/+1
Fixes: #13100