我有一个依赖于 Google Test 库的 CMake 项目。
我已经使用添加了 Google 测试ExternalProject_Add
and add_subdirectory
如此处所述(https://github.com/google/googletest/tree/master/googletest https://github.com/google/googletest/tree/master/googletest部分Incorporating Into An Existing CMake Project
).
现在,在命令之后add_subdirectory
我想检查包含项目的版本gtest
and gmock
, 然而gtest_VERSION
and gmock_VERSION
变量未定义。是否可以获得添加的项目版本add_subdirectory
?
由于您无法直接访问子目录局部变量,因此我想添加我的变体gtest_VERSION
多变的CACHED
因此全球均可访问:
-
CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE https://cmake.org/cmake/help/latest/variable/CMAKE_PROJECT_PROJECT-NAME_INCLUDE.html
要包含的 CMake 语言文件或模块project() https://cmake.org/cmake/help/latest/command/project.html#command:project命令。这是为了将自定义代码注入到项目构建中而不修改其源代码。
file(
WRITE "${CMAKE_BINARY_DIR}/SetProjectVersion.cmake"
[=[
set(${PROJECT_NAME}_VERSION "${${PROJECT_NAME}_VERSION}" CACHE INTERNAL "")
]=]
)
set(
CMAKE_PROJECT_gtest_INCLUDE
"${CMAKE_BINARY_DIR}/SetProjectVersion.cmake"
)
-
覆盖project() https://cmake.org/cmake/help/latest/command/project.html command
cmake_policy(SET CMP0048 NEW)
macro(project)
_project(${ARGN})
set(${PROJECT_NAME}_VERSION "${${PROJECT_NAME}_VERSION}" CACHE INTERNAL "")
endmacro()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)