【问题标题】:CMAKE install command post process the fileCMAKE安装命令后处理文件
【发布时间】:2011-12-28 09:24:46
【问题描述】:

我正在使用 CMake 的 INSTALL 命令安装静态文件。 我想使用 CMake 对输出文件进行后期处理。

例如,静态文件有一个类似

的字符串
v={{VERSION}}

我想替换输出文件中的{{VERSION}}

CMake 可以做到这一点吗?

【问题讨论】:

    标签: linux cmake


    【解决方案1】:

    是的,但预处理通常在cmake 调用步骤完成,而不是在安装期间。这是使用configure_file() 命令完成的。

    请注意,configure_file() 仅支持替换 ${}@@ 中的值,因此如果您确实需要使用 {{}} 配置文件,您最终可能会使用 CMake 命令 file() 编写自己的函数.

    最后,您需要安装您的配置文件。一定要

    install(FILES ${CMAKE_BINARY_DIR}/your.file)
    

    不仅仅是

    install(FILES your.file)
    

    因为后一个命令会安装您的源文件。

    【讨论】:

    • 有没有办法在多个文件上使用configure_file或基于正则表达式。我想更新目录中的所有 *.txt 文件
    • 是的。您将需要使用 file(GLOB MY_FILES "*.txt") 创建文件列表,并使用 foreach(FILE ${MY_FILES}) 为每个文件调用 configure_file()
    猜你喜欢
    • 1970-01-01
    • 2013-11-24
    • 2015-05-03
    • 2019-04-06
    • 1970-01-01
    • 2021-02-27
    • 1970-01-01
    • 2019-11-15
    • 1970-01-01
    相关资源
    最近更新 更多