在CMake中使用Bash关联数组

时间:2018-04-12 06:16:31

标签: bash cmake

我需要通过bash访问cmake关联数组元素。所以假设我的声明和访问类似于bash中的以下内容:

~ declare -x someText=124
~ echo $someText
124
~ declare -A mymap=( [foo]=bar [baz]=quux)
~ echo ${mymap[foo]}
bar

CMakeLists.txt中的访问权限为:

message(STATUS "$ENV{someText})
message(STATUS "$ENV{mymap})

当我运行cmake时,我得到以下内容:

-- 124
-- 

因此,无法通过$ ENV {} cmake命令访问关联数组。任何想法如何访问它?具体来说,我不关心完整的关联数组,只关注其中的一个元素。

1 个答案:

答案 0 :(得分:1)

CMake无法访问在bash shell中创建的 array 变量。

进程cmake没有看到数组变量 - 与“普通”变量不同,数组变量不是环境的一部分传递给流程。

即使是另一个bash子流程也看不到数组变量,请参阅this question