我在C中有一个数字向量实现;整个实现基于TYPE然后我做s / TYPE / double / g来获得double和s / TYPE / int /的实现来获得int的实现。到目前为止,我已将过滤基于一个小的sed脚本,该脚本使用CMakeLists.txt文件中的add_custom_command()引用。这在linux上运行良好,但在尝试生成Visual Studio解决方案时失败(在Visual Studio中)。
由于我正在执行的过程(在文件中搜索替换并将输出存储为新文件)非常简单,我想也许这可以通过内置的CMake命令实现?
乔金姆
答案 0 :(得分:1)
在纯粹的cmake中,您至少有3种方法:
1)configure_file
命令
2)可以使用FILE READ
或FILE STRINGS
和FILE WRITE
命令在cmake配置步骤中进行任何转换。
但是
3)如果绝对有必要在构建期间生成此文件,那么您可以在进程脚本模式(cmake -P
)中使用cmake与add_custom_command
:
add_custom_command(OUTPUT vector.c
COMMAND $(CMAKE_COMMAND) -DTEMPLATE:STRING=vector.template -P genscript.cmake
DEPENDS vector.template genscript.cmake)
genscript.cmake
是帮助脚本,你需要写。它应该生成vector.c
1)或2)上面听过的方法。