gpt4 book ai didi

cmake - 获取由 add_subdirectory 添加的 CMake 项目版本

转载 作者:行者123 更新时间:2023-12-02 08:08:15 30 4
gpt4 key购买 nike

我有一个依赖于 Google 测试库的 CMake 项目。
我已经使用 ExternalProject_Add 添加了 Google 测试和 add_subdirectory如此处所述( https://github.com/google/googletest/tree/master/googletest 部分 Incorporating Into An Existing CMake Project )。

现在,在命令 add_subdirectory 之后我想检查包含项目的版本 gtestgmock ,然而 gtest_VERSIONgmock_VERSION变量未定义。是否可以通过 add_subdirectory 添加项目版本? ?

最佳答案

由于您无法直接访问子目录局部变量,因此我想添加制作 gtest_VERSION 的变体。变量 CACHED因此可以在全局范围内访问:

  • CMAKE_PROJECT_<PROJECT-NAME>_INCLUDE

    A CMake language file or module to be included by the project() command. This is intended for injecting custom code into project builds without modifying their source.



    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() 命令

    cmake_policy(SET CMP0048 NEW)    

    macro(project)
    _project(${ARGN})
    set(${PROJECT_NAME}_VERSION "${${PROJECT_NAME}_VERSION}" CACHE INTERNAL "")
    endmacro()
  • 关于cmake - 获取由 add_subdirectory 添加的 CMake 项目版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49531044/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com