我正在使用CMake构建我的系统和单元测试。
我也在做一个源代码外的构建。
我在ADD_TEST()命令中发现,您不需要安装测试可执行文件(它将在运行make时运行,这很好)。
但是,我的单元测试依赖于一些输入文件,这些文件需要复制到构建可执行文件的地方。
据我所知,我无法使用INSTALL()在那里复制文件,因为我没有指定哪里有--这取决于调用构建命令的位置。
有什么方法可以告诉CMake将我的测试文件复制到它构建可执行文件的同一个位置吗?
发布于 2012-09-11 05:09:24
这可能不是最好的解决办法,但目前我正在这样做:
file(COPY my_directory DESTINATION ${CMAKE_CURRENT_BINARY_DIR})这似乎起了作用。
发布于 2012-09-08 17:30:39
您可以使用configure_file和参数COPYONLY。并执行对build的复制:${CMAKE_CURRENT_BINARY_DIR}
发布于 2018-01-12 16:12:35
这个问题很老,但在我看来,比起将所需的文件复制到${CMAKE_CURRENT_BINARY_DIR}),有更好的解决方案。add_test命令有一个WORKING_DIRECTORY选项,允许选择运行测试的目录。因此,我建议以下解决方案:
add_executable(testA testA.cpp)
add_test(NAME ThisIsTestA COMMAND testA WORKING_DIRECTORY ${DIRECTORY_WITH_TEST_DATA})这样可以避免不必要地复制输入文件。
https://stackoverflow.com/questions/12313258
复制相似问题