2011-09-28 17 views
7

Voglio compilare le mie sorgenti tramite il compilatore Mingw che non è stato inserito nel mio sistema PATH. Ho provato questo all'inizio del mio script:Come impostare la variabile d'ambiente PATH nello script CMake?

set(Env{PATH} "c:/MyProject/Tools/mingw/bin/" "c:/MyProject/Tools/mingw/msys/1.0/bin/") 

E questo:

set(CMAKE_PROGRAM_PATH "c:/MyProject/Tools/mingw/bin/" "c:/MyProject/Tools/mingw/msys/1.0/bin/") 
set(CMAKE_LIBRARY_PATH "c:/MyProject/Tools/mingw/bin/" "c:/MyProject/Tools/mingw/msys/1.0/bin/") 
set(CMAKE_SYSTEM_PROGRAM_PATH "c:/MyProject/Tools/mingw/bin/" "c:/MyProject/Tools/mingw/msys/1.0/bin/") 
set(CMAKE_SYSTEM_PREFIX_PATH "c:/MyProject/Tools/mingw/bin/" "c:/MyProject/Tools/mingw/msys/1.0/bin/") 

La prima variante non funziona affatto. Un suggerimento che non posso sovrascrivere il valore della variabile di ambiente nello script CMake. Il secondo script trova il mio compilatore mingw, ma rileva l'errore durante l'esecuzione di gcc (non riesce a trovare libgmp-10.dll che necessita di gcc). Questo perché la variabile PATH non è impostata sul mio Mingw.

risposta

1

Scrivere un file di script per avviare CMake.

In Windows fare un file batch:

@echo off 
set path=c:\MyProject\Tools\mingw\bin;c:\MyProject\Tools\mingw\msys\1.0\bin 
"C:\Program Files\CMake 2.8\bin\cmake-gui.exe" 

Su Linux fare uno script bash:

export PATH=$PATH:/your/path 
+2

è possibile utilizzare setlocal in uno script per annullare automaticamente la modifica al percorso quando il file batch termina (se lo si desidera). Ci sono anche variabili d'ambiente 'ProgramFiles (x86)' e 'ProgramFiles' che dovrebbero essere usati al posto di hard coding' C: \ Program Files' – doug65536

2

Si potrebbe avvicina come se fosse una croce compilazione toolchain, anche se non stai attraversare la compilazione da Linux a Windows come in questo esempio:

http://www.vtk.org/Wiki/CmakeMingw

Dopo aver eseguito che guida impostate la toolchain mingw nella riga di comando quando si chiama cmake:

~/src/helloworld/ $ mkdir build 
~/src/helloworld/ $ cd build 
~/src/helloworld/build/ $ cmake -DCMAKE_TOOLCHAIN_FILE=~/Toolchain-mingw32.cmake 

quindi se si sta utilizzando questo un bel po 'è possibile creare un alias per limitare la digitazione in quella brutta -D ogni volta che si desidera rigenerare makefiles:

alias mingw-cmake='cmake -DCMAKE_TOOLCHAIN_FILE=~/Toolchain-mingw32.cmake' 
12

CMAKE_SYSTEM_PROGRAM_PATH non è destinata ad essere modificato, utilizzare

LIST(APPEND CMAKE_PROGRAM_PATH "c:/MyProject/Tools/mingw/bin/" ...) 
Problemi correlati