我构建了一个可执行文件Myexe
,并希望在决定安装它之前测试运行它。该决定将基于CUSTOM_COMMAND_*
输出。请问我该怎么做?以下是我采取的步骤:
add_executable(Myexe ${SOURCES})
add_custom_command(
TARGET Myexe
POST_BUILD
COMMAND Myexe
DEPENDS MyexeLib
RESULT_VARIABLE CUSTOM_COMMAND_RESULT
OUTPUT_VARIABLE CUSTOM_COMMAND_OUTPUT
ERROR_VARIABLE CUSTOM_COMMAND_ERROR )
install(TARGETS Myexe DESTINATION "${CMAKE_BINARY_DIR}/install/")
1条答案
按热度按时间qaxu7uf21#
如果POST_BUILD步骤失败,CMake将删除已生成的可执行文件。如果您使用POST_BUILD步骤来运行项目的测试,那么任何测试失败都将导致可执行文件被删除。因此,您将无法使用调试器调试测试失败,所以这是一个坏主意。
通常的做法是使用CTest来运行测试。如果您只想测试可执行文件是否运行(如您当前的POST_BUILD步骤所建议的那样),则只需在顶级
CMakeLists.txt
文件中添加对enable_testing()
的调用,然后添加在
CMakeLists.txt
中定义了Myexe
目标。要运行测试,您可以调用
在运行您当前用于安装项目的常规
cmake --build <build-dir> --target install
或cmake --install <build-dir>
命令之前,请使用以下命令。