2016-05-29 6 views
0

Ich möchte GSL als externes Projekt einbetten.Wie übersetzt man CMake Befehl in bash cmd und übergeben Sie es als Argument in anderen cmake Befehl?

ExternalProject_Add(
     gsl 
     GIT_REPOSITORY git://git.savannah.gnu.org/gsl.git 
     DOWNLOAD_DIR external/gsl 
     SOURCE_DIR external/gsl 
     PATCH_COMMAND file(COPY external/gsl/contrib/CMakeLists.txt external/gsl/contrib/) 
     CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} 
     BINARY_DIR ./ 
     INSTALL_DIR ./ 
    ) 

Doch file(COPY external/gsl/contrib/CMakeLists.txt external/gsl/contrib/) ist CMake Befehl (das im Allgemeinen auf jeder Plattform funktionieren könnte). Ich frage mich, wie man es in cmd übersetzen kann, um es in PATCH_COMMAND in plattformübergreifender Weise aufrufen zu können, ohne plattformabhängige Logik zu erzeugen?

Antwort

1

CMake implementiert einen vordefinierten Satz von tragbaren Befehle durch Aufruf verfügbar

cmake -E <command> <args> 

Zum Beispiel file(COPY) Cmake Befehl Befehlszeilen hat äquivalente

cmake -E COPY <file> <destination> 

Weitere Informationen finden documentation über cmake Zeilenbefehl Werkzeug.

Wenn keine Befehlszeilen Vorbehalte, für einige Cmake Befehl (e) ist, kann eine erforderliche Reihenfolge der Befehle in der Datei speichern, und führen diese Befehle mit

cmake -P <script> 
Verwandte Themen