7

ビルドされたライブラリのネイティブ名 (libfoo.so または foo.dll) を add_custom_command に渡す必要があります。

ターゲットの完全なライブラリ名を取得するにはどうすればよいですか?

プロパティLOCATIONにはそれがありますが、フルパスがあります。プロパティ OUTPUT_NAME は何も返しません。

4

1 に答える 1

8

ジェネレータ式 を使用できます$<TARGET_FILE_NAME:tgt>。ここで、tgtはターゲットの論理 CMake 名です。

例:

add_library(myLib a.cpp)
add_custom_command(
  OUTPUT someOutput
  COMMAND myProcessor --input $<TARGET_FILE_NAME:myLib> --output someOutput
  # ...
)

ジェネレーター式の詳細については、(CMake 2.xの場合) のドキュメントadd_custom_command()または専用のジェネレーター式のドキュメント(CMake 3+ の場合) を参照してください。

于 2013-03-21T16:11:00.080 に答える