aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/cmake/executor.py
AgeCommit message (Collapse)AuthorFilesLines
2024-07-11Move OptionKey in the option source file.Jussi Pakkanen1-1/+2
2024-06-14Replace direct indexing with named methods.Jussi Pakkanen1-1/+1
2024-06-14Rename option variable to optstore to make it unique.Jussi Pakkanen1-1/+1
2023-12-13Use SPDX-License-Identifier consistentlyDylan Baker1-14/+1
This replaces all of the Apache blurbs at the start of each file with an `# SPDX-License-Identifier: Apache-2.0` string. It also fixes existing uses to be consistent in capitalization, and to be placed above any copyright notices. This removes nearly 3000 lines of boilerplate from the project (only python files), which no developer cares to look at. SPDX is in common use, particularly in the Linux kernel, and is the recommended format for Meson's own `project(license: )` field
2023-08-11treewide: automatic rewriting of all comment-style type annotationsEli Schwartz1-5/+5
Performed using https://github.com/ilevkivskyi/com2ann This has no actual effect on the codebase as type checkers (still) support both and negligible effect on runtime performance since __future__ annotations ameliorates that. Technically, the bytecode would be bigger for non function-local annotations, of which we have many either way. So if it doesn't really matter, why do a large-scale refactor? Simple: because people keep wanting to, but it's getting nickle-and-dimed. If we're going to do this we might as well do it consistently in one shot, using tooling that guarantees repeatability and correctness. Repeat with: ``` com2ann mesonbuild/ ```
2023-02-13cmake: check that `re.search` returned a non-None valueDylan Baker1-6/+12
If an re call fails to find a match it returns None. We're not checking that, and crashing. Fixes: #11376
2023-02-01micro-optimize: define typing-only objects in TYPE_CHECKINGEli Schwartz1-2/+2
Union types that exist solely for use as annotations don't need to be created in normal runs.
2022-08-26Fix purely white space issues reported by flake8Alf Henrik Sauge1-1/+1
2022-07-03move various unused typing-only imports into type-checking blocksEli Schwartz1-2/+5
2021-10-04remove double importEli Schwartz1-2/+2
Imported both inside and outside of T.TYPE_CHECKING, the runtime import can be removed by quote-deferring one of the use sites. Update: In between then and now, this got removed from T.TYPE_CHECKING, move it back there rather than preserving the runtime import.
2021-09-24pylint: check for duplicate importsDylan Baker1-1/+0
I ran into one of these from LGTM, and it would be nice if pylint could warn me as part of my local development process instead of waiting for the CI to tell me.
2021-06-07upgrade percent formatted strings pyupgrade did not catchEli Schwartz1-3/+3
2021-03-19split program related classes and functions out of dependenciesDylan Baker1-5/+4
Dependencies is already a large and complicated package without adding programs to the list. This also allows us to untangle a bit of spaghetti that we have.
2021-03-04mass rewrite of string formatting to use f-strings everywhereEli Schwartz1-4/+4
performed by running "pyupgrade --py36-plus" and committing the results
2021-01-11move CMAKE_PREFIX_PATH env var handling to environmentDylan Baker1-18/+0
This causes the variable to be read up front and stored, rather than be re-read on each invocation of meson. This does have two slight behavioral changes. First is the obvious one that changing the variable between `meson --reconfigure` invocations has no effect. This is the way PKG_CONFIG_PATH already works. The second change is that CMAKE_PREFIX_PATH the env var is no longer appended to the values set in the machine file or on the command line, and is instead replaced by them. CMAKE_PREFIX_PATH is the only env var in meson that works this way, every other one is replaced not appended, so while this is a behavioral change, I also think its a bug fix.
2021-01-04Use a single coredata dictionary for optionsDylan Baker1-1/+1
This patches takes the options work to it's logical conclusion: A single flat dictionary of OptionKey: UserOptions. This allows us to simplify a large number of cases, as we don't need to check if an option is in this dict or that one (or any of 5 or 6, actually).
2021-01-04use OptionKey for builtin and base optionsDylan Baker1-2/+2
I would have prefered to do these seperatately, but they are combined in some cases, so it was much easier to convert them together. this eliminates the builtins_per_machine dict, as it's duplicated with the OptionKey's machine parameter.
2020-11-20use real pathlib moduleDylan Baker1-1/+1
We added the _pathlib module to work around defeciencies in python 3.5's implementation, since we now rely on 3.6 lets drop this
2020-10-13cmake: Add cross compilation supportDaniel Mensinger1-175/+10
2020-10-04pathlib: Fix resolve() by overriding it in Python 3.5Daniel Mensinger1-1/+1
2020-10-04cmake: switch to pathlib (fixes #7322)Daniel Mensinger1-20/+20
2020-09-28typing: fully annotate cmake.executorDaniel Mensinger1-31/+35
2020-08-22cmake: Fix detection of AppleClangDylan Baker1-6/+19
It's not enough to detect that the linker is ld64: gcc, icc, and vanilla clang all use ld64 on macoOS. Instead we have to detect the class of the compiler, and determine if it's an Apple Compiler or a vanilla one.
2020-08-12cmake: Use a mapping when writing compiler IDNirbheek Chauhan1-1/+26
Meson and CMake compiler ids are different. This commit adds a mapping from the meson list: https://mesonbuild.com/Reference-tables.html#compiler-ids to the CMake list: https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER_ID.html The mapping is not 1-1, and not all entries are mapped, so this is a best-effort attempt. Fallback to GNU as before to try to limp along and hope that the build files don't rely on an accurate compiler ID.
2020-08-12cmake: Fix hard-coded values in fake CMakeLists for MSVCNirbheek Chauhan1-16/+28
Without this, MSVC and MSVC_VERSION won't be set by CMake during platform detection, and the compiler will be an undefined mixture of GNU and MSVC. In particular, find_package(opencv) will fail on Windows when building with MSVC.
2020-08-05cmake: Do not split CMAKE_PREFIX_PATH with ':' on WindowsNirbheek Chauhan1-1/+6
This is obviously wrong, since on Windows ':' is in the drive letter. Causes us to call cmake with `-DCMAKE_PREFIX_PATH=c;\foo\bar`.
2020-06-13cmake: Fix handling of path seperators (fixes #7294)Daniel Mensinger1-1/+1
2020-06-12dependencies: Don't allow using the default binary for host on cross compilesDylan Baker1-1/+1
Otherwise we can end up finding dependencies from the build machine for the host machine, which is incorrect. This alters cmake, pkg-config, and all config-tool based dependencies. Fixes: #7276
2020-06-12cmake: Use shared find_external_program instead of open codingDylan Baker1-22/+5
2020-06-12cmake: Subprojects support CMAKE_PREFIX_PATH (fixes #7249)Daniel Mensinger1-0/+22
2020-05-08More robust cmake version detectionReza Housseini1-1/+1
2020-04-22Issue: 7009: CMake/Centos7 Unable to find CMake even though it is installedAlexandre Lavigne1-1/+1
On some systems the binary 'cmake' for version 3 is named 'cmake3', therefor printing its version number prints: 'cmake3 version X.Y.Z' instead of 'cmake version X.Y.Z' This '3' digit in the middle breaks the regular expression extracting the version number. The following fix permit both way to work and the regexp to match the proper version number. Signed-off-by: Alexandre Lavigne <alexandre.lavigne@scality.com>
2020-03-23Fix legacy env var support with crossJohn Ericson1-1/+1
Fix #3969
2020-02-15cmake: Fix crash when no C++ compiler is not installed (fixes #6559)Daniel Mensinger1-46/+50
2020-01-26cmake: Refactor CMakeExecutor and CMakeTraceParserDaniel Mensinger1-11/+84
This moves most of the execution code from the CMakeInterpreter into CMakeExecutor. Also, CMakeTraceParser is now responsible for determining the trace cmd arguments.
2020-01-08types: import typing as T (fixes #6333)Daniel Mensinger1-9/+9
2019-12-10cmake: subprocess external .decode(errors='ignore') to avoid tracebackMichael Hirsch, Ph.D1-9/+14
mesonlib.Popen_safe() doesn't work with the case where undecodeable binary data comes back from CMake or compiler, so we use subprocess.run()
2019-12-09cmake: add fortran cache contentMichael Hirsch, Ph.D1-15/+37
2019-08-23correct logic for too old cmakeMichael Hirsch, Ph.D1-1/+1
2019-08-17avoid cmake syntax error due to "\" path separators on windowsNorbert Nemec1-0/+6
2019-07-11cmake: Fix dependencies with try_compile (closes #5605)Daniel Mensinger1-11/+52
2019-06-12cmake: Moved finding and running CMake out of dependencyDaniel Mensinger1-0/+215