aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt28
1 files changed, 19 insertions, 9 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7a9b7d11..b2536f1b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,6 +1,9 @@
cmake_minimum_required(VERSION 3.1)
-project(qmatrixclient CXX)
+set(API_VERSION "0.5.1") # Normally it should just include major.minor
+project(qmatrixclient VERSION "0.5.2" LANGUAGES CXX)
+
+option(QMATRIXCLIENT_INSTALL_EXAMPLE "install qmc-example application" ON)
include(CheckCXXCompilerFlag)
if (NOT WIN32)
@@ -40,7 +43,9 @@ foreach (FLAG all "" pedantic extra error=return-type no-unused-parameter no-gnu
endif ()
endforeach ()
-find_package(Qt5 5.4.1 REQUIRED Network Gui)
+# Qt 5.6+ is the formal requirement but for the sake of supporting UBPorts
+# upstream Qt 5.4 is required.
+find_package(Qt5 5.4.1 REQUIRED Network Gui Multimedia)
get_filename_component(Qt5_Prefix "${Qt5_DIR}/../../../.." ABSOLUTE)
if (GTAD_PATH)
@@ -54,6 +59,7 @@ message( STATUS )
message( STATUS "=============================================================================" )
message( STATUS " libqmatrixclient Build Information" )
message( STATUS "=============================================================================" )
+message( STATUS "Version: ${PROJECT_VERSION}, API version: ${API_VERSION}")
if (CMAKE_BUILD_TYPE)
message( STATUS "Build type: ${CMAKE_BUILD_TYPE}")
endif(CMAKE_BUILD_TYPE)
@@ -76,6 +82,7 @@ set(libqmatrixclient_SRCS
lib/room.cpp
lib/user.cpp
lib/avatar.cpp
+ lib/syncdata.cpp
lib/settings.cpp
lib/networksettings.cpp
lib/converters.cpp
@@ -85,6 +92,8 @@ set(libqmatrixclient_SRCS
lib/events/roomevent.cpp
lib/events/stateevent.cpp
lib/events/eventcontent.cpp
+ lib/events/roomcreateevent.cpp
+ lib/events/roomtombstoneevent.cpp
lib/events/roommessageevent.cpp
lib/events/roommemberevent.cpp
lib/events/typingevent.cpp
@@ -115,7 +124,6 @@ if (MATRIX_DOC_PATH AND GTAD_PATH)
add_custom_target(update-api
${ABS_GTAD_PATH} --config ${CSAPI_DIR}/gtad.yaml --out ${CSAPI_DIR}
${FULL_CSAPI_SRC_DIR}
- cas_login_redirect.yaml- cas_login_ticket.yaml-
old_sync.yaml- room_initial_sync.yaml- # deprecated
sync.yaml- # we have a better handcrafted implementation
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/lib
@@ -139,8 +147,7 @@ add_library(QMatrixClient ${libqmatrixclient_SRCS}
${libqmatrixclient_job_SRCS} ${libqmatrixclient_csdef_SRCS}
${libqmatrixclient_cswellknown_SRCS}
${libqmatrixclient_asdef_SRCS} ${libqmatrixclient_isdef_SRCS})
-set(API_VERSION "0.4")
-set_property(TARGET QMatrixClient PROPERTY VERSION "${API_VERSION}.2.1")
+set_property(TARGET QMatrixClient PROPERTY VERSION "${PROJECT_VERSION}")
set_property(TARGET QMatrixClient PROPERTY SOVERSION ${API_VERSION} )
set_property(TARGET QMatrixClient PROPERTY
INTERFACE_QMatrixClient_MAJOR_VERSION ${API_VERSION})
@@ -151,7 +158,7 @@ target_include_directories(QMatrixClient PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/lib>
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
)
-target_link_libraries(QMatrixClient Qt5::Core Qt5::Network Qt5::Gui)
+target_link_libraries(QMatrixClient Qt5::Core Qt5::Network Qt5::Gui Qt5::Multimedia)
add_executable(qmc-example ${example_SRCS})
target_link_libraries(qmc-example Qt5::Core QMatrixClient)
@@ -168,10 +175,11 @@ install(DIRECTORY lib/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
FILES_MATCHING PATTERN "*.h")
include(CMakePackageConfigHelpers)
+# NB: SameMajorVersion doesn't really work yet, as we're within 0.x trail.
+# Maybe consider jumping the gun and releasing 1.0, as semver advises?
write_basic_package_version_file(
"${CMAKE_CURRENT_BINARY_DIR}/QMatrixClient/QMatrixClientConfigVersion.cmake"
- VERSION ${API_VERSION}
- COMPATIBILITY AnyNewerVersion
+ COMPATIBILITY SameMajorVersion
)
export(PACKAGE QMatrixClient)
@@ -197,7 +205,9 @@ if (WIN32)
install(FILES mime/packages/freedesktop.org.xml DESTINATION mime/packages)
endif (WIN32)
-install(TARGETS qmc-example RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+if (QMATRIXCLIENT_INSTALL_EXAMPLE)
+ install(TARGETS qmc-example RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+endif (QMATRIXCLIENT_INSTALL_EXAMPLE)
if (UNIX AND NOT APPLE)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/QMatrixClient.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)