cmake
階層的プロジェクト
サーチ…
パッケージなしのシンプルなアプローチ
実行可能ファイル(エディタ)をビルドし、ライブラリ(ハイライト)をリンクする例プロジェクトの構造は単純ですが、マスター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はsourcesとincludeディレクトリを割り当てます。 include_directories()
target_include_directories()
代わりにtarget_include_directories()
を使用すると、インクルードinclude_directories()
がライブラリユーザに伝播されます。
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)
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow