我需要将构建库的本地名称(libfoo.so或foo.dll)传递给add_custom_command。如何在cmake上获得图书馆全名?
如何获得目标的完整库名称?
财产LOCATION
有它,但具有完整的路径。 PROPoerty OUTPUT_NAME不返回任何内容。
我需要将构建库的本地名称(libfoo.so或foo.dll)传递给add_custom_command。如何在cmake上获得图书馆全名?
如何获得目标的完整库名称?
财产LOCATION
有它,但具有完整的路径。 PROPoerty 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
# ...
)
更多关于生成器表达式,请参阅documentation of add_custom_command()
(对于CMake的2.X)或到专用generator expression documentation(对于CMake的3+)。
真棒,谢谢。 – quimnuss 2013-03-21 16:15:01
add_custom_command()'哪部分需要它?生成器表达式$ $ TARGET_FILE:tgt>可以帮助你吗? – Angew 2013-03-21 15:42:20
论证部分。什么是生成器表达式?我已经尝试了您的提案,并将其展开为完整路径,而我只需要文件名:S – quimnuss 2013-03-21 16:01:04