Я создал переносимую индустриальную агностическую систему сборки на основе сценариев, полезную для быстрой сборки нескольких зависимых проектов, без необходимости полагаться на конкретную IDE или фабрику сборки.Это агностик, потому что он не основан на одном движке сборки.Я основал первую версию, используя cmake, потому что мои проекты в основном C ++, но это будет развиваться (например, включать gradle или что-то еще).То есть я не сосредоточен на CMake, это всего лишь инструмент для достижения цели, легкое портативное создание проекта C ++.Раньше я имел в виду BJam и сохранил бы его, если бы было больше документации.
В результате я очень зависим от CMake в выполнении сборки и модульных тестов.На сегодняшний день я понял, что тесты создаются под целью «all» и выполняются под целью «test».
С CMake 2- (и - здесь, например, генератор сборочных файлов Unix):
make all # Build project AND tests
make test # Run tests
С CMake 3+ и любым генератором:
cmake --build . --target all # Build project AND tests
cmake --build . --target test # Run tests
Я хотел бы знать, если бы кто-то знал способ разделить фазу «проекта сборки» отдельно от «тестов сборки»'фаза (также потому, что в моей сборочной системе более естественно присоединиться к сборке тестов и запуску тестов, чем наоборот).
Важная точность: я не хочу загружать проект с одного или другого видения(щелкнув BUILD_TESTING).Идея заключалась бы в том, чтобы иметь 3 этапа, например:
cmake --build . --target <project> # 1. Build project only
cmake --build . --target <build_tests> # 2. Build tests
cmake --build . --target <run_tests> # 3. Run tests
Если я решу не запускать тесты, я могу перейти сразу от этапа 1 к установке, но запуск этапа 3 вызовет предыдущие зависимые этапы.
Есть подсказка?(Если нет, я подозреваю, что мне придется напрямую спросить разработчиков CMake ...)
Заранее спасибо.Привет.