3

次のようにターゲットを作成するとします。

add_executable(app main.c)
install(TARGETS app
    RUNTIME DESTINATION some/path}
)

some/pathジェネレータ式で取得するにはどうすればよいですか?

  • $<TARGET_FILE:tgt>インストール接頭辞付きの完全な絶対パスを返します
  • $<TARGET_FILE_DIR:tgt>同じことを行い、ファイル名を含めます
  • $<TARGET_FILE_NAME:tgt>パスではなく、ファイル名のみを返します

私は何が欠けていますか?この情報を含むプロパティはありますか?

4

1 に答える 1

0

特定のターゲットのインストールパスを反映したジェネレータ式もプロパティもありません。リストするすべてのジェネレータ式は、ターゲットのビルド場所に関する情報を反映しています。

ジェネレーター式があり$<INSTALL_PREFIX>ますが、ターゲットがエクスポートされた場合 ( install(EXPORT)) で、このコマンド呼び出し内でのみ使用できます。

したがって、ターゲットの宛先ディレクトリが必要な場合は、手動で作成する必要があります。または、ターゲットのプロパティに保存し、$<TARGET_PROPERTY:tgt,prop>ジェネレーター式を使用します。[プロパティが相対installパスを反映している場合、このコマンドは絶対パスを含むジェネレーター式のみを受け入れるため、そのようなジェネレーター式はコマンドで使用できないことに注意してください。]

于 2016-01-31T15:32:18.053 に答える