cmake
Projet hiérarchique
Recherche…
Approche simple sans paquets
Exemple qui construit un exécutable (éditeur) et lui associe une bibliothèque (mettre en évidence). La structure du projet est simple, il faut un maître CMakeLists et un répertoire pour chaque sous-projet:
CMakeLists.txt
editor/
CMakeLists.txt
src/
editor.cpp
highlight/
CMakeLists.txt
include/
highlight.h
src/
highlight.cpp
Le fichier CMakeLists.txt principal contient des définitions globales et add_subdirectory
appel add_subdirectory
pour chaque sous-projet:
cmake_minimum_required(VERSION 3.0)
project(Example)
add_subdirectory(highlight)
add_subdirectory(editor)
CMakeLists.txt pour la bibliothèque lui affecte des sources et y inclut des répertoires. En utilisant target_include_directories()
au lieu de include_directories()
les répertoires include seront propagés aux utilisateurs de la bibliothèque:
cmake_minimum_required(VERSION 3.0)
project(highlight)
add_library(${PROJECT_NAME} src/highlight.cpp)
target_include_directories(${PROJECT_NAME} PUBLIC include)
CMakeLists.txt pour l'application attribue des sources et lie la bibliothèque de surbrillance. Les chemins d'accès au binaire de hightlighter et aux include sont gérés automatiquement par cmake:
cmake_minimum_required(VERSION 3.0)
project(editor)
add_executable(${PROJECT_NAME} src/editor.cpp)
target_link_libraries(${PROJECT_NAME} PUBLIC highlight)