我想用 CMake 生成和编译 Visual Studio 项目我需要从构建中排除单元测试文件。有没有办法做到这一点?
Posted
技术标签:
【中文标题】我想用 CMake 生成和编译 Visual Studio 项目我需要从构建中排除单元测试文件。有没有办法做到这一点?【英文标题】: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? 【发布时间】:2019-07-04 13:39:18 【问题描述】:我的项目包含我想从编译过程中排除的单元测试文件。我想用 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)
【问题讨论】:
【参考方案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.
)
另外,我注意到您想从编译中删除头文件。头文件根本不应该被编译。您不应该将它们添加到您的目标中。
如果您使用 glob 添加所有源文件,那么您可以随时将其从 glob 列表中删除:
list(REMOVE_ITEM globbed_files file/to/be_excluded.cpp)
【讨论】:
以上是关于我想用 CMake 生成和编译 Visual Studio 项目我需要从构建中排除单元测试文件。有没有办法做到这一点?的主要内容,如果未能解决你的问题,请参考以下文章
加速图像处理的神器: INTEL ISPC编译器基于CMAKE快速创建VISUAL STUDIO项目
加速图像处理的神器: INTEL ISPC编译器基于CMAKE快速创建VISUAL STUDIO项目
与 CMake 和 Visual Studio 2010 的链接错误