我正在研究使用cmake 在 C ++中使用大型和更复杂的项目切换到Visual Studio Code的可行性,并且在环境变量方面遇到了麻烦。
我正在处理的某些项目需要互连的环境变量的复杂结构,目前这可以通过在bash提示中手动构建来解决
$ source envSetupFile
$ mkdir build && cd build
$ cmake .. && make -j $(nproc)
其中envSetupFile
包含许多不同的变量,大多数情况与工具链和某些特定设置有关。当这些只是普通字符串时,一切都可以正常工作,但是有很多情况取决于另一个变量,例如(用bash表示)
export PATH=/opt/custom/lib: $PATH
export ROOT=/some/path
export BIN=$ROOT/bin
export LIB=$ROOT/lib
我安装了c / c ++扩展软件包以及CMake和CMakeTools软件包以及VS Code的EditorConfig
并将自定义行添加到工作区中的visual studio配置中:
/projectpath/.vscode/cmake-kits.json
在这里设置环境变量,但是尽管我可以设置(并验证)直接定义的工作,但任何需要另一个值的工作都将完全失败。
"environmentVariables":{
"POTATO": "aaa",
"CARROT": "bbb",
"CABAGE": "${POTATO}/${CARROT}"
}
我希望之后在运行引用$ {CABAGE}的cmake时将其解析为aaa/bbb
,但取而代之的是,将其作为字符串文字并生成${POTATO}/${CARROT}
作为ouptut
我必须承认,到目前为止,我在文档或示例中都找不到这种用例,对此我感到有些惊讶。也许有人可以伸出援手? (我正在Ubuntu 16.04上运行VisualStudio代码版本:1.36.1)