首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >运行脚本的CMake

运行脚本的CMake
EN

Stack Overflow用户
提问于 2019-04-16 13:12:05
回答 1查看 2.9K关注 0票数 0

我正在尝试创建一个CMake构建,它将在构建软件之前运行几个python脚本。作为起点,我想创建一个CMake项目,它只运行一个python脚本。我在执行脚本时遇到了问题。这是我在我的项目中的内容。

test.py

代码语言:javascript
复制
open('script_output.txt', 'a').close()

CMakeLists.txt

代码语言:javascript
复制
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编译器,这是我不想要的,也不运行我想要的python script script_output.py。我在这里做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-17 11:42:06

add_custom_command将在代码编译期间运行(在CMake完成之后),而execute_process将在CMake配置阶段运行。

CMakeLists.txt

代码语言:javascript
复制
cmake_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})

此外,您可以使用execute_process命令指定RESULT_VARIABLEOUTPUT_VARIABLE,以根据执行进程的返回代码或标准输出来设置CMake变量;这有助于影响后续的CMake行为。

此外,如果您确实想禁用CMake的初始编译器检查,可以通过在project命令中指定NONE来禁用这些语言。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55700953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档