cmake:从脚本中设置环境变量 [英] cmake : Set environment variables from a script
问题描述
我有一个脚本,设置交叉编译所需的所有变量。这里只是它的一部分:
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中导入这些变量?如果是,如何?
更多详情:
> 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 :
- I am using ELDK v 5.4, and it's install script generates a script which sets all environment variables
- I found this tutorial, which explains how to manually set for cross-compilation, but not how to use the script, which sets everything
- 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屋!