簡體   English   中英

Ceedling 的 YAML 文件中的環境變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM