cmake Enkel metod utan paket


Exempel

Exempel som bygger en körbar (redigerare) och länkar ett bibliotek (höjdpunkt) till det. Projektstrukturen är enkel, den behöver en master CMakeLists och en katalog för varje delprojekt:

CMakeLists.txt
editor/
    CMakeLists.txt
    src/
        editor.cpp
highlight/
    CMakeLists.txt
    include/
        highlight.h
    src/
        highlight.cpp

Master CMakeLists.txt innehåller globala definitioner och add_subdirectory samtal för varje delprojekt:

cmake_minimum_required(VERSION 3.0)
project(Example)

add_subdirectory(highlight)
add_subdirectory(editor)

CMakeLists.txt för biblioteket tilldelar källor och inkluderar kataloger till det. Genom att använda target_include_directories() istället för include_directories() omfatta dirs att spridas till biblioteksanvändare:

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 applikationen tilldelar källor och länkar höjdbiblioteket. Vägar till tändlinsens binära och inkluderade hanteras automatiskt med cmake:

cmake_minimum_required(VERSION 3.0)
project(editor)

add_executable(${PROJECT_NAME} src/editor.cpp)
target_link_libraries(${PROJECT_NAME} PUBLIC highlight)