[英]Environment variable in YAML file for Ceedling
我正在設置一個Ceedling項目,我需要將該項目配置為使用 MSVC。 除了我不想在這個項目文件中使用固定路徑之外,我已經讓一切正常工作,因為並非每個開發人員都會在同一位置安裝 Visual Studio。
我想將 Visual Studio 和 Windows 工具包移動到系統環境變量,但我似乎無法讓它工作。 有人建議使用<%= ENV['FOOVAR'] %>
但這似乎沒有用。
配置片段如下:
:tools:
:test_linker:
:executable: 'C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\amd64\link.exe'
:name: 'msvc'
:arguments:
- "${1}"
- /OUT:"${2}"
- /LIBPATH:"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib\amd64"
- /LIBPATH:"C:\Program Files (x86)\Windows Kits\8.0\Lib\win8\um\x64"
在ceedling項目配置YAML文件中,添加“:environment:”部分,並在其中定義從Windows環境變量派生的變量
:environment:
- foovar: "#{ENV['FOOVAR']}"
然后您可以像這樣在路徑中求值該變量
:arguments:
- /LIBPATH:#{ENV['FOOBAR']}/VC/lib/amd64
您可以在這里找到更多詳細信息https://github.com/ThrowTheSwitch/Ceedling/blob/master/docs/CeedlingPacket.md
既然已經有了答案,這里只是給出另一個完整的例子,你可以如何在編譯中使用環境變量作為額外 -D 的一部分。
在外殼中: export MY_LOG_LEVEL=LOG_INFO
項目.yml
:environment:
- MY_LOG_LEVEL: "LIBRARY_LOG_LEVEL=#{ENV['MY_LOG_LEVEL']}"
:tools:
:test_compiler:
:executable: gcc #exists in system search path
:name: 'gcc compiler'
:arguments:
- -I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE #expands to -I search paths
- -I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR #expands to -I search paths
- -D$: COLLECTION_DEFINES_TEST_AND_VENDOR #expands to all -D defined symbols
- -D#{ENV['MY_LOG_LEVEL']}
- -c ${1} #source code input file (Ruby method call param list sub)
- -o ${2} #object file output (Ruby method call param list sub)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.