我对CMake很新,我有以下问题:
我有许多C ++模块(可执行文件),它们共同组成一个程序包。这些模块由用Python编写的驱动程序控制和执行。在构建/安装过程中,需要使用配置过程(当前为Autoconf / Automake / Libtool)设置的选项对Python程序进行预处理。这目前使用的make目标看起来大致相同(非常简化):
foobar: foobar.in
sed -r 's/@USE_EXTMOD@/$(USE_EXTMOD)/' $< $@
chmod 755 $@
在CMake中实现这一目标的好方法(即正确方法)是什么?我想可以使用configure_file()和(一个非可移植的)execute_process()的组合,但是有更好的方法吗?
最好的问候,乔纳斯。
答案 0 :(得分:0)
我自己找到了一个满意的解决方案:
option (USE_EXTMOD "Use Python extension module" OFF)
option (DRIVER_DEBUG_MODE "Debug the extmod driver" OFF)
set (INST_BINDIR ${CMAKE_INSTALL_PREFIX}/bin)
configure_file(${Driver_SOURCE_DIR}/foobar.in foobar)
install(PROGRAMS ${Driver_BINARY_DIR}/foobar
DESTINATION ${CMAKE_INSTALL_PREFIX}/bin
CONFIGURATIONS Release
)
install(PROGRAMS ${Driver_BINARY_DIR}/foobar
DESTINATION ${CMAKE_BINARY_DIR}/bin
CONFIGURATIONS Debug
)