diff --git a/kdevplatform/CMakeLists.txt b/kdevplatform/CMakeLists.txt index 9c1e693ce7..c47a3574d2 100644 --- a/kdevplatform/CMakeLists.txt +++ b/kdevplatform/CMakeLists.txt @@ -1,94 +1,94 @@ # kdevplatform version set(KDEVPLATFORM_VERSION_MAJOR 5) set(KDEVPLATFORM_VERSION_MINOR 1) set(KDEVPLATFORM_VERSION_PATCH 42) set(KDEVPLATFORM_VERSION "${KDEVPLATFORM_VERSION_MAJOR}.${KDEVPLATFORM_VERSION_MINOR}.${KDEVPLATFORM_VERSION_PATCH}") # Increase this to reset incompatible item-repositories set(KDEV_ITEMREPOSITORY_VERSION 87) -# library version / SO version -set(KDEVPLATFORM_LIB_SOVERSION 52) - set(KDevPlatform_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) set(KDevPlatform_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}) + set(CMAKE_MODULE_PATH ${KDevPlatform_SOURCE_DIR}/cmake/modules ${ECM_MODULE_PATH}) +set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KDevPlatform") include(KDevPlatformMacros) include(KDevPlatformMacrosInternal) find_package(Grantlee5 CONFIG) set_package_properties(Grantlee5 PROPERTIES PURPOSE "Grantlee templating library, needed for file templates" URL "http://www.grantlee.org/" TYPE REQUIRED) set(Boost_ADDITIONAL_VERSIONS 1.39.0 1.39) find_package(Boost 1.35.0) set_package_properties(Boost PROPERTIES PURPOSE "Boost libraries for enabling the classbrowser" URL "http://www.boost.org" TYPE REQUIRED) configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/config-kdevplatform.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kdevplatform.h ) include_directories(${KDevPlatform_SOURCE_DIR} ${KDevPlatform_BINARY_DIR}) +if(BUILD_TESTING) + set(KDEV_FIND_DEP_QT5TEST "find_dependency(Qt5Test \"${QT_MIN_VERSION}\")") +endif() +configure_package_config_file("${CMAKE_CURRENT_SOURCE_DIR}/KDevPlatformConfig.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/KDevPlatformConfig.cmake" + INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} +) + +ecm_setup_version(${KDEVPLATFORM_VERSION_MAJOR}.${KDEVPLATFORM_VERSION_MINOR}.${KDEVPLATFORM_VERSION_PATCH} + VARIABLE_PREFIX KDEVPLATFORM + VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kdevplatform_version.h" + PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KDevPlatformConfigVersion.cmake" + # E.g. for KDevelop 5.2.0 => SOVERSION 52 (we only promise ABI compatibility between patch version updates) + SOVERSION ${KDEVPLATFORM_VERSION_MAJOR}${KDEVPLATFORM_VERSION_MINOR} # This sets KDEVPLATFORM_SOVERSION +) + string(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_TOLOWER) if(CMAKE_BUILD_TYPE_TOLOWER MATCHES "debug" OR CMAKE_BUILD_TYPE_TOLOWER STREQUAL "") set(COMPILER_OPTIMIZATIONS_DISABLED TRUE) else() set(COMPILER_OPTIMIZATIONS_DISABLED FALSE) endif() add_subdirectory(sublime) add_subdirectory(interfaces) add_subdirectory(project) add_subdirectory(language) add_subdirectory(shell) add_subdirectory(util) add_subdirectory(outputview) add_subdirectory(vcs) add_subdirectory(pics) add_subdirectory(debugger) add_subdirectory(documentation) add_subdirectory(serialization) add_subdirectory(template) if(BUILD_TESTING) add_subdirectory(tests) endif() -set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KDevPlatform") - -if(BUILD_TESTING) - set(KDEV_FIND_DEP_QT5TEST "find_dependency(Qt5Test \"${QT_MIN_VERSION}\")") -endif() -configure_package_config_file("${CMAKE_CURRENT_SOURCE_DIR}/KDevPlatformConfig.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/KDevPlatformConfig.cmake" - INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} -) - -ecm_setup_version(${KDEVPLATFORM_VERSION_MAJOR}.${KDEVPLATFORM_VERSION_MINOR}.${KDEVPLATFORM_VERSION_PATCH} - VARIABLE_PREFIX KDEVPLATFORM - VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kdevplatform_version.h" - PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KDevPlatformConfigVersion.cmake" - SOVERSION ${KDEVPLATFORM_LIB_SOVERSION}) install( FILES "${KDevPlatform_BINARY_DIR}/kdevplatform_version.h" "${KDevPlatform_BINARY_DIR}/config-kdevplatform.h" DESTINATION "${KDE_INSTALL_INCLUDEDIR}/kdevplatform" ) install( FILES "${KDevPlatform_BINARY_DIR}/KDevPlatformConfig.cmake" "${KDevPlatform_BINARY_DIR}/KDevPlatformConfigVersion.cmake" cmake/modules/KDevPlatformMacros.cmake DESTINATION "${CMAKECONFIG_INSTALL_DIR}" ) install( EXPORT KDevPlatformTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" NAMESPACE KDev:: FILE KDevPlatformTargets.cmake ) # kdebugsettings file install( FILES kdevplatform.categories DESTINATION ${KDE_INSTALL_CONFDIR} ) diff --git a/kdevplatform/cmake/modules/KDevPlatformMacrosInternal.cmake b/kdevplatform/cmake/modules/KDevPlatformMacrosInternal.cmake index 07630c895a..be5b21af80 100644 --- a/kdevplatform/cmake/modules/KDevPlatformMacrosInternal.cmake +++ b/kdevplatform/cmake/modules/KDevPlatformMacrosInternal.cmake @@ -1,47 +1,47 @@ # # KDevelop Platform Private Macros # # The following macros are defined here: # # KDEVPLATFORM_ADD_LIBRARY( SOURCES [ [...]] ) # Use this to add libraries part of the KDevPlatform # # Copyright 2007 Andreas Pakulat # Redistribution and use is allowed according to the terms of the BSD license. include(CMakeParseArguments) function(kdevplatform_add_library target) set(options) set(oneValueArgs) set(multiValueArgs SOURCES) cmake_parse_arguments(KDEV_ADD_LIBRARY "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) string(REPLACE "KDevPlatform" "" shortTargetName ${target}) if (${shortTargetName} STREQUAL ${target}) message(FATAL_ERROR "Target passed to kdevplatform_add_library needs to start with \"KDevPlatform\", was \"${target}\"") endif() string(TOLOWER ${shortTargetName} shortTargetNameToLower) add_library(${target} ${KDEV_ADD_LIBRARY_SOURCES}) add_library(KDev::${shortTargetName} ALIAS ${target}) generate_export_header(${target} EXPORT_FILE_NAME ${shortTargetNameToLower}export.h) target_include_directories(${target} INTERFACE "$" "$" "$" "$" # useful for the "something.export.h" includes ) set_target_properties(${target} PROPERTIES VERSION ${KDEVPLATFORM_VERSION} - SOVERSION ${KDEVPLATFORM_LIB_SOVERSION} + SOVERSION ${KDEVPLATFORM_SOVERSION} EXPORT_NAME ${shortTargetName} ) install(TARGETS ${target} EXPORT KDevPlatformTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${shortTargetNameToLower}export.h DESTINATION ${KDE_INSTALL_INCLUDEDIR}/kdevplatform/${shortTargetNameToLower} COMPONENT Devel) endfunction()