0

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

4

1 回答 1

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将删除版本之后经常出现的新行。

于 2021-05-10T12:33:21.913 回答