22

異なる 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})

この例では、Var3 は の CMake ファイルで確認でき、exedll定義されていMainます。ただし、 で定義されている Var1 は、 ではexe観測されませんdll。私はちょうど興味がありました.Var1をexeオブザーバブルで定義する方法はありdllますか?

4

2 に答える 2

24

Tadeusz が正しく言ったことに加えて、次を使用して変数を任意のレベル (1 つだけでなく!) で可視化することができます。

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

変数は、その命令に続くすべての CMake 命令で使用できます。たとえば、この変数が定義されているディレクトリの前に追加された姉妹ディレクトリでは使用できません。

于 2013-11-08T13:09:21.500 に答える