猿问

CMake 运行脚本

我正在尝试创建一个 CMake 构建,它将在构建软件之前运行几个 python 脚本,如果有的话。作为一个起点,我想创建一个只运行一个 python 脚本的 CMake 项目。我无法让脚本执行。这是我的项目中的内容。


test.py


open('script_output.txt', 'a').close()

CMakeLists.txt


cmake_minimum_required (VERSION 2.6)

project (module)


add_custom_command(OUTPUT script_output.c

           COMMAND python test.py)


add_custom_target(release ALL DEPENDS script_output.c)

它似乎在尝试运行我不想要的 Visual Studio 编译器,也没有运行script_output.py我想要的python script 。我在这里做错了什么?


德玛西亚99
浏览 373回答 1
1回答

暮色呼如

Whileadd_custom_command将在您的代码编译期间运行(在 CMake 完成后),execute_process将在 CMake 配置阶段运行。CMakeLists.txtcmake_minimum_required(VERSION 3.0)# Skip compiler check by enabling no languages.project(TestProj NONE)# Tell CMake to run python from the directory where this CMakeLists file exists.execute_process(COMMAND python test.py    WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})# If you have more than one script to run, use a # separate execute_process command, to ensure sequential execution.execute_process(COMMAND python test2.py    WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR})此外,您可以指定RESULT_VARIABLE或OUTPUT_VARIABLE使用execute_process命令根据执行过程的返回码或标准输出设置 CMake 变量;这可能有助于影响后续的 CMake 行为。另外,如果你真的想禁用 CMake 的初始编译器检查,你可以通过NONE在project命令中指定来禁用语言。
随时随地看视频慕课网APP

相关分类

Python
我要回答