aboutsummaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2022-08-07 21:49:54 +0200
committerJay Berkenbilt <ejb@ql.org>2022-08-07 22:20:49 +0200
commitcef6425bcac678157f58e9eafabb7e63c5831d18 (patch)
tree3889207c93e092679f9b8d01084c5cc1f9d7794f /CMakeLists.txt
parentda71dc6f37c69bdf708f1f9876e63ff348ae2296 (diff)
downloadqpdf-cef6425bcac678157f58e9eafabb7e63c5831d18.tar.zst
Disable QTC inside the library by default (fixes #714)
This results in measurable performance improvements to packaged binary libqpdf distributions. QTC remains available for library users and is still selectively enabled in CI.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt13
1 files changed, 12 insertions, 1 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3e50f0b5..2581fd7f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -43,6 +43,9 @@ CMAKE_DEPENDENT_OPTION(
GENERATE_AUTO_JOB "Automatically regenerate job files" OFF
"NOT MAINTAINER_MODE" ON)
CMAKE_DEPENDENT_OPTION(
+ ENABLE_QTC "Enable QTC test coverage" OFF
+ "NOT MAINTAINER_MODE" ON)
+CMAKE_DEPENDENT_OPTION(
SHOW_FAILED_TEST_OUTPUT "Show qtest output on failure" OFF
"NOT CI_MODE" ON)
@@ -110,8 +113,15 @@ endif()
add_compile_definitions($<$<COMPILE_LANGUAGE:CXX>:POINTERHOLDER_TRANSITION=4>)
+if(ENABLE_QTC)
+ set(ENABLE_QTC_ARG)
+else()
+ add_compile_definitions(QPDF_DISABLE_QTC=1)
+ set(ENABLE_QTC_ARG --disable-tc)
+endif()
+
enable_testing()
-set(RUN_QTEST perl ${qpdf_SOURCE_DIR}/run-qtest)
+set(RUN_QTEST perl ${qpdf_SOURCE_DIR}/run-qtest ${ENABLE_QTC_ARG})
if(WIN32)
find_program(COPY_COMMAND NAMES cp copy)
@@ -335,6 +345,7 @@ message(STATUS " build shared libraries: ${BUILD_SHARED_LIBS}")
message(STATUS " build static libraries: ${BUILD_STATIC_LIBS}")
message(STATUS " build manual: ${BUILD_DOC}")
message(STATUS " compiler warnings are errors: ${WERROR}")
+message(STATUS " QTC test coverage: ${ENABLE_QTC}")
message(STATUS " system: ${CPACK_SYSTEM_NAME}")
message(STATUS "")
message(STATUS "*** Options Summary ***")