如果我做:

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)

10-08 00:42