如何将外部测试文件添加到cmake项目

时间:2015-11-30 20:29:07

标签: cmake

我正在通过名为myBinary的cmake构建可执行文件

它使用2个C ++源文件A.cxx和B.cxx构建并与myLibrary链接

我在同一目录中有一个测试文件myTest.txt

我使用构建目录,我制作了makefile文件

mkdir build
cd build
cmake ../src

我怎么可能将这个txt文件(myTest.txt)添加到cmake文件中来获取它

a)复制到构建目录
b)在Windows上构建cmake时包含在Visual Studio解决方案树中

cmake_minimum_required (VERSION 2.8.11)

include_directories(../../framework)

add_executable(myBinary A.cxx B.cxx)

target_include_directories (mylibrary PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
target_link_libraries (mylibrary)

[更新1]

如果我将txt添加为源文件,它将出现在visual studio解决方案中,但它不会出现在复制的目录中,

理想情况下,我还需要将文件复制到“Debug”目录中,即Target可执行目录。这样,当我测试myBinary目录时,文件将位于正确的位置。

将myBinary视为可能的googletest可执行文件,我想在单元测试中检查文件的读取。

add_executable(myBinary 
               A.cxx 
               B.cxx
               myTest.txt
              )

1 个答案:

答案 0 :(得分:1)

您可以使用add_custom_command()

添加generator expressions的构建后步骤
add_custom_command(
    TARGET myBinary 
    POST_BUILD
        COMMAND ${CMAKE_COMMAND} -E copy  
                     "${CMAKE_CURRENT_SOURCE_DIR}/myTest.txt" 
                     "$<TARGET_FILE_DIR:myBinary>/myTest.txt"
)

<强>参考