首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >cmake:用每个构建重新生成文件

cmake:用每个构建重新生成文件
EN

Stack Overflow用户
提问于 2017-03-14 12:49:01
回答 1查看 1K关注 0票数 0

目前,generated.h是由touch替换的脚本创建的。如何实现在每次运行make时对该文件进行重新定位?像下面这样调用rm会产生错误。

代码语言:javascript
运行
复制
cmake_minimum_required(VERSION 3.5.1)
project(MyProject)

set_source_files_properties(generated.h PROPERTIES GENERATED TRUE)

add_executable(jr
    jr.cpp
    generated.h
    )

add_custom_command(
        OUTPUT generated.h
        COMMAND rm generated.h
        COMMAND touch generated.h
        )
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-14 13:58:49

不要使用add_custom_command,而是在每次运行构建时执行目标:它:

代码语言:javascript
运行
复制
add_custom_target(regenerate
    COMMAND rm -f generated.h # Remove file if it exists.
    COMMAND touch generated.h
)

# Force executable to be compiled after regeneration takes a place
add_dependencies(jr regenerate)

# You need to hint compiler about location of the header file generated.
include_directories(${CMAKE_CURRENT_BINARY_DIR})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42786491

复制
相关文章

相似问题

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