Skip to content

Commit 72dffa2

Browse files
committed
improve build system
test suite and release builds
1 parent 9b12926 commit 72dffa2

File tree

4 files changed

+47
-13
lines changed

4 files changed

+47
-13
lines changed

GNUmakefile

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,28 @@
1+
all: release-gcc-ninja
12

3+
debug: debug-gcc
24

3-
debug:
5+
release-gcc:
6+
mkdir -p build
7+
cd build && cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=Release ..
8+
cd build && make
9+
10+
release-gcc-ninja:
11+
mkdir -p build
12+
cd build && cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=Release -G 'Ninja' ..
13+
cd build && ninja
14+
15+
release-clang:
16+
mkdir -p build
17+
cd build && cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release ..
18+
cd build && make
19+
20+
release-clang-ninja:
21+
mkdir -p build
22+
cd build && cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Release -G 'Ninja' ..
23+
cd build && ninja
24+
25+
debug-gcc:
426
mkdir -p build
527
cd build && cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS_DEBUG='-ggdb -fno-omit-frame-pointer -fsanitize=address' -DCMAKE_C_FLAGS_DEBUG='-ggdb -fno-omit-frame-pointer -fsanitize=address' ..
628
cd build && make
@@ -10,3 +32,6 @@ debug-clang-ninja:
1032
mkdir -p build
1133
cd build && cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS_DEBUG='-ggdb -fno-omit-frame-pointer -fsanitize=address' -DCMAKE_C_FLAGS_DEBUG='-ggdb -fno-omit-frame-pointer -fsanitize=address' -G 'Ninja' ..
1234
cd build && ninja
35+
36+
clean:
37+
rm -rf build

test/Makefile

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,34 @@ PLUGINDIR ?= ../build/src
55
CXX ?= g++
66
DEBUG_FLAGS ?= -O0 -g -ggdb -Wl,-undefined -Wl,dynamic_lookup -fsanitize=address -fsanitize-recover=address -fno-omit-frame-pointer -fsanitize-address-use-after-scope
77

8-
all: test-utils
8+
all: frei0r-meta frei0r-run
9+
@echo "Test targets available:"
10+
@echo "scan-meta :: scan all plugins and produce metadata"
11+
@echo "check-asan :: run all tests on all plugins"
12+
@echo "frei0r-meta :: build metadata plugin scanner"
13+
@echo "frei0r-run :: build ASAN test utility"
14+
15+
916
# build scan-plugins
1017

11-
frei0r-test: CVFLAGS := $(shell pkg-config --libs --cflags opencv4)
12-
frei0r-test: frei0r-test.c
13-
${CXX} ${DEBUG_FLAGS} -ggdb -O0 -I../include -o frei0r-test frei0r-test.c ${CVFLAGS} -ldl
18+
frei0r-run: CVFLAGS := $(shell pkg-config --libs --cflags opencv4)
19+
frei0r-run: frei0r-run.c
20+
$(info Build frei0r plugin test run utility)
21+
${CXX} ${DEBUG_FLAGS} -ggdb -O0 -I../include -o frei0r-run frei0r-run.c ${CVFLAGS} -ldl
1422

15-
test-all-filters: frei0r-test
23+
check-asan: frei0r-run
1624
@$(if $(wildcard ${PLUGINDIR}),,>&2 echo "Scan dir not found: ${PLUGINDIR}" && exit 1)
17-
@find ${PLUGINDIR} -type f -name '*.so' -exec ./frei0r-test -t -v ${HOME}/Downloads/frei0r-all.webm -p {} \;
25+
@find ${PLUGINDIR} -type f -name '*.so' -exec ./frei0r-run -t -v ${HOME}/Downloads/frei0r-all.webm -p {} \;
1826

1927
# @$(if $(wildcard frei0r-test),,make test-utils)
2028

21-
scan-plugins:
29+
frei0r-meta: frei0r-meta.c
30+
$(info Build frei0r meta-data parsing utility)
31+
${CC} -o frei0r-meta -ggdb frei0r-meta.c ${INCLUDES}
32+
33+
scan-meta: frei0r-meta
2234
@$(if $(wildcard ${PLUGINDIR}),,>&2 echo "Scan dir not found: ${PLUGINDIR}" && exit 1)
23-
@find ${PLUGINDIR} -type f -name '*.so' -exec ./frei0r-info {} \; > tmp.json
35+
@find ${PLUGINDIR} -type f -name '*.so' -exec ./frei0r-meta {} \; > tmp.json
2436
@echo "[" > frei0r-plugin-list.json
2537
@head -n -1 tmp.json >> frei0r-plugin-list.json
2638
@echo "}\n]" >> frei0r-plugin-list.json
@@ -34,10 +46,7 @@ generate-metadata:
3446
@$(if $(wildcard ${PLUGINDIR}),,>&2 echo "Scan dir not found: ${PLUGINDIR}" && exit 1)
3547
sh extract-plugin-info.sh ${EXTENSION} ${PLUGINDIR}
3648

37-
build:
38-
@${CC} -o frei0r-info -ggdb frei0r-info.c ${INCLUDES}
39-
4049
clean:
4150
rm -f *.o
42-
rm -f frei0r-info frei0r-test
51+
rm -f frei0r-run frei0r-meta
4352
rm -f *.json
File renamed without changes.
File renamed without changes.

0 commit comments

Comments
 (0)