cmake : Définir des variables d'environnement à partir d'un script
J'ai un script qui définit toutes les variables nécessaires pour la cross-compilation. Ici c'est juste une partie de celui-ci :
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
Si je ne source environment-setup-powerpc-linux
, toutes les variables d'environnement sont importés dans le shell en cours de session, et je peux compiler mon exemple.
Est-il possible d'importer ces variables cmake? Si oui, comment?
Un peu plus de détails :
- Je suis en utilisant ELDK v 5.4, et c'est d'installer le script génère un script qui définit toutes les variables d'environnement
- J'ai trouvé ce tutoriel, qui explique comment définir manuellement pour la cross-compilation, mais pas la façon d'utiliser le script, qui met tout
- si j'appelle le script avant de cmake, tout fonctionne bien, et je peux le cross-compiler, mais j'aimerais que cmake appelle le script
Vous devez vous connecter pour publier un commentaire.
Lecture par le biais de la cmake de démarrage rapide, vous pouvez spécifier la variable sur une ligne de commande:
Sinon,
set
commande dans le cmake script est probablement ce que vous voulez, voir les manuel de référence. Pour définir la variable d'environnement CHEMIN, n':Pour définir la variable normale, n':
Pas sûr que ceux qui vous avez à définir, probablement de l'environnement proches.
Cela dit, paramètre variable d'environnement avant de faire appel à cmake est souvent la solution la plus facile pour résoudre le problème, comme dans ce cas: https://stackoverflow.com/a/15053460/684229
La seule façon de définir un compilateur et des drapeaux pour faire de la cross-compilation de manière fiable avec CMake est avec une chaîne de traitement de fichier comme le fait dans le tutoriel que vous avez trouvé.
Lorsque nous avons été confrontés à la même question que vous avez (une boîte à outils qui produit un script afin de définir la compilation de l'environnement), nous avons changé la boîte à outils de façon à produire un ensemble d'outils-déposer avec le script.
En réalité un cmake-toolchain-fichier ne change pas très souvent. La base des drapeaux utilisés pour les cibles sont fixées très tôt dans un projet normalement. Et avec CMake est
CMAKE_BUILD_TYPE
vous pouvez basculer entre Debug et Release compilations sans changer la toolchain-fichier.Si vous avez des cibles différentes à l'appui, de créer différents outils et l'utilisation de l'out-of-source-construire avec CMake.
MODIFIER: Une chose que vous pourriez faire est de lancer cmake avec l'-D-argument définir les variables que vous voulez et avoir de source de votre script avant:
Le résultat sera identique à avoir utilisé une chaîne de traitement de fichier.