boost-buildビルドシステムをcmakeに移行しようとしています。CMAKE:依存関係の依存関係を自動的に追加します
boost-buildが持つ特徴の1つは、依存関係の依存関係を自動的にリンクすることです。例えば
:
ブースト・ビルド:
私は実行可能app
を構築しています。それはlib2
には依存関係
lib lib1
: [ glob *.cpp ]
;
両方lib1
とlib2
が静的LIBSされていないlib1
lib lib2
: [ glob *.cpp ]
/proj/lib1//lib1
;
とlib1
に依存して、順番にlib2
exe app
: [ glob *.cpp ]
/proj/lib2//lib2
;
に依存します。 target_link_libraries
ディレクティブの作品に両方lib1
とlib2
を述べ
明示的:それはlib2.a
がlib1.a
cmakeのに依存していることを知っているので
ブーストビルドが自動的にapp
ためのリンカーラインにlib1.a
を追加します:
lib1:
add_library(lib1 STATIC ${SOURCES})
LIB2:
add_library(lib2 STATIC ${SOURCES})
アプリ:
add_executable(app ${SOURCES})
target_link_libraries(app lib1 lib2)
ライブラリの数は、これが面倒になり成長するにつれて。
target_link_libraries(app lib1 lib2 lib3 lib4 lib5 lib6 lib7 lib8 lib9 ... libN)
質問:
lib2
がlib2
に引っ張ってapp
を伝える方法はありますし、何lib2
が依存lib1
- に依存していることを指定する方法はありますか?
をご覧になることをお勧めします:http://stackoverflow.com/questions/32756195/recursive-list-of-link-libraries-in-cmake –
@TomaszLewowskiこれははるかに優れたものです:[setting- dependency-between-libraries-cmake](http://stackoverflow.com/questions/7970071/setting-dependencies-between-libraries-cmake) –