这是我安装配置文件的方式:
file(GLOB ConfigFiles ${CMAKE_CURRENT_SOURCE_DIR}/configs/*.xml
${CMAKE_CURRENT_SOURCE_DIR}/configs/*.xsd
${CMAKE_CURRENT_SOURCE_DIR}/configs/*.conf)
install(FILES ${ConfigFiles} DESTINATION ${INSTDIR})
但是我需要在安装之前转换其中一个xml文件。有一个可执行文件可以帮我完成这项工作:
./转换器a.xml a-converted. xml
如何在安装前自动转换xml文件?它应该是一个自定义的命令或目标,安装依赖于它,我只是不知道如何使install
命令依赖于它。任何建议将不胜感激!
2条答案
按热度按时间kwvwclae1#
看一下
install
的SCRIPT
版本:SCRIPT和CODE签名:
install([[SCRIPT <file>] [CODE <code>]] [...])
SCRIPT表单将在安装过程中调用给定的CMake脚本文件。如果脚本文件名是相对路径,则将相对于当前源目录对其进行解释。CODE表单将在安装过程中调用给定的CMake代码。代码被指定为双引号字符串中的单个参数。
例如:
确保在手册中 checkout
entry for execute_process
。还要注意,CODE
参数中的宏扩展可能会有点棘手。检查生成的cmake_install.cmake
在您的构建目录中,生成的代码将放置在那里。svujldwt2#
我认为,如果您使用自定义命令和目标,您的特定情况会更好地工作,如下所示:
${CMAKE_BINARY_DIR}
区域中生成文件是一个好主意。*这样你就可以确保文件
a-converted.xml
是在你想要安装它的时候生成的。特别是,这两条规则确保了如果你对文件做了修改,它会被 * 重新编译 *。