Skip to content
This repository was archived by the owner on Mar 20, 2025. It is now read-only.

Commit bc23e5f

Browse files
committed
Clean up CMake
1 parent d706274 commit bc23e5f

File tree

2 files changed

+50
-53
lines changed

2 files changed

+50
-53
lines changed

CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ set(CMAKE_AUTORCC ON)
2828

2929
include(GNUInstallDirs)
3030

31+
option(BUILD_SHARED "Build shared library" ON)
3132
option(BUILD_TESTS "Build tests." ON)
3233
option(BUILD_INTERNAL_TESTS "Build internal tests." OFF)
3334
option(BUILD_DOCUMENTATION "Build API documentation." OFF)

src/CMakeLists.txt

Lines changed: 49 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,6 @@
44

55
include(GenerateExportHeader)
66

7-
option(BUILD_SHARED "Build SHARED library" ON)
8-
9-
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/base)
10-
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/client)
11-
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/server)
12-
137
set(INSTALL_HEADER_FILES
148
# Base
159
base/QXmppArchiveIq.h
@@ -269,31 +263,6 @@ set(SOURCE_FILES
269263
server/QXmppServerPlugin.cpp
270264
)
271265

272-
if(BUILD_OMEMO)
273-
# required to be used in QXmppMessage
274-
set(SOURCE_FILES ${SOURCE_FILES} base/QXmppOmemoDataBase.cpp)
275-
endif()
276-
277-
if(WITH_GSTREAMER)
278-
find_package(GStreamer REQUIRED)
279-
find_package(GLIB2 REQUIRED)
280-
find_package(GObject REQUIRED)
281-
282-
set(INSTALL_HEADER_FILES
283-
${INSTALL_HEADER_FILES}
284-
client/QXmppCall.h
285-
client/QXmppCallManager.h
286-
client/QXmppCallStream.h
287-
)
288-
289-
set(SOURCE_FILES
290-
${SOURCE_FILES}
291-
client/QXmppCall.cpp
292-
client/QXmppCallManager.cpp
293-
client/QXmppCallStream.cpp
294-
)
295-
endif()
296-
297266
if(BUILD_SHARED)
298267
add_library(qxmpp SHARED ${SOURCE_FILES})
299268
else()
@@ -306,33 +275,12 @@ set_target_properties(qxmpp PROPERTIES
306275
EXPORT_NAME QXmpp
307276
)
308277

309-
if(BUILD_SHARED)
310-
set(QXMPP_BUILD_SHARED true)
311-
else()
312-
set(QXMPP_BUILD_SHARED false)
313-
endif()
314-
315-
set(QXMPP_CUSTOM_EXPORT_CONTENT "
316-
#define QXMPP_BUILD_SHARED ${QXMPP_BUILD_SHARED}
317-
#define QXMPP_VERSION_MAJOR ${PROJECT_VERSION_MAJOR}
318-
#define QXMPP_VERSION_MINOR ${PROJECT_VERSION_MINOR}
319-
#define QXMPP_VERSION_PATCH ${PROJECT_VERSION_PATCH}
320-
")
321-
322-
generate_export_header(qxmpp
323-
CUSTOM_CONTENT_FROM_VARIABLE QXMPP_CUSTOM_EXPORT_CONTENT
324-
)
325-
326278
target_include_directories(qxmpp
327279
PUBLIC
328280
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/base>
329281
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/client>
330282
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/server>
331-
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/base>
332283
$<INSTALL_INTERFACE:include/qxmpp>
333-
${GLIB2_INCLUDE_DIR}
334-
${GOBJECT_INCLUDE_DIR}
335-
${GSTREAMER_INCLUDE_DIRS}
336284
PRIVATE
337285
${CMAKE_CURRENT_BINARY_DIR}
338286
)
@@ -345,21 +293,68 @@ target_link_libraries(qxmpp
345293
)
346294

347295
if(WITH_GSTREAMER)
296+
find_package(GStreamer REQUIRED)
297+
find_package(GLIB2 REQUIRED)
298+
find_package(GObject REQUIRED)
299+
300+
set(INSTALL_HEADER_FILES
301+
${INSTALL_HEADER_FILES}
302+
client/QXmppCall.h
303+
client/QXmppCallManager.h
304+
client/QXmppCallStream.h
305+
)
306+
307+
target_sources(qxmpp
308+
PRIVATE
309+
client/QXmppCall.cpp
310+
client/QXmppCallManager.cpp
311+
client/QXmppCallStream.cpp
312+
)
313+
348314
target_link_libraries(qxmpp
349315
PRIVATE
350316
${GLIB2_LIBRARIES}
351317
${GOBJECT_LIBRARIES}
352318
${GSTREAMER_LIBRARY}
353319
)
320+
321+
target_include_directories(qxmpp
322+
PRIVATE
323+
${GLIB2_INCLUDE_DIR}
324+
${GOBJECT_INCLUDE_DIR}
325+
${GSTREAMER_INCLUDE_DIRS}
326+
)
327+
endif()
328+
329+
if(BUILD_OMEMO)
330+
# required to be used in QXmppMessage
331+
target_sources(qxmpp PRIVATE base/QXmppOmemoDataBase.cpp)
354332
endif()
355333

356334
if(WITH_QCA)
357335
target_sources(qxmpp PRIVATE client/QXmppEncryptedFileSharingProvider.cpp client/QXmppFileEncryption.cpp client/QcaInitializer.cpp)
358336
set(INSTALL_HEADER_FILES ${INSTALL_HEADER_FILES} client/QXmppEncryptedFileSharingProvider.h)
359337
target_link_libraries(qxmpp PRIVATE qca-qt${QT_VERSION_MAJOR})
360-
target_compile_definitions(qxmpp PRIVATE -DWITH_QCA)
361338
endif()
362339

340+
# qxmpp_export.h generation
341+
if(BUILD_SHARED)
342+
set(QXMPP_BUILD_SHARED true)
343+
else()
344+
set(QXMPP_BUILD_SHARED false)
345+
endif()
346+
347+
set(QXMPP_CUSTOM_EXPORT_CONTENT "
348+
#define QXMPP_BUILD_SHARED ${QXMPP_BUILD_SHARED}
349+
#define QXMPP_VERSION_MAJOR ${PROJECT_VERSION_MAJOR}
350+
#define QXMPP_VERSION_MINOR ${PROJECT_VERSION_MINOR}
351+
#define QXMPP_VERSION_PATCH ${PROJECT_VERSION_PATCH}
352+
")
353+
354+
generate_export_header(qxmpp
355+
CUSTOM_CONTENT_FROM_VARIABLE QXMPP_CUSTOM_EXPORT_CONTENT
356+
)
357+
363358
install(
364359
TARGETS qxmpp
365360
DESTINATION "${CMAKE_INSTALL_LIBDIR}"
@@ -384,6 +379,7 @@ install(
384379
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/qxmpp"
385380
)
386381

382+
# submodules
387383
if(BUILD_OMEMO)
388384
add_subdirectory(omemo)
389385
endif()

0 commit comments

Comments
 (0)