cmake_minimum_required(VERSION3.28)project(testprj)message(STATUS"CMAKE_CURRENT_BINARY_DIR = ${CMAKE_CURRENT_BINARY_DIR}")message(STATUS"CMAKE_CURRENT_SOURCE_DIR = ${CMAKE_CURRENT_SOURCE_DIR}")try_run(# Name of variable to store the run result (process exit status; number) in:test_run_...
OUTPUT_VARIABLE和RETURN_VALUE分别定义两个变量. 举个简单的例子,我们要在src目录执行ls命令,并把结果和返回值存下来。 可以直接在src/CMakeLists.txt中添加: EXEC_PROGRAM(ls ARGS "*.c" OUTPUT_VARIABLE LS_OUTPUTRETURN_VALUE LS_RVALUE) IF(not LS_RVALUE) MESSAGE(STATUS "ls result: "${LS_OUTPUT})...
set(ECHO_CMD "echo hello world") execute_process( COMMAND ${ECHO_CMD} RESULT_VARIABLE RESULT OUTPUT_VARIABLE OUTPUT ) message("RESULT: ${RESULT}") message("OUTPUT: ${OUTPUT}") (base) ➜ test git:(main) ✗ cmake -P test.cmake RESULT: No such file or directory OUTPUT: 被执行的...
string(COMPARE GREATER <string1> <string2> <output_variable>) string(COMPARE EQUAL <string1> <string2> <output_variable>) string(COMPARE NOTEQUAL <string1> <string2> <output_variable>) string(COMPARE LESS_EQUAL <string1> <string2> <output_variable>) string(COMPARE GREATER_EQUAL <string1>...
如果指定了OUTPUT_VARIABLE或者ERROR_VARIABLE,后面的变量将会被分别设置为标准输出和标准错误管道的值。如果两个管道都是用了相同的变量,它们的输出将会按产生的顺序被合并。如果指定了INPUT_FILE,OUTPUT_FILE 或 ERROR_FILE选项,其后的文件将会分别被附加到第一个进程的标准输入、最后一个进程的标准输出,或者所有进程...
message(STATUS "OUTPUT_VARIABLE is: ${_hello_world}") 调试的一个便捷替代方法是使用以下内容: 代码语言:javascript 复制 include(CMakePrintHelpers) cmake_print_variables(_status _hello_world) 这将产生以下输出: 代码语言:javascript 复制 -- _status="0" ; _hello_world="Hello, world!" ...
_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) try_run(run_result compile_result ${CMAKE_BINARY_DIR}/test_output ${CMAKE_SOURCE_DIR}/main.cpp RUN_OUTPUT_VARIABLE output) message("run_result: ${run_result}") message("compile_result: ${compile_result}") message("output:\n" ${output})...
OUTPUT_VARIABLE${_git_hash}OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET WORKING_DIRECTORY${CMAKE_CURRENT_SOURCE_DIR})endif()endmacro()# 获取当前版本提交序号:(类似SVN的全局版本号revision)macro(get_git_rev _git_rev)find_package(Git QUIET)if(GIT_FOUND)execute_process(COMMAND${GIT_EXECUTABLE}rev-...
作用:查找dir路径下的所有源文件,保存到variable变量中. 上面的例子中,hello_src是一个自定义变量,在执行了aux_source_directory(./src ${hello_src})之后,我就可以像这样来添加一个可执行文件:add_executable(hello ${hello_src}), 意思是用hello_src里面的所有源文件来构建hello可执行程序, 不用手动列出src...
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) # 设置存档目标文件的输出目录 set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) 1. 2. 3. 4. 5. 9.5 option 定义一个开关 option(<variable> "<help_text>" [value]) ...