如何检查cmake调用的软件版本

时间:2016-12-08 09:12:02

标签: build cmake cmake-gui

我正在从CMAKE调用一个软件来生成构建所需的文件。是否可以打印在构建窗口中调用的软件版本。?

1 个答案:

答案 0 :(得分:1)

正如评论中所说,输出版本的确切方式将取决于可执行文件本身。
让我们假设它是 <executable> --version

然后它 CMake 它将看起来像:

find_program(EXECUTABLE_RUNTIME <executable>)
if ("${EXECUTABLE_RUNTIME}" STREQUAL "EXECUTABLE_RUNTIME-NOTFOUND")
  message(FATAL_ERROR "<executable> runtime could not be found!")
else()
  execute_process(COMMAND "${EXECUTABLE_RUNTIME}" --version
                  OUTPUT_VARIABLE EXECUTABLE_VERSION
                  OUTPUT_STRIP_TRAILING_WHITESPACE)
  message(STATUS "Found <executable> runtime at ${EXECUTABLE_VERSION}, version ${EXECUTABLE_VERSION}")
endif()

一种可能的方法是在引号中包含命令参数(例如 "${EXECUTABLE_RUNTIME} --version",如果这样做,输出变量将为空。
OUTPUT_STRIP_TRAILING_WHITESPACE 将删除版本之后经常出现的新行。