Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将几乎所有的构建标志传递给CMake中的外部项目_Cmake - Fatal编程技术网

将几乎所有的构建标志传递给CMake中的外部项目

将几乎所有的构建标志传递给CMake中的外部项目,cmake,Cmake,是否有一种简洁的方法可以将几乎所有的构建标志传递给CMake中的外部项目?本质上,我有一个使用ExternalProject_Add的项目,用于下载和编译外部CMake项目。在一个特定的平台上,我需要将大多数构建标志(如CMAKE_OBJCOPY、CMAKE_OBJDUMP、CMAKE_RANLIB等)修改为系统默认值以外的内容。现在,当我为调用ExternalProject_Add的父项目执行此操作时,我还希望将这些选项传递给外部项目。当然,我可以通过在ExternalProject_Add中

是否有一种简洁的方法可以将几乎所有的构建标志传递给CMake中的外部项目?本质上,我有一个使用ExternalProject_Add的项目,用于下载和编译外部CMake项目。在一个特定的平台上,我需要将大多数构建标志(如CMAKE_OBJCOPY、CMAKE_OBJDUMP、CMAKE_RANLIB等)修改为系统默认值以外的内容。现在,当我为调用ExternalProject_Add的父项目执行此操作时,我还希望将这些选项传递给外部项目。当然,我可以通过在ExternalProject_Add中设置CMAKE_ARGS选项来实现这一点,但是有很多标志需要复制。真的,我正在寻找一个选项,复制所有标志,然后允许我覆盖一些。最后,由于我使用ExternalProject\u Add下载归档文件,我一直不愿使用Add\u子目录,它会复制所有标志,因为我无法给出URL。

您可以在cmake工具链文件中列出您需要的所有标志,并传递到
ExternalProject\u Add
只有一个选项:
cmake\u工具链文件

> cat CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(Foo)

message("SOME_ARG1: ${SOME_ARG1}")
message("SOME_ARG2: ${SOME_ARG2}")

> cat MyToolchain.cmake
set(SOME_ARG1 "arg1")
set(SOME_ARG2 "arg2")

> cmake -H. -B_builds/notoolchain
...
-- Detecting CXX compiler ABI info - done
SOME_ARG1:
SOME_ARG2:
-- Configuring done

> cmake -H. -B_builds/toolchain -DCMAKE_TOOLCHAIN_FILE=MyToolchain.cmake
...
-- Detecting CXX compiler ABI info - done
SOME_ARG1: arg1
SOME_ARG2: arg2
-- Configuring done