aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/cmake
AgeCommit message (Collapse)AuthorFilesLines
2020-08-30CMake module: fix cmake 3.10 compatibility in path generationSebastian Würl1-4/+4
2020-08-30CMake module: fix python 3.6 compatibility in path generationSebastian Würl1-2/+2
2020-08-30CMake module: Allow paths of generated CMake sources for include directoriesSebastian Würl1-3/+11
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-09cmake: Detect custom command targets in compiler argsDaniel Mensinger1-1/+8
This is required to make `-include /path/to/custom/target.hpp` work. This setup is used by wxWidgets and this PR is required to use wxWidgets as a CMake subproject.
2020-08-07cmake: make the traceparser permissive by default (fixes #7501)Daniel Mensinger1-1/+1
2020-08-05Merge pull request #7527 from mensinda/cnFixExeJussi Pakkanen2-4/+16
cmake: resolve IMPORTED executables in custom commands (fixes #7509)
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-08-03cmake: resolve IMPORTED executables in custom commands (fixes #7509)Daniel Mensinger2-4/+16
2020-07-16mdata: remove setuptools and use mesondata insteadDaniel Mensinger1-3/+2
2020-07-01Merge pull request #7231 from mensinda/cmOverrideJussi Pakkanen3-9/+112
cmake: Add more advanced subproject configuration options
2020-06-30Move mesonbuild/cmake/data/run_ctgt.py to ↵georgev932-101/+3
mesonbuild/scripts/cmake_run_ctgt.py, as well as enclose everything in a run() function so it can be called by `meson --internal cmake_run_ctgt ...`. Also, include mesonbuild/cmake/data/ in the msi package.
2020-06-13cmake: fix definitions with interface libraries (fixes #7299)Daniel Mensinger1-7/+6
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-06-09cmake_traceparser: ignore parse errorMichael Hirsch1-1/+1
2020-06-05cmake: Add more advanced subproject configuration optionsDaniel Mensinger3-9/+112
This is done with the new cmake subprojects options object that is similar to the already exisiting configuration data object. It is consumed by the new `options` kwarg of the cmake.subproject function.
2020-06-02cmake: always split property lists (fixes #7228)Daniel Mensinger2-3/+4
2020-05-24fix cmake target configuration selection.Alexander Neumann1-3/+10
2020-05-15cmake: Print supported stds when warningNirbheek Chauhan1-2/+4
This was helpful while debugging CI failure on the 0.54 branch due to a difference in the structure of self.env.coredata.compiler_options: https://github.com/mesonbuild/meson/runs/674391139 https://travis-ci.org/github/mesonbuild/meson/jobs/686982807
2020-05-14cmake: Fix string substitution index errorNirbheek Chauhan1-2/+2
``` File "mesonbuild/cmake/interpreter.py", line 293, in postprocess 'Unknown {}_std "{}" -> Ingoring. Try setting the project' IndexError: Replacement index 2 out of range for positional args tuple ```
2020-05-12cmake: Ignore unknown c(pp)? stds (fixes #7104)Daniel Mensinger1-1/+16
2020-05-08More robust cmake version detectionReza Housseini1-1/+1
2020-04-28Adding a conditional case in _guess_files to confirm that the complete path ↵georgev931-1/+16
is put together in even if a portion of the path is a location that exists. For instance if C:/Program Files (x86)/folder is passed to _guess_files, it would resolve to ['C:/Program Files', '(x86)/folder'] since C:/Program Files is an actual file location that can exist.
2020-04-24Adjust regex to handle cases such as C:/Program Files/foldergeorgev931-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-04-21Use pkg_resource to find resources files (data)Dylan Baker1-2/+4
Doing this by hand is fraught with corner cases, and we're running into some of those problems already. setuptools pkg_resource is a well tested solution for not running into corner cases, and we already rely on setuptools to make our entry point scripts work, so we might as well make us of the other things it can solve for us. Fixes #6801
2020-04-17cmake: Do not compile explicit header filesDaniel Mensinger3-15/+82
2020-04-12Merge pull request #6963 from mensinda/cmFixCCmdJussi Pakkanen2-5/+36
cmake: some fixes for add_custom_command
2020-04-12cmake: Preserve include directory order (fixes #6959)Daniel Mensinger1-11/+11
2020-04-12cmake: Capture stdout with UNIX pipesDaniel Mensinger1-1/+25
2020-04-12cmake: Fix custom command CMake list issueDaniel Mensinger1-4/+11
2020-03-29cmake: Only expand executable targets in COMMAND (fixes #6857)Daniel Mensinger1-2/+10
2020-03-23Fix legacy env var support with crossJohn Ericson1-1/+1
Fix #3969
2020-03-08cmake: Fix build_by_default: false, install: true (fixes #6737)Daniel Mensinger1-1/+1
2020-03-02review: Initial fixupDaniel Mensinger1-1/+1
2020-03-02types: Annotate mparser.pyDaniel Mensinger1-2/+2
This also fixes that the keys in ArgumentNode.kwargs are all of the type BaseNode now. Before this commit, it was possible that both strings and Nodes where used as keys.
2020-02-23Merge pull request #6635 from mensinda/cmOTMFixJussi Pakkanen3-43/+140
cmake: Fix dependency loops in custom targets (fixes #6632)
2020-02-20cmake: Fix relative paths for add_custom_{command,target}Daniel Mensinger3-37/+120
Do this by tracking CMAKE_CURRENT_{SOURCE,BINARY}_DIR variables. This is achieved by injecting CMake code with CMAKE_PROJECT_INCLUDE and overriding some builtin functions with a wrapper that adds additional trace information.
2020-02-19cmake: Ignore files that violate subproject isolation (fixes #6640)Daniel Mensinger1-1/+13
2020-02-19cmake: traceparser better handle listsDaniel Mensinger1-3/+4
2020-02-19cmake: Fix dependency loops in custom targets (fixes #6632)Daniel Mensinger1-5/+18
2020-02-15cmake: Fix crash when no C++ compiler is not installed (fixes #6559)Daniel Mensinger1-46/+50
2020-02-12cmake: Add support for the new JSON trace formatDaniel Mensinger1-15/+38
2020-02-04cmake: Fix spaces in compile flags (fixes #6566)Daniel Mensinger1-5/+13
2020-02-04cmake: Sanitize CMake names (fixes #6554)Daniel Mensinger1-12/+10