沒有包的簡單方法

構建可執行檔案(編輯器)並將庫(突出顯示)連結到它的示例。專案結構很簡單,它需要一個主 CMakeLists 和每個子專案的目錄:

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

主 CMakeLists.txt 包含每個子專案的全域性定義和 add_subdirectory 呼叫:

cmake_minimum_required(VERSION 3.0)
project(Example)

add_subdirectory(highlight)
add_subdirectory(editor)

庫的 CMakeLists.txt 為其分配源幷包含目錄。通過使用 target_include_directories() 而不是 include_directories(),include dirs 將傳播給庫使用者:

cmake_minimum_required(VERSION 3.0)
project(highlight)

add_library(${PROJECT_NAME} src/highlight.cpp)
target_include_directories(${PROJECT_NAME} PUBLIC include)

應用程式的 CMakeLists.txt 分配源並連結高亮庫。hightlighter 的二進位制檔案和包含的路徑由 cmake 自動處理:

cmake_minimum_required(VERSION 3.0)
project(editor)

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