相关疑难解决方法(0)

如何将CMake参数转发到ExternalProject

我(大部分)成功为googletest设置了ExternalProject_Add.但是,我注意到我选择的C++编译器,构建类型等不会自动转发到ExternalProject.

我可以通过在调用ExternalProject_Add时将它添加到CMAKE_ARGS来轻松添加任何给定的标志,如下所示:

CMAKE_ARGS -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
Run Code Online (Sandbox Code Playgroud)

但是,这要求我枚举应转发给googletests的CMake调用的所有可能参数,并且该列表非常庞大.我还需要为我想要的每个其他ExternalProject_Add创建相同的列表.这似乎很脆弱,容易出错.

有没有办法告诉CMake"转发"用户提供的配置?换句话说,如果我调用CMake为:

cmake <path-to-project> -DCMAKE_C_COMPILER=/usr/bin/clang -DSOME_RANDOM_FLAG=stuff
Run Code Online (Sandbox Code Playgroud)

然后我希望我对ExternalProject_Add的调用提供相同的编译器选择和值SOME_RANDOM_FLAG,无需显式列出这些名称.我不确定只是简单地传递CMake的ARGV会起作用,因为说

CC=/usr/bin/clang cmake <path-to-project>
Run Code Online (Sandbox Code Playgroud)

理想情况下也会有效.

有关如何实现这一点的任何想法?

c++ cmake

15
推荐指数
1
解决办法
4634
查看次数

标签 统计

c++ ×1

cmake ×1