2016-06-15 11 views
10

Ich baue Abhängigkeit Projekt mit cmake ExternalProject_Add Befehl:Wie nicht Schritt machen installieren, wenn sie mit cmake externem Projekt Aufbau

include(ExternalProject) 
... 
set(COMMON_BASE_PROJECT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../CommonBase) 

ExternalProject_Add(CommonBaseProject 
    SOURCE_DIR ${COMMON_BASE_PROJECT_DIR} 
    BINARY_DIR ${COMMON_BASE_PROJECT_DIR}/build 
    INSTALL_COMMMAND "" 
) 

include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include) 
include_directories(${COMMON_BASE_PROJECT_DIR}/include) 

add_library(
    ${LIBRARY_NAME} 
    SHARED 
    ${SRC_FILES} 
    ${INCLUDE_FILES} 
) 

target_link_libraries (Bios ${COMMON_BASE_PROJECT_DIR}/build/libCommonBase.dll) 
add_dependencies(Bios CommonBaseProject) 

aber ich Fehler:

[100%] Linking CXX shared library libCommonBase.dll 
[100%] Built target CommonBase 
[ 50%] Performing install step for 'CommonBaseProject' 
make[3]: *** No rule to make target 'install'. Stop. 

Ich brauche nicht um den Installationsschritt zu machen, ist meine Frage: Wie kann ich es deaktivieren?

+1

Meinten Sie "INSTALL_COMMMAND """ Zeile löschen? Ich habe versucht, aber das Ergebnis ist das gleiche. – Vyacheslav

Antwort

6

Sie können ein Ziel für den Build-Schritt mit STEP_TARGETS build generieren und Abhängigkeit von diesem bestimmten Ziel hinzufügen. Die Schrittziele heißen <external-project-name>-<step-name>. In diesem Fall heißt das Ziel, das den Build-Schritt darstellt, CommonBaseProject-build.

Wahrscheinlich möchten Sie auch das CommonBaseProject vom Ziel "all" mit EXCLUDE_FROM_ALL TRUE ausschließen.

ExternalProject_Add(CommonBaseProject 
    SOURCE_DIR ${COMMON_BASE_PROJECT_DIR} 
    BINARY_DIR ${COMMON_BASE_PROJECT_DIR}/build 
    STEP_TARGETS build 
    EXCLUDE_FROM_ALL TRUE 
) 

add_dependencies(Bios CommonBaseProject-build) 
3

Sie es fast hatte: Statt INSTALL_COMMAND "" legte etwas wie

INSTALL_COMMAND cmake -E echo "Skipping install step." 
+2

Sie können auch die Befehle 'true' oder': 'verwenden, die nichts tun, d. H.' INSTALL_COMMAND true'. Es wird jedoch immer noch "Ausführen des Installationsschritts" angezeigt. – Azegor