cmake:从脚本中设置环境变量 [英] cmake : Set environment variables from a script

查看:1873
本文介绍了cmake:从脚本中设置环境变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个脚本,设置交叉编译所需的所有变量。这里只是它的一部分:

  export CONFIG_SITE =〜/ workspace / eldk-5.4 / powerpc / site-config-powerpc- linux 
export CC =powerpc-linux-gcc -m32 -mhard-float --sysroot =〜/ workspace / eldk-5.4 / powerpc / sysroots / powerpc-linux
export CXX =powerpc- linux-g ++ -m32 -mhard-float --sysroot =〜/ workspace / eldk-5.4 / powerpc / sysroots / powerpc-linux
export CPP =powerpc-linux-gcc -E -m32 -mhard-float --sysroot =〜/ workspace / eldk-5.4 / powerpc / sysroots / powerpc-linux
export AS =powerpc-linux-as
export LD =powerpc-linux-ld --sysroot =〜/ workspace / eldk-5.4 / powerpc / sysroots / powerpc-linux
export GDB = powerpc-linux-gdb

如果我做 source environment-setup-powerpc-linux ,所有环境变量都被导入到当前shell会话中,我可以编译我的例子。



是否可以在cmake中导入这些变量?如果是,如何?





更多详情:

>
  • 我使用的是 ELDK v 5.4 ,它的安装脚本会生成一个脚本所有环境变量

  • 我找到了本教程,其中介绍了如何手动设置交叉编译,但不是如何使用脚本,它设置所有

  • 如果我在设置cmake之前调用脚本,所有工作正常,我可以交叉编译,但我像是cmake调用脚本 /www.cs.swarthmore.edu/~adanner/tips/cmake.php\">立即启动,您可以在命令行上指定变量:

      cmake -DVARIABLE1 = value1 -DVARIABLE2 = value2 ... 

    否则,cmake脚本中的 set 命令可能是你想要的,请参阅参考手册。要设置环境变量 PATH,请执行以下操作:

      set(ENV {PATH} martink)

    要设置正常变量,请执行:


    $ b b

      set(variablevalue)

    不确定哪些是你必须设置的,可能是环境的。



    也就是说,在调用cmake之前设置环境变量通常是最简单的解决方案以解决问题,如本例所示: http://stackoverflow.com/a/15053460/684229


    I have a script that sets all variables needed for the cross-compilation. Here is just part of it :

    export CONFIG_SITE=~/workspace/eldk-5.4/powerpc/site-config-powerpc-linux
    export CC="powerpc-linux-gcc  -m32 -mhard-float --sysroot=~/workspace/eldk-5.4/powerpc/sysroots/powerpc-linux"
    export CXX="powerpc-linux-g++  -m32 -mhard-float --sysroot=~/workspace/eldk-5.4/powerpc/sysroots/powerpc-linux"
    export CPP="powerpc-linux-gcc -E  -m32 -mhard-float --sysroot=~/workspace/eldk-5.4/powerpc/sysroots/powerpc-linux"
    export AS="powerpc-linux-as "
    export LD="powerpc-linux-ld  --sysroot=~/workspace/eldk-5.4/powerpc/sysroots/powerpc-linux"
    export GDB=powerpc-linux-gdb
    

    If I do source environment-setup-powerpc-linux, all environment variables are imported into the current shell session, and I can compile my example.

    Is it possible to import these variables in cmake? If yes, how?


    A bit more details :

    1. I am using ELDK v 5.4, and it's install script generates a script which sets all environment variables
    2. I found this tutorial, which explains how to manually set for cross-compilation, but not how to use the script, which sets everything
    3. if I call the script before setting cmake, all works fine, and I can cross-compile, but I'd like that cmake calls the script

    解决方案

    Reading through the cmake quick start, you can specify variable on a command line:

    cmake -DVARIABLE1=value1 -DVARIABLE2=value2 ...
    

    Otherwise, set command in the cmake script is probably what you want, see the reference manual. To set the environment variable PATH, do:

    set(ENV{PATH} "/home/martink")
    

    To set normal variable, do:

    set(variable "value")
    

    Not sure which ones you have to set, probably the environment ones.

    That said, setting environment variable prior to calling cmake is often the easiest solution to solve the problem, as in this case: http://stackoverflow.com/a/15053460/684229

    这篇关于cmake:从脚本中设置环境变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

  • 查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆