【问题标题】:Environment variable in YAML file for CeedlingCeedling 的 YAML 文件中的环境变量
【发布时间】:2018-04-28 11:30:48
【问题描述】:

我正在设置一个Ceedling 项目,我需要配置该项目以使用 MSVC。除了我不想在这个项目文件中使用固定路径之外,我已经完成了所有工作,因为并非每个开发人员都会在同一位置安装 Visual Studio。

我想将 Visual Studio 和 Windows 工具包移动到系统环境变量中,但我似乎无法让它工作。 Someone suggested using <%= ENV['FOOVAR'] %> 但这似乎没有奏效。

配置sn-p如下:

: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"

【问题讨论】:

    标签: ruby visual-c++ yaml


    【解决方案1】:

    在您的 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

    【讨论】:

      【解决方案2】:

      既然已经有了答案,这里只是举一个完整的例子,你可以如何在编译中使用环境变量作为额外 -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)
      

      【讨论】:

        猜你喜欢
        • 2021-12-07
        • 1970-01-01
        • 2018-06-26
        • 2021-02-08
        • 2021-07-14
        • 2021-12-21
        • 2022-11-28
        • 2016-11-13
        • 1970-01-01
        相关资源
        最近更新 更多