我想使用 CMake 生成和编译 Visual Studio projet,我需要从构建中排除单元测试文件。有没有办法做到这一点?

I want to generate & compile Visual Studio projet with CMake I need to exclude unit testing files from the build. Is there a way to dothis?

本文关键字:单元测试 文件 排除 构建 有没有 这一点 CMake projet Studio Visual 编译      更新时间:2023-10-16

我的项目包含我要在编译过程中排除的单元测试文件。我想使用CMAKE修改.vcxproj Visual Studio文件。我问题的可能解决方案是什么?

set_source_files_properties(BankTestCase_1.h PROPERTIES VS_DEPLOYEMENT_CONTENT 0)
set_source_files_properties(BankTestCase_1.h PROPERTIES EXCLUDE_FROM_BUILD 1)

首先,您不修改.vcxproj文件。Cmake生成一个。每次调用cmake时,都会生成一个新的项目文件。您必须正确生成它。


cmake已经定义了一个函数,只是为了添加测试。它称为 add_test

它通过指定名称然后命令或可执行目标来工作:

add_executable(my_test_exe testsrc1.cpp testsrc2.cpp)
add_test(NAME MyTest COMMAND my_test_exe)

如果您也想在主项目中编译测试文件,请不要将其添加到主要目标:

add_executable(main_project
    src1.cpp
    src2.cpp
    src3.cpp
    src4.cpp
    # srctest1.cpp # not added
    # srctest2.cpp # not added too.
)

另外,我注意到您要从编译中删除标头文件。标题文件根本不应该编译。您不应该将它们添加到您的目标中。


如果使用Globs添加所有源文件,则可以随时将其从列表中删除:

list(REMOVE_ITEM globbed_files file/to/be_excluded.cpp)