diff --git a/clients/desktop/CMakeLists.txt b/clients/desktop/CMakeLists.txt index 3b5e1e44..67543f2d 100644 --- a/clients/desktop/CMakeLists.txt +++ b/clients/desktop/CMakeLists.txt @@ -1,167 +1,175 @@ IF(POLICY CMP0017) CMAKE_POLICY(SET CMP0017 NEW) ENDIF(POLICY CMP0017) IF(POLICY CMP0022) CMAKE_POLICY(SET CMP0022 NEW) ENDIF(POLICY CMP0022) IF(POLICY CMP0063) CMAKE_POLICY(SET CMP0063 NEW) ENDIF(POLICY CMP0063) SET(QT_MIN_VERSION "5.2.0") # It doesn't work in sandboxes IF (NOT ENABLE_SINGLE_INSTANCE) ADD_DEFINITIONS(-DDISABLE_KDBUS_SERVICE=1) ENDIF() +IF(${CMAKE_SYSTEM_NAME} MATCHES "Android") + SET(OS_ANDROID 1) +ENDIF() + +IF(DEFINED OS_ANDROID) + SET(ENABLE_NOTIFICATIONS OFF) +ENDIF() + SET(CMAKE_CXX_STANDARD 14) set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) #Make sure it can access DBUS autogenerated files INCLUDE_DIRECTORIES(SYSTEM ${ringqt_INCLUDE_DIR}) INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src) IF(${CMAKE_BUILD_TYPE} MATCHES Release) MESSAGE("NO DEBUG OUTPUT") ADD_DEFINITIONS( -DQT_NO_DEBUG_OUTPUT) ENDIF(${CMAKE_BUILD_TYPE} MATCHES Release) IF(NOT ENABLE_NOTIFICATIONS) ADD_DEFINITIONS(-DDISABLE_NOTIFICATION=1) ENDIF() SET( ring_kde_SRCS main.cpp cmd.cpp ringapplication.cpp ) QT5_ADD_RESOURCES(ring_kde_SRCS appicon.qrc) # add_subdirectory( test ) #Enable again some day, it cause compile problems for some users IF(NOT (${ENABLE_VIDEO} MATCHES false)) SET(ENABLE_VIDEO 1 CACHE BOOLEAN "Enable video") ADD_DEFINITIONS( -DENABLE_VIDEO=true ) SET ( config_ui_files ${config_ui_files} conf/dlgvideobase.ui ) ENDIF(NOT (${ENABLE_VIDEO} MATCHES false)) IF(${DISABLE_UNIQUE_APPLICATION} MATCHES true) MESSAGE("KUniqueApplication disabled") SET(DISABLE_UNIQUE_APPLICATION 1 CACHE BOOLEAN "Disable KUniqueApplication") ADD_DEFINITIONS( -DDISABLE_UNIQUE_APPLICATION=true ) ENDIF(${DISABLE_UNIQUE_APPLICATION} MATCHES true) ki18n_wrap_ui(ring_kde_SRCS ${config_ui_files} ) IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") ADD_EXECUTABLE(ring-kde MACOSX_BUNDLE ${ring_kde_SRCS}) set_source_files_properties( ../data/ring-kdeui.rc PROPERTIES MACOSX_PACKAGE_LOCATION Resources ) file( COPY ../data/ring-kdeui.rc DESTINATION "ring-kde.app/Contents/Resources/" ) ELSE() ADD_EXECUTABLE(ring-kde ${ring_kde_SRCS}) ENDIF() IF(NOT ${ENABLE_STATIC} MATCHES false) FIND_PACKAGE(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED DBus) INCLUDE_DIRECTORIES(SYSTEM ${Qt5DBus_INCLUDE_DIRS} ) LINK_DIRECTORIES(${Qt5DBus_LIBRARY_DIRS} ) ADD_DEFINITIONS(${Qt5DBus_CFLAGS}) IF(NOT DEFINED OS_ANDROID) TARGET_LINK_LIBRARIES(ring-kde -lpthread ) ENDIF() TARGET_LINK_LIBRARIES(ring-kde ${ringqt_LIBRARY_STATIC} ) IF(NOT ${ENABLE_LIBWRAP}) TARGET_LINK_LIBRARIES(ring-kde ${Qt5DBus_LIBRARIES} ) ENDIF() ELSE() TARGET_LINK_LIBRARIES(ring-kde ${ringqt_LIBRARY_DYNAMIC}) ENDIF() QT5_ADD_DBUS_ADAPTOR(ring_kde_SRCS ../data/org.kde.kuiserver.xml cmd.h Cmd ) TARGET_LINK_LIBRARIES(ring-kde jamiwizard jamicallview jamidialview jamitimelineview jamiphotoselector jamicanvasindicator desktopview jamicontactview jamiaccountview libqmlwidgets kquickitemviews jamikdeintegration jamivideoview jamitroubleshooting jamihistoryview jamichatview jamitimelinebase jamiaudioplayer # RingQt ringqtquick # Qt5 Qt5::Widgets Qt5::Core Qt5::Gui Qt5::Svg Qt5::PrintSupport # KF5 KF5::I18n KF5::WidgetsAddons KF5::ConfigCore KF5::ConfigGui KF5::DBusAddons KF5::XmlGui KF5::IconThemes KF5::Crash KF5::GlobalAccel KF5::Declarative KF5::Kirigami2 ) IF(ENABLE_NOTIFICATIONS) TARGET_LINK_LIBRARIES(ring-kde jaminotification # KF5 KF5::Notifications KF5::NotifyConfig ) ENDIF() IF (Qt5TextToSpeech_FOUND) TARGET_LINK_LIBRARIES(ring-kde Qt5::TextToSpeech ) ENDIF() ########### install files ############### INSTALL( TARGETS ring-kde DESTINATION ${BIN_INSTALL_DIR}) diff --git a/src/jamikdeintegration/CMakeLists.txt b/src/jamikdeintegration/CMakeLists.txt index ec50f15b..cd8391ea 100644 --- a/src/jamikdeintegration/CMakeLists.txt +++ b/src/jamikdeintegration/CMakeLists.txt @@ -1,208 +1,217 @@ cmake_minimum_required(VERSION 3.0) project(jamikdeintegration) if(POLICY CMP0063) CMAKE_POLICY(SET CMP0063 NEW) endif(POLICY CMP0063) +IF(${CMAKE_SYSTEM_NAME} MATCHES "Android") + SET(OS_ANDROID 1) +ENDIF() + +IF(DEFINED OS_ANDROID) + SET(ENABLE_NOTIFICATIONS OFF) +ENDIF() + find_package(ECM 1.1.0 REQUIRED NO_MODULE) list(APPEND CMAKE_MODULE_PATH "${ECM_MODULE_PATH}") #FIXME # find_package(KF5 QUIET COMPONENTS # Akonadi # AkonadiContact # Contacts # ) include(ECMInstallIcons) include(ECMOptionalAddSubdirectory) include(CMakePackageConfigHelpers) include(KDEInstallDirs) include(KDECMakeSettings) include(KDECompilerSettings) SET(CMAKE_C_VISIBILITY_PRESET hidden) SET(CMAKE_CXX_VISIBILITY_PRESET hidden) SET(CMAKE_VISIBILITY_INLINES_HIDDEN 1) # When used with `add_subdirectory`, assume it is a static Qt plugin get_directory_property(USES_ADD_SUBDIRECTORY PARENT_DIRECTORY) if(USES_ADD_SUBDIRECTORY) set(BUILD_SHARED_LIBS OFF) endif() if(NOT BUILD_SHARED_LIBS) set(ENABLE__STATIC_PLUGIN 1) else() set(ENABLE__STATIC_PLUGIN 0) endif() set(CMAKE_AUTOMOC ON) set(CMAKE_AUTORCC ON) set(CMAKE_CXX_STANDARD 14) if(ENABLE__STATIC_PLUGIN) add_definitions(-DQT_PLUGIN) add_definitions(-DQT_STATICPLUGIN=1) add_definitions(-DJAMIKDEINTEGRATION_USE_STATIC_PLUGIN=1) endif(ENABLE__STATIC_PLUGIN) find_package(Qt5 CONFIG REQUIRED Core Gui Quick Widgets QuickControls2 ) set(GENERIC_LIB_VERSION "1.0.0") # Pack the icons shared by various components ADD_SUBDIRECTORY( sharedassets ) #File to compile set( jamikdeintegration_LIB_SRCS src/colorinterface.cpp src/shortcutinterface.cpp src/actioninterface.cpp src/fileproverderinterface.cpp src/pixmapinterface.cpp src/serializationinterface.cpp src/actioncollection.cpp src/windowevent.cpp src/cmiconengine.cpp src/personiconengine.cpp src/plugin.cpp ) if(ENABLE_NOTIFICATIONS) set( jamikdeintegration_LIB_SRCS + ${jamikdeintegration_LIB_SRCS} src/systray.cpp ) endif() if(Qt5TextToSpeech_FOUND) set( jamikdeintegration_LIB_SRCS ${jamikdeintegration_LIB_SRCS} accessibility.cpp ) endif() # if(KF5_AKONADI_FOUND AND KF5_AKONADICONTACT_FOUND AND KF5_CONTACTS_FOUND) # set(AKONADI_FOUND 1) # endif() # if( ${AKONADI_FOUND} ) # set(jamikdeintegration_LIB_SRCS # ${jamikdeintegration_LIB_SRCS} # akonadibackend.cpp # ) # endif() include_directories(SYSTEM ${ringqt_INCLUDE_DIR}) if(NOT ENABLE_NOTIFICATIONS) add_definitions(-DDISABLE_NOTIFICATION=1) endif() kconfig_add_kcfg_files (jamikdeintegration_LIB_SRCS kcfg_settings.kcfgc) set(AUTOMOC_MOC_OPTIONS -Muri=org.kde.ringkde.jamikdeintegration) add_library(jamikdeintegration ${jamikdeintegration_LIB_SRCS} ) target_link_libraries( jamikdeintegration # Project ringqt ringqtquick # Qt Qt5::Core Qt5::Gui Qt5::Quick Qt5::Widgets Qt5::QuickControls2 # KF5 KF5::I18n KF5::ConfigCore KF5::ConfigGui KF5::ConfigWidgets # KColorScheme KF5::XmlGui # KSortcutdialog # (DESKTOP) KF5::GlobalAccel # (DESKTOP) ) if(ENABLE_NOTIFICATIONS) target_link_libraries( jamikdeintegration KF5::NotifyConfig # the notification dialog # (DESKTOP) KF5::Notifications # the Systray ) endif() #FIXME # if ( ${AKONADI_FOUND} ) # target_link_libraries( jamikdeintegration # KF5::AkonadiCore # KF5::AkonadiContact # KF5::Contacts # ) # endif() set(jamikdeintegration_EXPORT_HDRS src/actioncollection.h src/windowevent.h src/plugin.h ) # Configure the target config set(jamikdeintegration_CONFIG_PATH "${CMAKE_CURRENT_BINARY_DIR}/JamiKDEIntegrationConfig.cmake") if(USES_ADD_SUBDIRECTORY) set(JamiKDEIntegration_DIR ${CMAKE_CURRENT_BINARY_DIR} PARENT_SCOPE) endif() configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/JamiKDEIntegrationConfig.cmake.in" ${jamikdeintegration_CONFIG_PATH} INSTALL_DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/cmake/JamiKDEIntegration/ PATH_VARS INCLUDE_INSTALL_DIR ) install( FILES ${jamikdeintegration_CONFIG_PATH} DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/cmake/JamiKDEIntegration/ COMPONENT Devel ) # Create the target target_include_directories(jamikdeintegration PUBLIC # $ $ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/ ) set_target_properties(jamikdeintegration PROPERTIES PUBLIC_HEADER "${jamikdeintegration_EXPORT_HDRS}" ) export(TARGETS jamikdeintegration FILE "${PROJECT_BINARY_DIR}/cmake/JamiKDEIntegrationTargets.cmake" ) install(TARGETS jamikdeintegration EXPORT JamiKDEIntegrationTargets LIBRARY DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}" COMPONENT jamikdeintegration ARCHIVE DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin COMPONENT Devel ) install(EXPORT JamiKDEIntegrationTargets DESTINATION ${CMAKE_INSTALL_FULL_LIBDIR}/cmake/JamiKDEIntegration COMPONENT Devel ) install(FILES ring-kde.kcfg DESTINATION ${KCFG_INSTALL_DIR})