最近使用CMake编译项目,其中需要使用第三方库,但是每次在不同电脑上编译时需要手动编译第三方库十分麻烦,因此,我写了一个shell脚步来编译第三方库,同时希望在CMake编译时自动调用这个脚步编译第三方库。有了思路,就需要看CMake如何调用shell命令了。
execute_process
CMake可以通过execute_process调用shell命令,其使用如下:
execute_process(COMMAND <cmd1> [args1...]]
[COMMAND <cmd2> [args2...] [...]]
[WORKING_DIRECTORY <directory>]
[TIMEOUT <seconds>]
[RESULT_VARIABLE <variable>]
[OUTPUT_VARIABLE <variable>]
[ERROR_VARIABLE <variable>]
[INPUT_FILE <file>]
[OUTPUT_FILE <file>]
[ERROR_FILE <file>]
[OUTPUT_QUIET]
[ERROR_QUIET]
[OUTPUT_STRIP_TRAILING_WHITESPACE]
[ERROR_STRIP_TRAILING_WHITESPACE])
按照上述格式,我写的测试CMakeLists.txt如下:
cmake_minimum_required(VERSION 3.7)
message("Test cmake call shell command")
execute_process(COMMAND echo "Hello")
经测试可正常运行,脚步的调用则与shell命令的调用类似,代码示例。
参考
[1] https://cmake.org/cmake/help/v3.7/command/execute_process.html
版权声明:本文为japinli原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。