cmake - 在当前范围和 PARENT_SCOPE 中设置一个变量?

标签 cmake

如果我做:

set(SourceDir ${CMAKE_CURRENT_SOURCE_DIR} PARENT_SCOPE)
message("SourceDir: " ${SourceDir})

该消息表示 SourceDir 为空。据推测,它仅在父作用域中设置。有没有办法在当前作用域和父作用域中设置变量?这样我就不必做:
set(SourceDir ${CMAKE_CURRENT_SOURCE_DIR} PARENT_SCOPE)
set(SourceDir ${CMAKE_CURRENT_SOURCE_DIR})
message("SourceDir: " ${SourceDir})

最佳答案

当您为 PARENT_SCOPE 设置它时,它不会以某种方式为当前范围执行此操作。但是两步过程有效。第一行在本地设置它,第二行将它导出到父作用域。

set (LIB_VER 6)
set (LIB_VER ${LIB_VER} PARENT_SCOPE)

关于cmake - 在当前范围和 PARENT_SCOPE 中设置一个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34028300/

相关文章:

Qt Creator 使用 cmake 自动完成

opencv - 找不到模块 FindOpenCV.cmake(配置过程中出错)

c++ - 使用 Homebrew 软件安装 GTK+,但 pkg_check_modules 无法识别它

c++ - ROS C++ catkin 找不到我的自定义消息

windows-7 - 使用 MinGW 和 Eclipse CDT 进行 CMake

cmake add_subdirectory 与其他 cmake 文件名而不是 CMakeLists.txt

makefile - 调用 cmake 文件中现有的 make 命令

c++ - 如何在 CMake 中指定链接类型?

c++ - 在 C++ 类实现中调用 C 函数