2016-10-14 2 views
1

Ich schreibe eine Bibliothek, die Bibliothek selbst enthält und Beispiele und ich CMake bin mit:CMake installieren Ziel Abhängigkeiten

cmake_minimum_required(VERSION 3.6) 
add_executable (example main.cpp) 
install(DIRECTORY include DESTINATION include PATTERN ".DS_Store" EXCLUDE) 

Als ich cmake --build . --target install leite - es kompiliert example Ziel und macht die Installation von include Verzeichnis

Ich möchte Gebäude example Ziel ausschließen und nur include Verzeichnisinstallation machen, wenn Gebäude install Ziel und Gebäude example wenn ohne spezielles Ziel läuft:

Here I example wollen nicht zu gebaut: cmake --build . --target install

Here I example wollen gebaut sein: cmake --build .

Wie soll ich meine CMakeLists.txt ändern, um es wie ich zu machen arbeiten wollen?

+0

Ich denke, es ist unmöglich. Zumindest sollte die Sekunde "cmake --build" sein. - Zielbeispiel ". An dieser Stelle wurde eine mögliche Lösung hier untersucht http://stackoverflow.com/questions/17164731/installing-only-one-target-and-its-dependent-out-of-a-complex-project-with – Antonio

Antwort

3

Sie können single CMake Ziel nicht bei der Installation ausschließen.

Das Problem ist, dass "Installation" Ziel hängt nur von "allen" (Standard) Ziel.

Während Sie 'installieren' -> 'alle' Abhängigkeit entfernen können (indem Sie die Variable CMAKE_SKIP_INSTALL_ALL_DEPENDENCY setzen), fügen Sie möglicherweise keine weitere Abhängigkeit für 'install' hinzu.

Also, bevor

cmake --build . --target install 

Installation führt entweder

cmake --build . 

oder baut nicht alles (auch Bibliothek, die Sie auf jeden Fall bauen wollen).

Verwandte Themen