我已经(大部分)成功地为 googletest 设置了 ExternalProject_Add。但是,我注意到我选择的 C++ 编译器、构建类型等不会自动转发到 ExternalProject。
我可以通过在对 ExternalProject_Add 的调用中将其添加到 CMAKE_ARGS 来轻松添加任何给定的标志,如下所示:
CMAKE_ARGS -DBUILD_SHARED_LIBS:BOOL=${BUILD_SHARED_LIBS}
但是,这需要我列举所有应该转发到 googletests 的 CMake 调用的可能参数,而且这个列表非常庞大。我还需要为我想要的每个其他 ExternalProject_Add 创建相同的列表。这似乎很脆弱且容易出错。
有没有办法告诉CMake“转发”用户提供的配置?换句话说,如果我将 CMake 调用为:
cmake <path-to-project> -DCMAKE_C_COMPILER=/usr/bin/clang -DSOME_RANDOM_FLAG=stuff
然后我希望调用 ExternalProject_Add 为 提供相同的编译器选择和值SOME_RANDOM_FLAG
,而无需明确列出这些名称。我不确定简单地传递 CMake 的 ARGV 会起作用,因为说
CC=/usr/bin/clang cmake <path-to-project>
理想情况下也可以。
关于如何做到这一点的任何想法?