CMakeによって生成されるVisual C++プロジェクトの構成

CMake Visual C++
project ソリューション(.sln)
executable 実行ファイルプロジェクト(.vcxproj)
library スタティックライブラリプロジェクト(.vcxproj)

project内には、複数のexecutable/libraryを追加できる。Visual Studioでこのcmakeを実行すると、複数のプロジェクトが入ったソリューションが生成される。

ビルド順を制御するには、add_dependencies()命令を使う。以下のようにすると、exe_nameをビルドするには、lib1_namelib2_nameが必要(に依存している)という意味になり、exe_nameをビルドする前にライブラリがビルドされる。

project(my_project CXX)

add_executable(exe_name main.cpp)
add_library(lib1_name STATIC lib1.cpp)
add_library(lib2_name STATIC lib2.cpp)

# 依存関係の定義
add_dependencies(exe_name lib1_name lib2_name)

# リンク
target_link_libraries(exe_name lib1_name lib2_name)