aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorHubert Chathi <uhoreg@debian.org>2021-10-16 00:03:36 -0400
committerHubert Chathi <uhoreg@debian.org>2021-10-16 00:03:36 -0400
commit5a8c406749160a01865cbac8b4591a8e3c31e4c6 (patch)
tree0bafb35b381954589f90fccfa3e5ff34e871c494 /CMakeLists.txt
parenteb2f105aea98f640e2f95854983bb06ade95bb3e (diff)
parent0a342369406e2d259ce20e5fa6d53ac271cbf3c2 (diff)
downloadlibquotient-5a8c406749160a01865cbac8b4591a8e3c31e4c6.tar.gz
libquotient-5a8c406749160a01865cbac8b4591a8e3c31e4c6.zip
Update to upstream version 0.6.11
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt45
1 files changed, 30 insertions, 15 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 10b73f4f..5c1babc5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -4,7 +4,7 @@ cmake_policy(SET CMP0092 NEW)
endif()
set(API_VERSION "0.6")
-project(Quotient VERSION "${API_VERSION}.6" LANGUAGES CXX)
+project(Quotient VERSION "${API_VERSION}.11" LANGUAGES CXX)
option(${PROJECT_NAME}_INSTALL_TESTS "install quotest (former qmc-example) application" ON)
# https://github.com/quotient-im/libQuotient/issues/369
@@ -85,18 +85,28 @@ else ()
message( STATUS "End-to-end encryption (E2EE) support is turned off.")
endif ()
-if (GTAD_PATH)
+if (GTAD_PATH AND MATRIX_DOC_PATH)
get_filename_component(ABS_GTAD_PATH "${GTAD_PATH}" REALPATH)
+ if (EXISTS ${ABS_GTAD_PATH})
+ get_filename_component(ABS_API_DEF_PATH "${MATRIX_DOC_PATH}/data/api" REALPATH)
+ message (STATUS "Testing ${ABS_API_DEF_PATH}")
+ if (NOT IS_DIRECTORY ${ABS_API_DEF_PATH})
+ get_filename_component(ABS_API_DEF_PATH "${MATRIX_DOC_PATH}/api" REALPATH)
+ message (STATUS "Testing ${ABS_API_DEF_PATH}")
+ endif ()
+ if (IS_DIRECTORY ${ABS_API_DEF_PATH})
+ set(GENERATE_API 1)
+ if (NOT CLANG_FORMAT)
+ set(CLANG_FORMAT clang-format)
+ endif()
+ get_filename_component(ABS_CLANG_FORMAT "${CLANG_FORMAT}" PROGRAM)
+ else ()
+ message( WARNING "${MATRIX_DOC_PATH} doesn't seem to point to a valid matrix-doc repo; disabling API stubs generation")
+ endif ()
+ else (EXISTS ${ABS_GTAD_PATH})
+ message( WARNING "${GTAD_PATH} doesn't exist; disabling API stubs generation")
+ endif ()
endif ()
-if (MATRIX_DOC_PATH)
- get_filename_component(ABS_API_DEF_PATH "${MATRIX_DOC_PATH}/api" REALPATH)
-endif ()
-if (ABS_GTAD_PATH AND ABS_API_DEF_PATH)
- if (NOT CLANG_FORMAT)
- set(CLANG_FORMAT clang-format)
- endif()
- get_filename_component(ABS_CLANG_FORMAT "${CLANG_FORMAT}" PROGRAM)
-endif()
message( STATUS )
message( STATUS "=============================================================================" )
@@ -110,11 +120,11 @@ message( STATUS "Using compiler: ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_V
message( STATUS "Install Prefix: ${CMAKE_INSTALL_PREFIX}" )
message( STATUS " Header files will be installed to ${CMAKE_INSTALL_PREFIX}/${${PROJECT_NAME}_INSTALL_INCLUDEDIR}" )
message( STATUS "Using Qt ${Qt5_VERSION} at ${Qt5_Prefix}" )
-if (ABS_API_DEF_PATH AND ABS_GTAD_PATH)
+if (GENERATE_API)
message( STATUS "Generating API stubs enabled (use --target update-api)" )
message( STATUS " Using GTAD at ${ABS_GTAD_PATH}" )
message( STATUS " Using API files at ${ABS_API_DEF_PATH}" )
- if (ABS_CLANG_FORMAT)
+ if (EXISTS ${ABS_CLANG_FORMAT})
message( STATUS "clang-format is at ${ABS_CLANG_FORMAT}")
else ()
message( STATUS "${CLANG_FORMAT} is NOT FOUND; API files won't be reformatted")
@@ -141,6 +151,11 @@ message( STATUS )
# Set up source files
set(lib_SRCS
+ # This .h is special in that it declares a Q_NAMESPACE but has no .cpp
+ # where staticMetaObject for that namespace would be defined; passing it
+ # to add_library (see below) puts it on the automoc radar, producing
+ # a compilation unit with the needed definition.
+ lib/quotient_common.h
lib/networkaccessmanager.cpp
lib/connectiondata.cpp
lib/connection.cpp
@@ -190,7 +205,7 @@ set(FULL_CSAPI_DIR lib/${CSAPI_DIR})
set(ASAPI_DEF_DIR application-service/definitions)
set(ISAPI_DEF_DIR identity/definitions)
-if (MATRIX_DOC_PATH AND GTAD_PATH)
+if (GENERATE_API)
if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.12.0")
# We use globbing with CONFIGURE_DEPENDS to produce two file lists:
# one of all API files for clang-format and another of just .cpp
@@ -222,7 +237,7 @@ if (MATRIX_DOC_PATH AND GTAD_PATH)
VERBATIM
)
add_custom_target(update-api DEPENDS generate-unformatted-api)
- if (ABS_CLANG_FORMAT)
+ if (EXISTS ${ABS_CLANG_FORMAT})
set(CLANG_FORMAT_ARGS -i -sort-includes ${CLANG_FORMAT_ARGS})
# FIXME: the list of files should be produced after GTAD has run.
# For now it's produced at CMake invocation. If file() hasn't found