Я пишу библиотеку C ++ и уже использую процесс CI (Continuous Integration), чтобы убедиться, что функции работают.Сборка основана на make-файле, поэтому скрипт CI содержит строку make test
.Эта цель будет запускать автоматизированные тесты (скажем, с использованием Catch) и проходить сборку только в случае успеха.
В соответствии с передовой практикой неправильное использование библиотеки пользовательским кодом должно вызывать ошибку компиляции, вместо этогоошибки во время выполнения.Поэтому я включил много статических проверок.
Однако я хочу убедиться, что в моем процессе автоматического тестирования это действительно так (что пользовательский код, использующий библиотеку по ошибке, не будет собран).
Итак, я создал папку, содержащую несколько файлов .cpp, каждый из которых демонстрирует неправильное использование библиотеки, поэтому каждый из них не может быть собран.
Моя проблема в том, что если я добавлю новую цель в свойmakefile, чтобы построить их, вернется после первого сбоя.
Я хочу убедиться, что all эти файлы не удалось собрать, и в этом случае вернет 0 только.
Как мне написать цель, которая выполняет это?
Некоторый (не работающий) код, который вернется после первого сбоя.
SRC_FILES := $(wildcard *.cpp)
OBJ_FILES := $(patsubst %.cpp, %.o, $(SRC_FILES))
all: $(OBJ_FILES)
@echo "done"
%.o: %.cpp
$(CXX) -o $@ -c $<
Если я в основном игнорирую сбои (добавив строку с -
), я не смогу проверить, что все файлы неверны.