特定のターゲットがライブラリか実行可能ファイルかを判断するにはどうすればよいでしょうか? 質問する

特定のターゲットがライブラリか実行可能ファイルかを判断するにはどうすればよいでしょうか? 質問する

組み込み関数は、install(TARGETS ...)実行可能ターゲットとは別の場所にライブラリ ターゲットをインストールします。同様のことを実行したいと思います。ターゲット名のリストが与えられたら、その中のすべてのライブラリ ターゲットをリスト変数に追加し、すべてのランタイム ターゲットを別の変数に追加します。

CMake のデフォルトのターゲット プロパティのリストは見つかりませんでしたが、この種の区別に使用できるプロパティを追加するadd_library()と思います。add_executable()

特定のターゲットがライブラリか実行可能ファイルか (あるいは他の何かか) を判断するにはどうすればよいでしょうか?

ベストアンサー1

文書によると、タイププロパティは、標準の CMake ターゲット タイプを区別するために使用できます。

STATIC_LIBRARY、MODULE_LIBRARY、SHARED_LIBRARY、EXECUTABLE、または内部ターゲット タイプのいずれかになります。

例:

get_target_property(target_type <target> TYPE)
if (target_type STREQUAL "EXECUTABLE")
  # Process executable target
endif ()

おすすめ記事