CMake目标生成可执行包装脚本

时间:2010-10-22 11:18:43

标签: cmake

我对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()的组合,但是有更好的方法吗?

最好的问候,乔纳斯。

1 个答案:

答案 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
    )