这是我安装配置文件的方式:
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文件。有一个可执行文件可以为我做这个工作:
./ Convertor a.xml a-converted.xml
如何在安装之前自动转换xml文件?它应该是一个自定义命令或目标,安装依赖于它,我只是不知道如何使install
命令依赖它。任何建议将不胜感激!
答案 0 :(得分:6)
SCRIPT和CODE签名:
install([[SCRIPT <file>] [CODE <code>]] [...])
SCRIPT表单将在调用期间调用给定的CMake脚本文件 安装。如果脚本文件名是相对路径,则它将是 解释当前的源目录。代码 表单将在安装期间调用给定的CMake代码。代码是 在双引号字符串中指定为单个参数。
例如:
install(CODE "execute_process(\"./Convertor a.xml a-converted.xml\")")
install(FILES a-converted.xml DESTINATION ${INSTDIR})
请务必查看手册中的entry for execute_process
。另请注意,CODE
参数中的宏扩展可能有点棘手。检查构建目录中生成的cmake_install.cmake
生成的代码。