CMakeLists.txt-运行过程,然后执行命令

时间:2019-05-29 22:10:56

标签: cmake

我有以下CMakeLists.txt

cmake_minimum_required(VERSION 3.0.0)
project(FlaAlgoTests)
...

include_directories("../lib")
...

add_executable(
        flamenco_algorithms_anomaly_stiction_tests
        ...
)


flamenco_algorithms_anomaly_stiction_tests可执行文件在完成后会生成一个.xml文件。

该可执行文件运行后,我想运行一个进程(我猜想用ADD_CUSTOM_COMMAND?),该进程将xml文件转换为html文件。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

简短的回答是“是”。您可以使用ADD_CUSTOM_COMMAND首先执行构建的可执行文件(flamenco_stiction_tests.exe),然后使用其运行其他进程(my_additional_process.exe)。尝试这样的事情:

add_custom_command(TARGET flamenco_algorithms_anomaly_stiction_tests POST_BUILD
    COMMAND flamenco_stiction_tests.exe 
    COMMAND my_additional_process.exe my_generated_file.xml
    WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/Debug
    COMMENT "Running built executable and additional process..."
)

对于CMake documentation,这些命令将按顺序执行。您也可以使用configure_file()add_custom_command的组合将脚本配置为在生成可执行文件之后运行。这样可以更轻松,更安全地保证生成的文件可用于第二个过程。