我正在从CMAKE调用一个软件来生成构建所需的文件。是否可以打印在构建窗口中调用的软件版本。?
答案 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
将删除版本之后经常出现的新行。