如何在不同的CMake文件之间共享变量

随心所欲

如何在不同的CMake文件之间共享变量,并显示以下示例来说明我的问题:

主要的

cmake_minimum_required(VERSION 2.6)
project(test)
set(Var3 "Global variable")

add_subdirectory(${test_SOURCE_DIR}/exe)
add_subdirectory(${test_SOURCE_DIR}/dll)

EXE文件

set(Var1 "this is variable 1")
set(Var1 ${Var1} " added to varible 1")
message(STATUS ${Var1})

DLL文件

set(Var2 "this is variable 2")
message(STATUS ${Var2})
message(STATUS ${Var1})
message(STATUS ${Var3})

在此示例中,可以在中的CMake文件中看到Var3 exedll正如在中定义的那样Main但是,在中定义的Var1在中exe不会被观察到dll我只是好奇:有没有办法使Var1中的exe可观察变量定义dll

安东尼奥

除了Tadeusz正确说的以外,您还可以使用来使变量在任何级别(不仅是向上!)都可见。

set(Var1 "This is variable 1" CACHE INTERNAL "")

该变量将可用于该指令之后的所有CMake指令,因此,例如,该变量将不适用于在定义此变量的目录之前添加的姊妹目录。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章