我需要通过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命令访问关联数组。任何想法如何访问它?具体来说,我不关心完整的关联数组,只关注其中的一个元素。
答案 0 :(得分:1)
CMake无法访问在bash shell中创建的 array 变量。
进程cmake
没有看到数组变量 - 与“普通”变量不同,数组变量不是环境的一部分传递给流程。
即使是另一个bash子流程也看不到数组变量,请参阅this question。