我需要将已构建库的本机名称(libfoo.so 或 foo.dll)传递给 add_custom_command。
如何获取目标的完整库名称?
该属性LOCATION
具有它,但具有完整路径。属性 OUTPUT_NAME 不返回任何内容。
我需要将已构建库的本机名称(libfoo.so 或 foo.dll)传递给 add_custom_command。
如何获取目标的完整库名称?
该属性LOCATION
具有它,但具有完整路径。属性 OUTPUT_NAME 不返回任何内容。
您可以使用生成器表达式$<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+)。