C++ 我想生成&;使用CMake编译Visual Studio projet我需要从构建中排除单元测试文件。有办法做到这一点吗?
我的项目包含我想从编译过程中排除的单元测试文件。我想用CMake修改.vcxproj Visual Studio文件。我的问题的可能解决方案是什么C++ 我想生成&;使用CMake编译Visual Studio projet我需要从构建中排除单元测试文件。有办法做到这一点吗?,c++,visual-studio,cmake,C++,Visual Studio,Cmake,我的项目包含我想从编译过程中排除的单元测试文件。我想用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) 首先,您不需要修改.vcxp
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_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添加所有源文件,则始终可以将其从glob列表中删除:
list(REMOVE_ITEM globbed_files file/to/be_excluded.cpp)