aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild
AgeCommit message (Collapse)AuthorFilesLines
2023-09-25Adjust kernel detection to support Solaris 5.10 or earlierHEADmasterCorrodedCoder1-0/+5
The logic previously added to distinguish between illumos and Solaris made use of a uname invocation with a -o switch which is not supported on Solaris 5.10 or earlier. illumos started with version 5.11 so the logic has been shortcut to report 'solaris' in such cases where the version is 5.10 or below.
2023-09-25rust: apply global, project, and environment C args to bindgenDylan Baker1-0/+6
This means that arguments set via `add_global_arguments`, `add_project_arguments` and by either the `-Dc_args` or `CFLAGS` are applied to bindgen as well. This can be important when, among other things, #defines are set via these mechanisms. Fixes: #12065
2023-09-25fix bug where all java builds & tests fail to run SanityCheck on JDK11Alan Brooks1-1/+1
Needed a classpath set in the current working directory. This was on a Zulu build of OpenJDK 11.0.17 on a macOS ARM machine. The errors folks might encounter: Error: Could not find or load main class SanityCheck Caused by: java.lang.ClassNotFoundException: SanityCheck
2023-09-25Add clang-tidy-fix targetLei YU2-1/+7
Add the `clang-tidy-fix` target to apply clang-tidy fixes to the source code. This is done by calling `run-clang-tidy` with `-fix` argument. Add a test case to run `clang-tidy-fix` and verify the file is changed. Signed-off-by: Lei YU <yulei.sh@bytedance.com>
2023-09-24cpp: restore c++26 supportChristoph Reiter1-1/+1
c++26 support was added in #11986, but regressed in #10332 because the versions now get checked against the global _ALL_STDS list, and c++26 was missing there. Fix by adding c++26 to _ALL_STDS
2023-09-23openmp: add 5.1/5.2, fixes openmp with llvm v17Christoph Reiter1-0/+2
llvm v17 defaults to 5.1 and without this meson fails to find openmp: 'ERROR: Dependency "openmp" not found, tried system' Add 5.2 as well while at it.
2023-09-23get_llvm_tool_names: add llvm 17Christoph Reiter1-0/+1
this fixes the "frameworks: 15 llvm" tests with llvm 17
2023-09-22interpreter: Move code that dumps generated ASTXavier Claessens1-24/+14
That code is common to any method that generates an AST, like cargo subprojects coming soon.
2023-09-22CMakeInterpreter: Remove useless argumentsXavier Claessens2-9/+5
2023-09-22Allow to fallback to cmake subprojectXavier Claessens5-27/+37
The method can be overridden by setting the `method` key in the wrap file and always defaults to 'meson'. cmake.subproject() is still needed in case specific cmake options need to be passed. This also makes it easier to extend to other methods in the future e.g. cargo.
2023-09-22CPU family support 'sw_64' and remove the compile warning (#12273)Kunwu.Chan1-0/+2
add sw_64 to the list of known cpus
2023-09-22ZlibSystemDependency: pass libtype to clib_compiler.find_libraryAlan Coopersmith1-1/+1
Makes it stop reporting that it found a static zlib on Solaris which does not ship a static library file for libz, and thus allows "test cases/rust/13 external c dependencies" to pass. Fixes #10906
2023-09-22rust: properly rematerialize static dependencies as well as dynamic onesDylan Baker1-2/+3
Rustc expects to be provided both a search path `-L`, and a link arg `-l kind=libname`, but we don't handle that correctly. Because we combine -L and -l arguments from pkg-config the backend must rematerialize the -L and -l split. We currently don't do this for static archives.
2023-09-21objective-c++: add support for current supported standards in Apple ClangSteven Noonan1-1/+3
Pulled from this list on Xcode 15 beta: $ clang -E -dM -xobjective-c++ -std=arglbargle -o - /dev/null error: invalid value 'arglbargle' in '-std=arglbargle' note: use 'c++98' or 'c++03' for 'ISO C++ 1998 with amendments' standard note: use 'gnu++98' or 'gnu++03' for 'ISO C++ 1998 with amendments and GNU extensions' standard note: use 'c++11' for 'ISO C++ 2011 with amendments' standard note: use 'gnu++11' for 'ISO C++ 2011 with amendments and GNU extensions' standard note: use 'c++14' for 'ISO C++ 2014 with amendments' standard note: use 'gnu++14' for 'ISO C++ 2014 with amendments and GNU extensions' standard note: use 'c++17' for 'ISO C++ 2017 with amendments' standard note: use 'gnu++17' for 'ISO C++ 2017 with amendments and GNU extensions' standard note: use 'c++20' for 'ISO C++ 2020 DIS' standard note: use 'gnu++20' for 'ISO C++ 2020 DIS with GNU extensions' standard note: use 'c++2b' for 'Working draft for ISO C++ 2023 DIS' standard note: use 'gnu++2b' for 'Working draft for ISO C++ 2023 DIS with GNU extensions' standard Signed-off-by: Steven Noonan <steven@uplinklabs.net>
2023-09-19Rust: Fix both_libraries() caseXavier Claessens2-3/+6
Rustc does not produce object files we can reuse to build both libraries. Ideally this should be done with a single target that has both `--crate-type` arguments instead of having 2 different build rules. As temporary workaround, build twice and ensure they don't get conflicts in intermediary files created by rustc by passing target's private directory as --out-dir. See https://github.com/rust-lang/rust/issues/111083.
2023-09-19Rust: Use Popen_safe_logged in sanity checksXavier Claessens1-11/+5
2023-09-19Rust: Fix proc-macro usage when cross compilingXavier Claessens2-1/+5
Force BUILD machine and allow to link with HOST machine.
2023-09-19Rust: Prevent linking Rust ABI with C library/executableXavier Claessens1-12/+16
2023-09-19Rust: Replace rust_crate_type with rust_abiXavier Claessens3-45/+69
Meson already knows if it's a shared or static library, user only need to specify the ABI (Rust or C).
2023-09-19Rust: Add a rust.proc_macro() methodDylan Baker1-3/+20
2023-09-19interpreter: Use common definition for sources typeXavier Claessens2-15/+20
2023-09-19interpreter: Allow regex matching in expect_error()Xavier Claessens1-4/+9
2023-09-18pkgconfig: Use ImmutableListProtocol[str] for cached listsXavier Claessens1-9/+10
This ensures that we are not modifying lists from lru cache.
2023-09-18pkgconfig: Set PKG_CONFIG in env for devenv and g-ir-scannerXavier Claessens4-22/+51
2023-09-18pkgconfig: Deprecate "pkgconfig" in favor of "pkg-config" in [binaries]Xavier Claessens2-2/+6
2023-09-18pkgconfig: Restore logging of pkg-config versionXavier Claessens1-14/+12
While at it, make more methods private by storing the version found on the instance. That avoids having to call check_pkgconfig() as static method from unittests.
2023-09-18pkgconfig: Use lru_cache instead of caching command linesXavier Claessens1-19/+9
2023-09-18pkgconfig: Cache the implementation instanceXavier Claessens2-42/+35
2023-09-18Remove get_configtool_variable()Xavier Claessens3-31/+12
This also makes it more consistent with get_pkgconfig_variable() which always return empty value instead of failing when the variable does not exist. Linking that to self.required makes no sense and was never documented any way.
2023-09-18Remove get_pkgconfig_variable()Xavier Claessens12-61/+54
Make sure that pkgconfig_define is a pair of strings and not a list with more than 2 strings.
2023-09-18Metrowerks assembler should not inherit opt args from mixinNomura1-0/+3
The Metrowerks assembler does not support optimization flags. However, it received the same opt args as the Metrowerks C and C++ compilers, because it inherits from the 'MetrowerksCompiler' mixin. This broke builds with opt level higher than 0 that used the Metrowerks Assembler, as the latter received unsupported args. This is now fixed.
2023-09-18Metrowerks: set optlevel 3 to max optimization argsNomura1-1/+1
According to the Meson documentation, optimization level 3 should set the highest possible optimization for the compiler in use. In Metrowerks, this is 'O4,p'. However, Meson's Metrowerks implementation mapped opt level 3 to '-O3'. This has been fixed.
2023-09-18Metrowerks: remove duplicate optimization argsNomura1-4/+4
The args were in both buildtype and optimization. This broke buildtypes other than plain or custom unless manually setting the optimization level to 0, because Metrowerks chokes on duplicate arguments.
2023-09-18xcode: Check for apple framework deps by nameAlbert Tang1-6/+5
If `dependencies.platform.AppleFrameworks` has not been imported by this time, Meson crashes. Better to check by name instead.
2023-09-15environment, env2mfile: Don't shell split paths if they point to a valid ↵L. E. Segovia2-2/+8
executable Fixes #11128
2023-09-14Wrap: Use git instead of patch by defaultXavier Claessens1-6/+8
This solves problems with Strawberry Perl providing patch.exe on Windows with an unconsistent line ending support. Fixes: #12092
2023-09-13install_{data,headers,subdir}: implement follow_symlinksArsen Arsenović6-24/+53
This permits users who rely on following symlinks to stay on the old default of following them.
2023-09-13fix undefined StringNode from previous commitCharles Brunet1-1/+1
2023-09-13Fix assertion raised with invalid option nameCharles Brunet1-0/+5
When option name contains more that one dot, it should be detected earlier to prevent an assert to be raised. Fixes #11904.
2023-09-13Allow unit test to parse testcase blocksCharles Brunet1-0/+5
When a unittest introspect a meson.build file from a test case, the file may contain a testcase block. We should ignore this block.
2023-09-12Merge pull request #12152 from bruchar1/ast-preserve-allJussi Pakkanen14-271/+707
Preserve whitespaces and comments in AST
2023-09-12msubprojects: Speedup subproject_dir extractionXavier Claessens2-5/+22
The interpreter takes significant amount of time to initialize everything in project() function. We only need to extract a string from AST, just like we do in handle_meson_version_from_ast().
2023-09-12fix bug with openssl when cmake is missingCharles Brunet2-4/+20
Fixes #12098 DependencyFactory was returning a lambda, but it has no log_tried() function
2023-09-11parser: allow whitespaces and comments in cont_eolCharles Brunet1-1/+1
FIXME: another approach would be to consider cont_eol as comment (i.e. add backslash and whitespaces to the comment regex). In both cases it works until we want to parse comments separately. TODO?: handle eol_cont inside a string (to split long string without breaking lines). Probably a bad idea and better to simply join a multiline string.
2023-09-11raw printerCharles Brunet1-0/+219
this printer preserves all whitespaces and comments in original meson.build file. It will be useful for rewrite and potential auto-formatter
2023-09-11ast: fully resolve nodes for add operationCharles Brunet1-2/+2
Otherwise, string + stringmethod results in a list of two strings instead of the concatenation of the strings
2023-09-11parser: preserve whitespaces and commentsCharles Brunet1-7/+60
2023-09-11parser: simplify other node constructorsCharles Brunet4-31/+26
2023-09-11parser: simplify by using Unary and Binary Operator NodeCharles Brunet1-42/+17
2023-09-11parser: simplify Assignment and PlusAssignment nodesCharles Brunet5-27/+12