CMake のいくつかの概念

1. CMP0028 での二重コロンの使用

https://cmake.org/cmake/help/latest/policy/CMP0028.html
ターゲット名の二重コロンは ALIAS または IMPORTEDtarget を意味します
CMake2.18.2 以前のバージョンでは、target_link_libraries() で二重コロンを使用できます。コマンドのターゲットまたはファイル。
ターゲットのリンク依存関係を計算する場合、各依存関係名はターゲットまたはディスク上のファイル名のいずれかになります。(target はビルドのターゲットであり、add_execute または add_library で記述したものです)。二重コロン「::」の前に、ターゲットで一致する名前が見つからない場合、その名前はディスク上のファイルを指していると見なされ、混乱を招くメッセージが表示されます (ターゲットの名前が typo の場合)。
LINK_LIBRARIES_ONLY_TARGETS の target 属性を参照します
。 古いバージョンの CMake では、target を検索してからディスク上のファイルを検索し、さらに二重コロンを含む項目も検索します。新しい CMP0028 動作では、リンク依存関係に二重コロンが含まれているが、IMPORTED または ALIAS ターゲットではない場合、FATAL_ERROR エラーがスローされます。

2. エイリアスターゲット

Cmake のオリジナル ドキュメント アドレス
ALIAS ターゲットはエイリアスであり、読み取り専用コンテキストでバイナリ ターゲット名と同じ意味で使用できます (読み取り専用コンテキストの意味がわかりません)。ALIAS ターゲットの主な使用例は、ライブラリに同梱される単体テストの実行可能ファイルです。これらの実行可能ファイルは、同じビルド システムの一部にすることも、ユーザー構成に基づいて個別にビルドすることもできます。

おすすめ

転載: blog.csdn.net/u013238941/article/details/130226258