diff --git a/CMakeLists.txt b/CMakeLists.txt index d2d892aa1..8b81d7345 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,90 +1,99 @@ cmake_minimum_required(VERSION 3.5) set(PIM_VERSION "5.12.40") project(KCalendarCore VERSION ${PIM_VERSION}) # ECM setup set(KF5_MIN_VERSION "5.60.0") find_package(ECM ${KF5_MIN_VERSION} CONFIG REQUIRED) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${KCalendarCore_SOURCE_DIR}/cmake) include(GenerateExportHeader) include(ECMGenerateHeaders) include(ECMGeneratePriFile) include(ECMSetupVersion) include(FeatureSummary) include(KDEInstallDirs) include(KDECMakeSettings) include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE) include(ECMQtDeclareLoggingCategory) +# TODO: remove for KF6 +option(KCALENDARCORE_NO_DEPRECATED_NAMESPACE "Disable deprecated KCalCore namespace" OFF) + if(POLICY CMP0053) cmake_policy(SET CMP0053 NEW) endif() set(QT_REQUIRED_VERSION "5.11.0") set(KCALENDARCORE_LIB_VERSION ${PIM_VERSION}) ecm_setup_version(PROJECT VARIABLE_PREFIX KCALCORE VERSION_HEADER "${KCalendarCore_BINARY_DIR}/kcalendarcore_version.h" PACKAGE_VERSION_FILE "${KCalendarCore_BINARY_DIR}/KF5CalendarCoreConfigVersion.cmake" SOVERSION 5 ) ########### Find packages ########### find_package(Qt5 ${QT_REQUIRED_VERSION} CONFIG REQUIRED Core Gui) set(LibIcal_MIN_VERSION "2.0") find_package(LibIcal ${LibIcal_MIN_VERSION}) set_package_properties(LibIcal PROPERTIES TYPE REQUIRED) if(LibIcal_VERSION VERSION_GREATER "2.98") set(HAVE_ICAL_3 TRUE) add_definitions(-DUSE_ICAL_3) endif() ########### CMake Config Files ########### set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5CalendarCore") configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/KF5CalendarCoreConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/KF5CalendarCoreConfig.cmake" INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} ) add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x060000) add_definitions(-DQT_NO_FOREACH) ########### Targets ########### add_subdirectory(src) if(BUILD_TESTING) find_package(Qt5 ${QT_REQUIRED_VERSION} CONFIG REQUIRED Test) add_subdirectory(autotests) endif() add_subdirectory(cmake) ########### Install Files ########### install(FILES "${CMAKE_CURRENT_BINARY_DIR}/KF5CalendarCoreConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/KF5CalendarCoreConfigVersion.cmake" DESTINATION "${CMAKECONFIG_INSTALL_DIR}" COMPONENT Devel ) install(EXPORT KF5CalendarCoreTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE KF5CalendarCoreTargets.cmake NAMESPACE KF5:: ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kcalendarcore_version.h DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5} COMPONENT Devel ) +if (NOT KCALENDARCORE_NO_DEPRECATED_NAMESPACE) + install(FILES + ${CMAKE_CURRENT_BINARY_DIR}/kcalendarcore_version.h + DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5} COMPONENT Devel RENAME kcalcore_version.h + ) +endif() install(FILES kcalendarcore.renamecategories kcalendarcore.categories DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}) feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 55c6b3541..02dad3b0a 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,155 +1,153 @@ ########### next target ############### set(kcalcore_LIB_SRCS alarm.cpp attachment.cpp attendee.cpp calendar.cpp calfilter.cpp calformat.cpp calstorage.cpp compat.cpp customproperties.cpp duration.cpp event.cpp exceptions.cpp filestorage.cpp freebusy.cpp freebusycache.cpp freebusyperiod.cpp icalformat.cpp icalformat_p.cpp icaltimezones.cpp incidence.cpp incidencebase.cpp journal.cpp memorycalendar.cpp occurrenceiterator.cpp period.cpp person.cpp recurrence.cpp recurrencerule.cpp schedulemessage.cpp sorting.cpp todo.cpp utils.cpp vcalformat.cpp visitor.cpp ) ecm_qt_declare_logging_category(kcalcore_LIB_SRCS HEADER kcalendarcore_debug.h IDENTIFIER KCALCORE_LOG CATEGORY_NAME org.kde.pim.kcalcore) add_library(KF5CalendarCore ${kcalcore_LIB_SRCS}) generate_export_header(KF5CalendarCore BASE_NAME kcalendarcore) add_library(KF5::CalendarCore ALIAS KF5CalendarCore) # backward compatibility with the old name -# TODO: remove for KF6 -option(KCALENDARCORE_NO_DEPRECATED_NAMESPACE "Disable deprecated KCalCore namespace" OFF) if (NOT KCALENDARCORE_NO_DEPRECATED_NAMESPACE) target_compile_definitions(KF5CalendarCore INTERFACE "-DKCalCore=KCalendarCore") endif() target_include_directories(KF5CalendarCore INTERFACE "$") target_include_directories(KF5CalendarCore PUBLIC "$") target_link_libraries(KF5CalendarCore PUBLIC Qt5::Core PRIVATE Qt5::Gui LibIcal ) set_target_properties(KF5CalendarCore PROPERTIES VERSION ${KCALCORE_VERSION_STRING} SOVERSION ${KCALCORE_SOVERSION} EXPORT_NAME CalendarCore ) install(TARGETS KF5CalendarCore EXPORT KF5CalendarCoreTargets ${KF5_INSTALL_TARGETS_DEFAULT_ARGS}) ########### Generate Headers ############### set(kcalendarcore_headers Alarm Attachment Attendee CalFilter CalFormat CalStorage Calendar CustomProperties Duration Event Exceptions FileStorage FreeBusy FreeBusyCache FreeBusyPeriod ICalFormat Incidence IncidenceBase Journal MemoryCalendar OccurrenceIterator Period Person Recurrence RecurrenceRule ScheduleMessage Sorting Todo VCalFormat Visitor ) ecm_generate_headers(KCalendarCore_CamelCase_HEADERS HEADER_NAMES ${kcalendarcore_headers} PREFIX KCalendarCore REQUIRED_HEADERS KCalendarCore_HEADERS ) if (NOT KCALENDARCORE_NO_DEPRECATED_NAMESPACE) ecm_generate_headers(KCalCore_CamelCase_HEADERS HEADER_NAMES ${kcalendarcore_headers} PREFIX KCalCore REQUIRED_HEADERS KCalCore_HEADERS ) endif() ########### install files ############### install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kcalendarcore_export.h ${KCalendarCore_HEADERS} DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5}/KCalendarCore/kcalendarcore COMPONENT Devel ) install(FILES ${KCalendarCore_CamelCase_HEADERS} DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5}/KCalendarCore/KCalendarCore COMPONENT Devel ) if (NOT KCALENDARCORE_NO_DEPRECATED_NAMESPACE) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kcalendarcore_export.h ${KCalCore_HEADERS} DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5}/KCalendarCore/kcalcore COMPONENT Devel ) install(FILES ${KCalCore_CamelCase_HEADERS} DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5}/KCalendarCore/KCalCore COMPONENT Devel ) endif() ecm_generate_pri_file(BASE_NAME KCalendarCore LIB_NAME KF5CalendarCore DEPS "Core" FILENAME_VAR PRI_FILENAME INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR_KF5}/KCalendarCore/KCalendarCore) install(FILES ${PRI_FILENAME} DESTINATION ${ECM_MKSPECS_INSTALL_DIR})