如何在cmake上获取库全名?

时间:2013-03-21 14:09:16

标签: cmake

我需要将构建库的本机名称(libfoo.so或foo.dll)传递给add_custom_command。

如何获取目标的完整库名?

属性LOCATION拥有它,但具有完整路径。推荐的OUTPUT_NAME不会返回任何内容。

1 个答案:

答案 0 :(得分:3)

您可以使用生成器表达式$<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 +)。