diff options
| author | Linus Jahn <lnj@kaidan.im> | 2022-12-29 19:53:26 +0100 |
|---|---|---|
| committer | Linus Jahn <lnj@kaidan.im> | 2022-12-29 20:48:08 +0100 |
| commit | 608fe34edb4b4d70a2ba6eca6a925f58fee52074 (patch) | |
| tree | 895e8289780b88ec37799b092f2b0ee9f9214229 /src/CMakeLists.txt | |
| parent | 6fcc1444b23e974a5a6731ef3081f5dfc4d581e9 (diff) | |
| download | qxmpp-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.txt | 34 |
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" ) |
