如何在不同的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)
set(Var1 "this is variable 1")
set(Var1 ${Var1} " added to varible 1")
message(STATUS ${Var1})
set(Var2 "this is variable 2")
message(STATUS ${Var2})
message(STATUS ${Var1})
message(STATUS ${Var3})
在此示例中,可以在中的CMake文件中看到Var3 exe
,dll
正如在中定义的那样Main
。但是,在中定义的Var1在中exe
不会被观察到dll
。我只是好奇:有没有办法使Var1中的exe
可观察变量定义为dll
?
除了Tadeusz正确说的以外,您还可以使用来使变量在任何级别(不仅是向上!)都可见。
set(Var1 "This is variable 1" CACHE INTERNAL "")
该变量将可用于该指令之后的所有CMake指令,因此,例如,该变量将不适用于在定义此变量的目录之前添加的姊妹目录。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句