diff --git a/CMakeLists.txt b/CMakeLists.txt index 400c4768..9ef8d33c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,101 +1,99 @@ cmake_minimum_required(VERSION 3.5) set(KF5_VERSION "5.68.0") # handled by release scripts set(KF5_DEP_VERSION "5.67.0") # handled by release scripts project(KContacts VERSION ${KF5_VERSION}) # ECM setup include(FeatureSummary) find_package(ECM 5.67.0 NO_MODULE) set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://commits.kde.org/extra-cmake-modules") feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${KContacts_SOURCE_DIR}/cmake) set(CMAKE_AUTORCC ON) set(REQUIRED_QT_VERSION 5.12.0) include(KDEInstallDirs) include(KDECMakeSettings) include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE) include(GenerateExportHeader) include(ECMGenerateHeaders) include(ECMGeneratePriFile) include(ECMSetupVersion) include(ECMQtDeclareLoggingCategory) include(ECMAddQch) option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF) add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)") set(KCONTACTS_LIB_VERSION ${KF5_VERSION}) ecm_setup_version(PROJECT VARIABLE_PREFIX KContacts VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kcontacts_version.h" PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5ContactsConfigVersion.cmake" SOVERSION 5 ) ########### Find packages ########### find_package(Qt5 ${REQUIRED_QT_VERSION} REQUIRED COMPONENTS Gui) find_package(KF5 ${KF5_DEP_VERSION} REQUIRED COMPONENTS CoreAddons I18n Config Codecs) find_package(IsoCodes MODULE) set_package_properties("IsoCodes" PROPERTIES PURPOSE "Needed for country name translations." TYPE RUNTIME) ########### Targets ########### add_definitions(-DTRANSLATION_DOMAIN=\"kcontacts5\") if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/po") ki18n_install(po) endif() add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050d00) add_definitions(-DKF_DISABLE_DEPRECATED_BEFORE_AND_AT=0x054300) add_definitions(-DQT_NO_FOREACH) add_subdirectory(src) if(BUILD_TESTING) add_subdirectory(autotests) add_subdirectory(tests) endif() ########### CMake Config Files ########### set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5Contacts") if (BUILD_QCH) ecm_install_qch_export( TARGETS KF5Contacts_QCH FILE KF5ContactsQchTargets.cmake DESTINATION "${CMAKECONFIG_INSTALL_DIR}" COMPONENT Devel ) set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KF5ContactsQchTargets.cmake\")") endif() configure_package_config_file( "${CMAKE_CURRENT_SOURCE_DIR}/KF5ContactsConfig.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/KF5ContactsConfig.cmake" INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} ) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/KF5ContactsConfig.cmake" "${CMAKE_CURRENT_BINARY_DIR}/KF5ContactsConfigVersion.cmake" DESTINATION "${CMAKECONFIG_INSTALL_DIR}" COMPONENT Devel ) install(EXPORT KF5ContactsTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE KF5ContactsTargets.cmake NAMESPACE KF5::) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kcontacts_version.h DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5} COMPONENT Devel ) -install( FILES kcontacts.renamecategories kcontacts.categories DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR} ) - feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) diff --git a/kcontacts.categories b/kcontacts.categories deleted file mode 100644 index fc7058e7..00000000 --- a/kcontacts.categories +++ /dev/null @@ -1 +0,0 @@ -org.kde.pim.kcontacts kcontacts (pim lib) IDENTIFIER [KCONTACTS_LOG] diff --git a/kcontacts.renamecategories b/kcontacts.renamecategories deleted file mode 100644 index ec463ab7..00000000 --- a/kcontacts.renamecategories +++ /dev/null @@ -1 +0,0 @@ -log_kcontacts org.kde.pim.kcontacts diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 457a9765..f5e7cfd9 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,158 +1,171 @@ set(vcardparser_SRCS vcardparser/vcard.cpp vcardparser/vcardline.cpp vcardparser/vcardparser.cpp ) set(kcontacts_SRCS address.cpp addressee.cpp addresseehelper.cpp calendarurl.cpp contactgroup.cpp contactgrouptool.cpp countrytoisomap_p.cpp email.cpp field.cpp geo.cpp gender.cpp impp.cpp key.cpp lang.cpp ldif.cpp phonenumber.cpp picture.cpp related.cpp resourcelocatorurl.cpp secrecy.cpp sound.cpp timezone.cpp vcarddrag.cpp vcardtool.cpp fieldgroup.cpp title.cpp nickname.cpp role.cpp note.cpp org.cpp clientpidmap.cpp ${vcardparser_SRCS} kcontacts.qrc improtocols/improtocols.qrc ) set(kcontacts_converter_SRCS converter/vcardconverter.cpp converter/ldifconverter.cpp ) -ecm_qt_declare_logging_category(kcontacts_converter_SRCS HEADER kcontacts_debug.h IDENTIFIER KCONTACTS_LOG CATEGORY_NAME org.kde.pim.kcontacts) +ecm_qt_declare_logging_category(kcontacts_converter_SRCS + HEADER kcontacts_debug.h + IDENTIFIER KCONTACTS_LOG + CATEGORY_NAME org.kde.pim.kcontacts + OLD_CATEGORY_NAMES log_kcontacts + DESCRIPTION "kcontacts (pim lib)" + EXPORT KCONTACTS +) add_library(KF5Contacts ${kcontacts_SRCS} ${kcontacts_converter_SRCS}) generate_export_header(KF5Contacts BASE_NAME kcontacts) add_library(KF5::Contacts ALIAS KF5Contacts) target_include_directories(KF5Contacts INTERFACE "$") set(KContacts_BUILD_INCLUDE_DIRS ${KContacts_SOURCE_DIR}/src ${KContacts_BINARY_DIR}/src ${KContacts_SOURCE_DIR}/src/vcardparser ) target_include_directories(KF5Contacts PUBLIC "$") target_link_libraries(KF5Contacts PUBLIC Qt5::Core PRIVATE KF5::CoreAddons Qt5::Gui KF5::ConfigCore KF5::I18n KF5::Codecs # for the vcard parser ) set_target_properties(KF5Contacts PROPERTIES VERSION ${KContacts_VERSION} SOVERSION ${KContacts_SOVERSION} EXPORT_NAME Contacts ) install(TARGETS KF5Contacts EXPORT KF5ContactsTargets ${KF5_INSTALL_TARGETS_DEFAULT_ARGS}) ecm_generate_headers(KContacts_CamelCase_HEADERS HEADER_NAMES Address Addressee AddresseeList CalendarUrl ContactGroup ContactGroupTool Email Field Geo Gender Key Lang Impp PhoneNumber Picture Related ResourceLocatorUrl Secrecy Sound TimeZone Title Role Note Org NickName VCardDrag FieldGroup ClientPidMap PREFIX KContacts REQUIRED_HEADERS KContacts_HEADERS ) add_subdirectory(converter) add_subdirectory(generator) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kcontacts_export.h ${KContacts_HEADERS} DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5}/KContacts/kcontacts COMPONENT Devel ) install(FILES ${KContacts_CamelCase_HEADERS} DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5}/KContacts/KContacts COMPONENT Devel ) +ecm_qt_install_logging_categories( + EXPORT KCONTACTS + FILE kcontacts.categories + DESTINATION "${KDE_INSTALL_LOGGINGCATEGORIESDIR}" +) + ecm_generate_pri_file(BASE_NAME KContacts LIB_NAME KF5Contacts DEPS "CoreAddons" FILENAME_VAR PRI_FILENAME INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR_KF5}/KContacts) install(FILES ${PRI_FILENAME} DESTINATION ${ECM_MKSPECS_INSTALL_DIR}) if(BUILD_QCH) ecm_add_qch( KF5Contacts_QCH NAME KContacts BASE_NAME KF5Contacts VERSION ${KContacts_VERSION} ORG_DOMAIN org.kde SOURCES # using only public headers, to cover only public API ${KContacts_HEADERS} "${CMAKE_SOURCE_DIR}/docs/AddressFormat.md" MD_MAINPAGE "${CMAKE_SOURCE_DIR}/README.md" LINK_QCHS Qt5Core_QCH INCLUDE_DIRS ${KContacts_BUILD_INCLUDE_DIRS} BLANK_MACROS KCONTACTS_EXPORT TAGFILE_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR} QCH_INSTALL_DESTINATION ${KDE_INSTALL_QTQCHDIR} COMPONENT Devel ) endif()