aboutsummaryrefslogtreecommitdiff
path: root/src/CMakeLists.txt
diff options
context:
space:
mode:
authorLinus Jahn <lnj@kaidan.im>2022-12-29 19:53:26 +0100
committerLinus Jahn <lnj@kaidan.im>2022-12-29 20:48:08 +0100
commit608fe34edb4b4d70a2ba6eca6a925f58fee52074 (patch)
tree895e8289780b88ec37799b092f2b0ee9f9214229 /src/CMakeLists.txt
parent6fcc1444b23e974a5a6731ef3081f5dfc4d581e9 (diff)
downloadqxmpp-608fe34edb4b4d70a2ba6eca6a925f58fee52074.tar.gz
cmake: Use generate_export_header() instead of doing manually
This is going to make it easier for us to maintain things. It's also consistent with the new QXmppOmemo module. This requires CMake 3.7 now. Closes #523.
Diffstat (limited to 'src/CMakeLists.txt')
-rw-r--r--src/CMakeLists.txt34
1 files changed, 22 insertions, 12 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index daecf712..a73b1d5e 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -2,6 +2,8 @@
#
# SPDX-License-Identifier: CC0-1.0
+include(GenerateExportHeader)
+
option(BUILD_SHARED "Build SHARED library" ON)
add_definitions(-DQXMPP_BUILD)
@@ -10,18 +12,7 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/base)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/client)
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/server)
-# Configure QXmppBuildConstants.h.in
-if(BUILD_SHARED)
- set(QXMPP_BUILD_SHARED true)
-else()
- set(QXMPP_BUILD_SHARED false)
-endif()
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/base/QXmppBuildConstants.h.in ${CMAKE_CURRENT_BINARY_DIR}/base/QXmppBuildConstants.h @ONLY)
-include_directories(${CMAKE_CURRENT_BINARY_DIR}/base)
-
set(INSTALL_HEADER_FILES
- ${CMAKE_CURRENT_BINARY_DIR}/base/QXmppBuildConstants.h
-
# Base
base/QXmppArchiveIq.h
base/QXmppBindIq.h
@@ -317,6 +308,23 @@ set_target_properties(qxmpp PROPERTIES
EXPORT_NAME QXmpp
)
+if(BUILD_SHARED)
+ set(QXMPP_BUILD_SHARED true)
+else()
+ set(QXMPP_BUILD_SHARED false)
+endif()
+
+set(QXMPP_CUSTOM_EXPORT_CONTENT "
+#define QXMPP_BUILD_SHARED ${QXMPP_BUILD_SHARED}
+#define QXMPP_VERSION_MAJOR ${PROJECT_VERSION_MAJOR}
+#define QXMPP_VERSION_MINOR ${PROJECT_VERSION_MINOR}
+#define QXMPP_VERSION_PATCH ${PROJECT_VERSION_PATCH}
+")
+
+generate_export_header(qxmpp
+ CUSTOM_CONTENT_FROM_VARIABLE QXMPP_CUSTOM_EXPORT_CONTENT
+)
+
target_include_directories(qxmpp
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/base>
@@ -327,6 +335,8 @@ target_include_directories(qxmpp
${GLIB2_INCLUDE_DIR}
${GOBJECT_INCLUDE_DIR}
${GSTREAMER_INCLUDE_DIRS}
+ PRIVATE
+ ${CMAKE_CURRENT_BINARY_DIR}
)
target_link_libraries(qxmpp
@@ -372,7 +382,7 @@ export(
)
install(
- FILES ${INSTALL_HEADER_FILES}
+ FILES ${INSTALL_HEADER_FILES} ${CMAKE_CURRENT_BINARY_DIR}/qxmpp_export.h
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/qxmpp"
)