aboutsummaryrefslogtreecommitdiffstats
path: root/README-maintainer.md
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2024-02-17 20:52:06 +0100
committerJay Berkenbilt <ejb@ql.org>2024-02-17 20:55:00 +0100
commit93cf8156b0c356be988edf4c2d22e153be9b2792 (patch)
tree8dade2ae2f37e792f920dab730c8e0832bbfd7a1 /README-maintainer.md
parentd8f64a8a942bd90b1c74a89e4e59ea2be163e43f (diff)
downloadqpdf-93cf8156b0c356be988edf4c2d22e153be9b2792.tar.zst
Add ENABLE_COVERAGE option to build
Diffstat (limited to 'README-maintainer.md')
-rw-r--r--README-maintainer.md31
1 files changed, 21 insertions, 10 deletions
diff --git a/README-maintainer.md b/README-maintainer.md
index 59c6794c..df1656b3 100644
--- a/README-maintainer.md
+++ b/README-maintainer.md
@@ -25,19 +25,19 @@
**Remember to check pull requests as well as issues in github.**
+Include `-DCMAKE_EXPORT_COMPILE_COMMANDS=ON` with cmake if using emacs lsp mode.
+
Default:
```
-cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
- -DMAINTAINER_MODE=ON -DBUILD_STATIC_LIBS=OFF \
+cmake -DMAINTAINER_MODE=ON -DBUILD_STATIC_LIBS=OFF \
-DCMAKE_BUILD_TYPE=RelWithDebInfo ..
```
Debugging:
```
-cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
- -DMAINTAINER_MODE=ON -DBUILD_SHARED_LIBS=OFF \
+cmake -DMAINTAINER_MODE=ON -DBUILD_SHARED_LIBS=OFF \
-DCMAKE_BUILD_TYPE=Debug ..
```
@@ -45,13 +45,26 @@ Profiling:
```
CFLAGS=-pg LDFLAGS=-pg \
- cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
- -DMAINTAINER_MODE=ON -DBUILD_SHARED_LIBS=OFF \
+ cmake -DMAINTAINER_MODE=ON -DBUILD_SHARED_LIBS=OFF \
-DCMAKE_BUILD_TYPE=Debug ..
```
Then run `gprof gmon.out`. Note that gmon.out is not cumulative.
+Coverage:
+
+```
+cmake -DMAINTAINER_MODE=ON -DBUILD_SHARED_LIBS=OFF \
+ -DCMAKE_BUILD_TYPE=Debug -DENABLE_COVERAGE=ON..
+```
+
+Then, from the build directory, run the test suite (`ctest --verbose`) followed by
+```
+gcovr -r .. --html --html-details -o coverage-report.html
+```
+
+Note that, in early 2024, branch coverage information is not very accurate with C++.
+
Memory checks:
```
@@ -59,8 +72,7 @@ CFLAGS="-fsanitize=address -fsanitize=undefined" \
CXXFLAGS="-fsanitize=address -fsanitize=undefined" \
LDFLAGS="-fsanitize=address -fsanitize=undefined" \
CC=clang CXX=clang++ \
- cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
- -DMAINTAINER_MODE=ON -DBUILD_SHARED_LIBS=OFF \
+ cmake -DMAINTAINER_MODE=ON -DBUILD_SHARED_LIBS=OFF \
-DCMAKE_BUILD_TYPE=Debug ..
```
@@ -691,8 +703,7 @@ export QPDF_BUILD_LIBDIR=$QPDF_SOURCE_TREE/build/libqpdf
export LD_LIBRARY_PATH=$QPDF_BUILD_LIBDIR
cd qpdf
mkdir build
-cmake -B build -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
- -DMAINTAINER_MODE=ON -DBUILD_STATIC_LIBS=OFF \
+cmake -B build -DMAINTAINER_MODE=ON -DBUILD_STATIC_LIBS=OFF \
-DCMAKE_BUILD_TYPE=RelWithDebInfo
cat <<'EOF'
#!/bin/bash