от
Мой проект содержит файл модульного тестирования, который я хочу исключить из процесса компиляции. Я хочу изменить файл .vcxproj Visual Studio с помощью CMake. Какие могут быть возможные решения моей проблемы?
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 Ответ

0 голосов
от
Прежде всего, вы не изменяете файл
.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 для добавления всех исходных файлов, вы всегда можете удалить его из списка glob:
list(REMOVE_ITEM globbed_files file/to/be_excluded.cpp)
    
...