Refactor CMakeLists #46

Merged
blue merged 5 commits from vae/squawk:build-refactor into messageFeed 2021-05-11 23:31:59 +00:00
11 changed files with 188 additions and 204 deletions
Showing only changes of commit 0038aca1f6 - Show all commits

View File

@ -15,13 +15,77 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
include(GNUInstallDirs) include(GNUInstallDirs)
option(SYSTEM_QXMPP "Use system qxmpp lib" ON)
option(WITH_KWALLET "Build KWallet support module" ON)
option(WITH_KIO "Build KIO support module" ON)
# Dependencies
## Qt
find_package(Qt5Widgets CONFIG REQUIRED COMPONENTS Widgets DBus Core) find_package(Qt5Widgets CONFIG REQUIRED COMPONENTS Widgets DBus Core)
find_package(Qt5LinguistTools)
find_package(Qt5Core CONFIG REQUIRED) find_package(Qt5Core CONFIG REQUIRED)
find_package(Qt5Gui CONFIG REQUIRED) find_package(Qt5Gui CONFIG REQUIRED)
find_package(Qt5Network CONFIG REQUIRED) find_package(Qt5Network CONFIG REQUIRED)
find_package(Qt5Xml CONFIG REQUIRED) find_package(Qt5Xml CONFIG REQUIRED)
find_package(Qt5LinguistTools)
find_package(LMDB REQUIRED) find_package(LMDB REQUIRED)
find_package(Signal REQUIRED)
## QXmpp
if (SYSTEM_QXMPP)
find_package(QXmpp CONFIG)
if (NOT QXmpp_FOUND)
set(SYSTEM_QXMPP OFF)
message("QXmpp package wasn't found, trying to build with bundled QXmpp")
else()
message("Building with system QXmpp")
endif()
endif()
if(NOT SYSTEM_QXMPP)
add_subdirectory(external/qxmpp)
endif()
## KIO
if (WITH_KIO)
find_package(KF5KIO CONFIG)
if (NOT KF5KIO_FOUND)
set(WITH_KIO OFF)
message("KIO package wasn't found, KIO support modules wouldn't be built")
else()
add_definitions(-DWITH_KIO)
message("Building with support of KIO")
endif()
endif()
## KWallet
if (WITH_KWALLET)
find_package(KF5Wallet CONFIG)
if (NOT KF5Wallet_FOUND)
set(WITH_KWALLET OFF)
message("KWallet package wasn't found, KWallet support module wouldn't be built")
else()
add_definitions(-DWITH_KWALLET)
message("Building with support of KWallet")
endif()
endif()
# Linking
target_link_libraries(squawk PRIVATE Qt5::Widgets)
target_link_libraries(squawk PRIVATE Qt5::DBus)
target_link_libraries(squawk PRIVATE Qt5::Network)
target_link_libraries(squawk PRIVATE Qt5::Gui)
target_link_libraries(squawk PRIVATE Qt5::Xml)
target_link_libraries(squawk PRIVATE qxmpp)
target_link_libraries(squawk PRIVATE lmdb)
target_link_libraries(squawk PRIVATE simpleCrypt)
target_link_libraries(squawk PRIVATE uuid)
# Build type
if(NOT CMAKE_BUILD_TYPE) if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Debug) set(CMAKE_BUILD_TYPE Debug)
@ -51,61 +115,9 @@ set(TS_FILES
qt5_add_translation(QM_FILES ${TS_FILES}) qt5_add_translation(QM_FILES ${TS_FILES})
add_custom_target(translations ALL DEPENDS ${QM_FILES}) add_custom_target(translations ALL DEPENDS ${QM_FILES})
qt5_use_modules(squawk LINK_PUBLIC Core Widgets)
qt5_add_resources(RCC resources/resources.qrc) qt5_add_resources(RCC resources/resources.qrc)
option(SYSTEM_QXMPP "Use system qxmpp lib" ON)
option(WITH_KWALLET "Build KWallet support module" ON)
option(WITH_KIO "Build KIO support module" ON)
if (SYSTEM_QXMPP)
find_package(QXmpp CONFIG)
if (NOT QXmpp_FOUND)
set(SYSTEM_QXMPP OFF)
message("QXmpp package wasn't found, trying to build with bundled QXmpp")
else()
message("Building with system QXmpp")
endif()
endif()
if(NOT SYSTEM_QXMPP)
add_subdirectory(external/qxmpp)
endif()
if (WITH_KWALLET)
find_package(KF5Wallet CONFIG)
if (NOT KF5Wallet_FOUND)
set(WITH_KWALLET OFF)
message("KWallet package wasn't found, KWallet support module wouldn't be built")
else()
add_definitions(-DWITH_KWALLET)
message("Building with support of KWallet")
endif()
endif()
target_sources(squawk PRIVATE ${RCC}) target_sources(squawk PRIVATE ${RCC})
target_link_libraries(squawk PRIVATE Qt5::Widgets)
target_link_libraries(squawk PRIVATE Qt5::DBus)
target_link_libraries(squawk PRIVATE Qt5::Network)
target_link_libraries(squawk PRIVATE Qt5::Gui)
target_link_libraries(squawk PRIVATE Qt5::Xml)
target_link_libraries(squawk PRIVATE qxmpp)
target_link_libraries(squawk PRIVATE lmdb)
target_link_libraries(squawk PRIVATE simpleCrypt)
if (WITH_KIO)
find_package(KF5KIO CONFIG)
if (NOT KF5KIO_FOUND)
set(WITH_KIO OFF)
message("KIO package wasn't found, KIO support modules wouldn't be built")
else()
add_definitions(-DWITH_KIO)
message("Building with support of KIO")
endif()
endif()
add_subdirectory(ui) add_subdirectory(ui)
add_subdirectory(core) add_subdirectory(core)
@ -113,8 +125,6 @@ add_subdirectory(plugins)
add_subdirectory(external/simpleCrypt) add_subdirectory(external/simpleCrypt)
target_link_libraries(squawk PRIVATE uuid)
add_dependencies(${CMAKE_PROJECT_NAME} translations) add_dependencies(${CMAKE_PROJECT_NAME} translations)
# Install the executable # Install the executable

15
cmake/FindSignal.cmake Normal file
View File

@ -0,0 +1,15 @@
find_path(Signal_INCLUDE_DIR NAMES signal/signal_protocol.h)
find_library(Signal_LIBRARY signal-protocol-c)
mark_as_advanced(Signal_INCLUDE_DIR Signal_LIBRARY)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Signal REQUIRED_VARS Signal_LIBRARY Signal_INCLUDE_DIR)
if (Signal_FOUND AND NOT TARGET Signal::Signal)
add_library(Signal::Signal UNKNOWN IMPORTED)
set_target_properties(Signal::Signal PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "C"
IMPORTED_LOCATION "${Signal_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${Signal_INCLUDE_DIR}"
)
endif ()

View File

@ -25,10 +25,3 @@ target_sources(squawk PRIVATE
add_subdirectory(handlers) add_subdirectory(handlers)
add_subdirectory(passwordStorageEngines) add_subdirectory(passwordStorageEngines)
#if(SYSTEM_QXMPP)
# get_target_property(QXMPP_INTERFACE_INCLUDE_DIRECTORIES QXmpp::QXmpp INTERFACE_INCLUDE_DIRECTORIES)
# target_include_directories(squawk PRIVATE ${QXMPP_INTERFACE_INCLUDE_DIRECTORIES})
#endif()
# Use the Widgets module from Qt 5.

View File

@ -3,4 +3,4 @@ target_sources(squawk PRIVATE
messagehandler.h messagehandler.h
rosterhandler.cpp rosterhandler.cpp
rosterhandler.h rosterhandler.h
) )

View File

@ -1,21 +1,9 @@
target_sources(squawk PRIVATE
wrappers/kwallet.cpp
kwallet.cpp
kwallet.h
)
if (WITH_KWALLET) if (WITH_KWALLET)
# get_target_property(KWALLET_INTERFACE_INCLUDE_DIRECTORIES KF5::Wallet INTERFACE_INCLUDE_DIRECTORIES) target_sources(squawk PRIVATE
# get_target_property(Qt5GUI_INTERFACE_INCLUDE_DIRECTORIES Qt5::Gui INTERFACE_INCLUDE_DIRECTORIES) wrappers/kwallet.cpp
blue marked this conversation as resolved
Review

А вот так вот точно нельзя, это должно быть миниатюрной разделяемой библиотекой, я её в рантайме пробую загрузить как плагин

А вот так вот точно нельзя, это должно быть миниатюрной разделяемой библиотекой, я её в рантайме пробую загрузить как плагин
# kwallet.cpp
# target_include_directories(squawk PRIVATE ${KWALLET_INTERFACE_INCLUDE_DIRECTORIES}) kwallet.h
# target_include_directories(squawk PRIVATE ${Qt5GUI_INTERFACE_INCLUDE_DIRECTORIES}) )
target_link_libraries(squawk PUBLIC Qt5::Core Qt5::Gui KF5::Wallet) target_link_libraries(squawk PUBLIC KF5::Wallet)
endif ()
# target_include_directories(kwalletWrapper PUBLIC ${KWALLET_INTERFACE_INCLUDE_DIRECTORIES})
# target_include_directories(kwalletWrapper PUBLIC ${Qt5GUI_INTERFACE_INCLUDE_DIRECTORIES})
# target_link_libraries(kwalletWrapper KF5::Wallet)
# target_link_libraries(kwalletWrapper Qt5::Core)
endif()

View File

@ -1,26 +1,4 @@
cmake_minimum_required(VERSION 3.3) if (WITH_KIO)
project(plugins) target_sources(squawk PRIVATE openfilemanagerwindowjob.cpp)
blue marked this conversation as resolved Outdated
Outdated
Review

Тут тоже нельзя, вот эту штуку надо сделать разделяемой либой

Тут тоже нельзя, вот эту штуку надо сделать разделяемой либой
Outdated
Review

ок, поправлю сейчас тогда

ок, поправлю сейчас тогда
target_link_libraries(squawk PRIVATE KF5::KIOWidgets)
if (WITH_KIO) endif ()
set(CMAKE_AUTOMOC ON)
find_package(Qt5Core CONFIG REQUIRED)
set(openFileManagerWindowJob_SRC
openfilemanagerwindowjob.cpp
)
add_library(openFileManagerWindowJob SHARED ${openFileManagerWindowJob_SRC})
get_target_property(Qt5CORE_INTERFACE_INCLUDE_DIRECTORIES Qt5::Core INTERFACE_INCLUDE_DIRECTORIES)
get_target_property(KIO_WIDGETS_INTERFACE_INCLUDE_DIRECTORIES KF5::KIOWidgets INTERFACE_INCLUDE_DIRECTORIES)
get_target_property(CORE_ADDONS_INTERFACE_INCLUDE_DIRECTORIES KF5::CoreAddons INTERFACE_INCLUDE_DIRECTORIES)
target_include_directories(openFileManagerWindowJob PUBLIC ${KIO_WIDGETS_INTERFACE_INCLUDE_DIRECTORIES})
target_include_directories(openFileManagerWindowJob PUBLIC ${CORE_ADDONS_INTERFACE_INCLUDE_DIRECTORIES})
target_include_directories(openFileManagerWindowJob PUBLIC ${Qt5CORE_INTERFACE_INCLUDE_DIRECTORIES})
target_link_libraries(openFileManagerWindowJob KF5::KIOWidgets)
target_link_libraries(openFileManagerWindowJob Qt5::Core)
install(TARGETS openFileManagerWindowJob DESTINATION ${CMAKE_INSTALL_LIBDIR})
endif()

View File

@ -1,19 +1,19 @@
target_sources(squawk PRIVATE target_sources(squawk PRIVATE
${CMAKE_CURRENT_LIST_DIR}/enums.h enums.h
${CMAKE_CURRENT_LIST_DIR}/global.cpp global.cpp
${CMAKE_CURRENT_LIST_DIR}/global.h global.h
${CMAKE_CURRENT_LIST_DIR}/exception.cpp exception.cpp
${CMAKE_CURRENT_LIST_DIR}/exception.h exception.h
${CMAKE_CURRENT_LIST_DIR}/icons.cpp icons.cpp
${CMAKE_CURRENT_LIST_DIR}/icons.h icons.h
${CMAKE_CURRENT_LIST_DIR}/message.cpp message.cpp
${CMAKE_CURRENT_LIST_DIR}/message.h message.h
${CMAKE_CURRENT_LIST_DIR}/messageinfo.cpp messageinfo.cpp
${CMAKE_CURRENT_LIST_DIR}/messageinfo.h messageinfo.h
${CMAKE_CURRENT_LIST_DIR}/order.h order.h
${CMAKE_CURRENT_LIST_DIR}/shared.h shared.h
${CMAKE_CURRENT_LIST_DIR}/utils.cpp utils.cpp
${CMAKE_CURRENT_LIST_DIR}/utils.h utils.h
${CMAKE_CURRENT_LIST_DIR}/vcard.cpp vcard.cpp
${CMAKE_CURRENT_LIST_DIR}/vcard.h vcard.h
) )

View File

@ -1,28 +1,28 @@
target_sources(squawk PRIVATE target_sources(squawk PRIVATE
${CMAKE_CURRENT_LIST_DIR}/abstractparticipant.cpp abstractparticipant.cpp
${CMAKE_CURRENT_LIST_DIR}/abstractparticipant.h abstractparticipant.h
${CMAKE_CURRENT_LIST_DIR}/account.cpp account.cpp
${CMAKE_CURRENT_LIST_DIR}/account.h account.h
${CMAKE_CURRENT_LIST_DIR}/accounts.cpp accounts.cpp
${CMAKE_CURRENT_LIST_DIR}/accounts.h accounts.h
${CMAKE_CURRENT_LIST_DIR}/contact.cpp contact.cpp
${CMAKE_CURRENT_LIST_DIR}/contact.h contact.h
${CMAKE_CURRENT_LIST_DIR}/element.cpp element.cpp
${CMAKE_CURRENT_LIST_DIR}/element.h element.h
${CMAKE_CURRENT_LIST_DIR}/group.cpp group.cpp
${CMAKE_CURRENT_LIST_DIR}/group.h group.h
${CMAKE_CURRENT_LIST_DIR}/item.cpp item.cpp
${CMAKE_CURRENT_LIST_DIR}/item.h item.h
${CMAKE_CURRENT_LIST_DIR}/messagefeed.cpp messagefeed.cpp
${CMAKE_CURRENT_LIST_DIR}/messagefeed.h messagefeed.h
${CMAKE_CURRENT_LIST_DIR}/participant.cpp participant.cpp
${CMAKE_CURRENT_LIST_DIR}/participant.h participant.h
${CMAKE_CURRENT_LIST_DIR}/presence.cpp presence.cpp
${CMAKE_CURRENT_LIST_DIR}/presence.h presence.h
${CMAKE_CURRENT_LIST_DIR}/reference.cpp reference.cpp
${CMAKE_CURRENT_LIST_DIR}/reference.h reference.h
${CMAKE_CURRENT_LIST_DIR}/room.cpp room.cpp
${CMAKE_CURRENT_LIST_DIR}/room.h room.h
${CMAKE_CURRENT_LIST_DIR}/roster.cpp roster.cpp
${CMAKE_CURRENT_LIST_DIR}/roster.h roster.h
) )

View File

@ -1,26 +1,26 @@
target_sources(squawk PRIVATE target_sources(squawk PRIVATE
${CMAKE_CURRENT_LIST_DIR}/badge.cpp badge.cpp
${CMAKE_CURRENT_LIST_DIR}/badge.h badge.h
${CMAKE_CURRENT_LIST_DIR}/comboboxdelegate.cpp comboboxdelegate.cpp
${CMAKE_CURRENT_LIST_DIR}/comboboxdelegate.h comboboxdelegate.h
${CMAKE_CURRENT_LIST_DIR}/exponentialblur.cpp exponentialblur.cpp
${CMAKE_CURRENT_LIST_DIR}/exponentialblur.h exponentialblur.h
${CMAKE_CURRENT_LIST_DIR}/feedview.cpp feedview.cpp
${CMAKE_CURRENT_LIST_DIR}/feedview.h feedview.h
${CMAKE_CURRENT_LIST_DIR}/flowlayout.cpp flowlayout.cpp
${CMAKE_CURRENT_LIST_DIR}/flowlayout.h flowlayout.h
${CMAKE_CURRENT_LIST_DIR}/image.cpp image.cpp
${CMAKE_CURRENT_LIST_DIR}/image.h image.h
${CMAKE_CURRENT_LIST_DIR}/message.cpp message.cpp
${CMAKE_CURRENT_LIST_DIR}/message.h message.h
${CMAKE_CURRENT_LIST_DIR}/messagedelegate.cpp messagedelegate.cpp
${CMAKE_CURRENT_LIST_DIR}/messagedelegate.h messagedelegate.h
${CMAKE_CURRENT_LIST_DIR}/messageline.cpp messageline.cpp
${CMAKE_CURRENT_LIST_DIR}/messageline.h messageline.h
${CMAKE_CURRENT_LIST_DIR}/progress.cpp progress.cpp
${CMAKE_CURRENT_LIST_DIR}/progress.h progress.h
${CMAKE_CURRENT_LIST_DIR}/resizer.cpp resizer.cpp
${CMAKE_CURRENT_LIST_DIR}/resizer.h resizer.h
${CMAKE_CURRENT_LIST_DIR}/shadowoverlay.cpp shadowoverlay.cpp
${CMAKE_CURRENT_LIST_DIR}/shadowoverlay.h shadowoverlay.h
) )

View File

@ -1,23 +1,23 @@
target_sources(squawk PRIVATE target_sources(squawk PRIVATE
${CMAKE_CURRENT_LIST_DIR}/account.cpp account.cpp
${CMAKE_CURRENT_LIST_DIR}/account.h account.h
${CMAKE_CURRENT_LIST_DIR}/account.ui account.ui
${CMAKE_CURRENT_LIST_DIR}/accounts.cpp accounts.cpp
${CMAKE_CURRENT_LIST_DIR}/accounts.h accounts.h
${CMAKE_CURRENT_LIST_DIR}/accounts.ui accounts.ui
${CMAKE_CURRENT_LIST_DIR}/chat.cpp chat.cpp
${CMAKE_CURRENT_LIST_DIR}/chat.h chat.h
${CMAKE_CURRENT_LIST_DIR}/conversation.cpp conversation.cpp
${CMAKE_CURRENT_LIST_DIR}/conversation.h conversation.h
${CMAKE_CURRENT_LIST_DIR}/conversation.ui conversation.ui
${CMAKE_CURRENT_LIST_DIR}/joinconference.cpp joinconference.cpp
${CMAKE_CURRENT_LIST_DIR}/joinconference.h joinconference.h
${CMAKE_CURRENT_LIST_DIR}/joinconference.ui joinconference.ui
${CMAKE_CURRENT_LIST_DIR}/newcontact.cpp newcontact.cpp
${CMAKE_CURRENT_LIST_DIR}/newcontact.h newcontact.h
${CMAKE_CURRENT_LIST_DIR}/newcontact.ui newcontact.ui
${CMAKE_CURRENT_LIST_DIR}/room.cpp room.cpp
${CMAKE_CURRENT_LIST_DIR}/room.h room.h
) )
add_subdirectory(vcard) add_subdirectory(vcard)

View File

@ -1,9 +1,9 @@
target_sources(squawk PRIVATE target_sources(squawk PRIVATE
${CMAKE_CURRENT_LIST_DIR}/emailsmodel.cpp emailsmodel.cpp
${CMAKE_CURRENT_LIST_DIR}/emailsmodel.h emailsmodel.h
${CMAKE_CURRENT_LIST_DIR}/phonesmodel.cpp phonesmodel.cpp
${CMAKE_CURRENT_LIST_DIR}/phonesmodel.h phonesmodel.h
${CMAKE_CURRENT_LIST_DIR}/vcard.cpp vcard.cpp
${CMAKE_CURRENT_LIST_DIR}/vcard.h vcard.h
${CMAKE_CURRENT_LIST_DIR}/vcard.ui vcard.ui
) )