我(大部分)成功为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)
理想情况下也会有效.
有关如何实现这一点的任何想法?