cmake : Set environment variables from a script

后端 未结 2 721
难免孤独
难免孤独 2020-12-23 19:59

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-conf         


        
相关标签:
2条回答
  • 2020-12-23 20:35

    The only way to set a compiler and flags to do cross-compilation reliably with CMake is with a toolchain-file as done in the tutorial you have found.

    When we faced the same issue you have (a toolkit which produces a script so set the compile-environment) we changed the toolkit in a way that it produces a toolchain-file along with the script.

    In reality a cmake-toolchain-file does not change that often. The basic flags used for the target are fixed quite early in a project - normally. And with CMake's CMAKE_BUILD_TYPE you can switch between Debug and Release compilations without changing the toolchain-file.

    If you have different targets to support, create different toolchain and use the out-of-source-build with CMake.

    EDIT: One thing you could do is to invoke cmake with the -D-argument setting the variables you want to and having sourced your script before:

    source environment-setup-powerpc-linux
    cmake -DCMAKE_C_COMPILER=$CC -DCMAKE_CXX_COMPILER=$CXX etc
    

    The result will be identical as to having used a toolchain-file.

    0 讨论(0)
  • 2020-12-23 20:40

    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: https://stackoverflow.com/a/15053460/684229

    0 讨论(0)
提交回复
热议问题