2016-05-31 6 views

Antwort

3

können Sie verwenden cmake Anruf innerhalb execute_process für konfigurieren und bauen CMake Projekt, das ExternalProject enthält:

other_project/CMakeLists.txt:

project(other_project) 
include(ExternalProject) 

ExternalProject_Add(<project_name> <options...>) 

CMakeLists.txt:

execute_process(
    COMMAND ${CMAKE_COMMAND} --build . ${CMAKE_SOURCE_DIR}/other_project 
    WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/other_project 
) 

So ein wa y other_project werden konfiguriert und gebaut (wegen --build Option) im Verzeichnis ${CMAKE_BINARY_DIR}/other_project. Wenn Sie die Installation unter ExternalProject_Add nicht deaktivieren, wird dies beim Erstellen der other_project ausgeführt.

Normalerweise möchten Sie einige Optionen zu ExternalProject, wie SOURCE_DIR, , INSTALL_DIR, von Variablen im Hauptprojekt abgeleitet werden. Sie haben zwei Möglichkeiten für das achive:

  1. erstellen CMakeLists.txt für other_project mit configure_file, vom Hauptprojekt genannt (vor execute_process Befehl).

  2. Übergeben Sie Variablen aus dem Hauptprojekt als -D Parameter an ${CMAKE_COMMAND}.

Verwandte Themen