cmake
Hierarchisches Projekt
Suche…
Einfacher Ansatz ohne Pakete
Beispiel, das eine ausführbare Datei (Editor) erstellt und eine Bibliothek (Hervorhebung) mit ihr verknüpft. Die Projektstruktur ist unkompliziert. Für jedes Teilprojekt ist eine Master-CMakeLists und ein Verzeichnis erforderlich:
CMakeLists.txt
editor/
CMakeLists.txt
src/
editor.cpp
highlight/
CMakeLists.txt
include/
highlight.h
src/
highlight.cpp
Die Master-Datei CMakeLists.txt enthält globale Definitionen und add_subdirectory
Aufruf add_subdirectory
für jedes Teilprojekt:
cmake_minimum_required(VERSION 3.0)
project(Example)
add_subdirectory(highlight)
add_subdirectory(editor)
CMakeLists.txt für die Bibliothek weist Quellen und Include-Verzeichnisse zu. Durch die Verwendung von target_include_directories()
anstelle von include_directories()
die Include-Verzeichnisse an Bibliotheksbenutzer weitergegeben:
cmake_minimum_required(VERSION 3.0)
project(highlight)
add_library(${PROJECT_NAME} src/highlight.cpp)
target_include_directories(${PROJECT_NAME} PUBLIC include)
CMakeLists.txt für die Anwendung weist Quellen zu und verknüpft die Markierungsbibliothek. Pfade zu den Binär- und Includes des Hightlighter werden automatisch von cmake gehandhabt:
cmake_minimum_required(VERSION 3.0)
project(editor)
add_executable(${PROJECT_NAME} src/editor.cpp)
target_link_libraries(${PROJECT_NAME} PUBLIC highlight)