Warning, /sdk/kommit/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 cmake_minimum_required(VERSION 3.16)
0002 
0003 project(kommit)
0004 
0005 set(PROJECT_VERSION_MAJOR 1)
0006 set(PROJECT_VERSION_MINOR 4)
0007 set(PROJECT_VERSION_PATCH 0)
0008 
0009 set (RELEASE_SERVICE_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
0010 
0011 set(LIBKOMMIT_LIB_VERSION "${RELEASE_SERVICE_VERSION}")
0012 set(LIBKOMMIT_LIB_SOVERSION "0")
0013 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
0014 
0015 #find_package(git2 REQUIRED)
0016 find_package(PkgConfig REQUIRED)
0017 pkg_check_modules(LIBGIT2 "libgit2>=1.0" REQUIRED IMPORTED_TARGET)
0018 
0019 
0020 add_definitions(-DGK_VERSION="${RELEASE_SERVICE_VERSION}")
0021 set(KF_MIN_VERSION "5.90")
0022 set(QT_MIN_VERSION 5.15.2)
0023 set(KDE_COMPILERSETTINGS_LEVEL "5.82")
0024 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
0025 
0026 #find_package(git2 REQUIRED)
0027 find_package(PkgConfig REQUIRED)
0028 pkg_check_modules(LIBGIT2 "libgit2>=1.0" REQUIRED IMPORTED_TARGET)
0029 
0030 find_package(ECM ${KF_MIN_VERSION} REQUIRED NO_MODULE)
0031 set(
0032     CMAKE_MODULE_PATH
0033     ${ECM_MODULE_PATH}
0034     ${CMAKE_CURRENT_SOURCE_DIR}/cmake
0035 )
0036 
0037 include(KDEInstallDirs)
0038 include(KDECompilerSettings NO_POLICY_SCOPE)
0039 include(KDECMakeSettings NO_POLICY_SCOPE)
0040 include(FeatureSummary)
0041 
0042 include(ECMInstallIcons)
0043 include(ECMQtDeclareLoggingCategory)
0044 include(ECMAddAppIcon)
0045 include(ECMSetupVersion)
0046 include(ECMAddTests)
0047 include(GenerateExportHeader)
0048 include(KDEGitCommitHooks)
0049 include(KDEClangFormat)
0050 include(ECMDeprecationSettings)
0051 if (QT_MAJOR_VERSION STREQUAL "6")
0052     set(QT_REQUIRED_VERSION "6.4.0")
0053     set(KF_MIN_VERSION "5.240.0")
0054     set(KF_MAJOR_VERSION "6")
0055 else()
0056     set(KF_MAJOR_VERSION "5")
0057 endif()
0058 
0059 set (CMAKE_CXX_STANDARD 17)
0060 
0061 find_package(
0062     Qt${QT_MAJOR_VERSION} ${QT_MIN_VERSION}
0063     CONFIG REQUIRED
0064         Core
0065         Gui
0066         Widgets
0067         Concurrent
0068 )
0069 
0070 if (QT_MAJOR_VERSION STREQUAL "6")
0071     find_package(Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED Core5Compat)
0072 endif()
0073 
0074 find_package(
0075     KF${KF_MAJOR_VERSION} ${KF_MIN_VERSION}
0076     REQUIRED COMPONENTS
0077         ConfigWidgets
0078         CoreAddons
0079         Crash
0080         DBusAddons
0081         DocTools
0082         I18n
0083         XmlGui
0084         KIO
0085         TextWidgets
0086         TextEditor
0087         SyntaxHighlighting
0088 )
0089 find_package(DolphinVcs REQUIRED)
0090 
0091 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
0092 
0093 add_definitions(-DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT)
0094 add_definitions(-DQT_NO_CAST_TO_ASCII)
0095 add_definitions(-DQT_NO_URL_CAST_FROM_STRING)
0096 add_definitions(-DQT_NO_CAST_FROM_BYTEARRAY)
0097 add_definitions(-DQT_NO_FOREACH)
0098 #add_definitions(-DQT_NO_CAST_FROM_ASCII)
0099 
0100 ecm_set_disabled_deprecation_versions(QT 5.15.2
0101     )
0102 
0103 
0104 option(USE_UNITY_CMAKE_SUPPORT "Use UNITY cmake support (speedup compile time)" OFF)
0105 
0106 set(COMPILE_WITH_UNITY_CMAKE_SUPPORT OFF)
0107 if (USE_UNITY_CMAKE_SUPPORT)
0108     set(COMPILE_WITH_UNITY_CMAKE_SUPPORT ON)
0109 endif()
0110 
0111 if(BUILD_TESTING)
0112     find_package(Qt${QT_MAJOR_VERSION} ${REQUIRED_QT_VERSION} REQUIRED COMPONENTS Test)
0113     add_definitions(-DBUILD_TESTING)
0114 endif(BUILD_TESTING)
0115 
0116 
0117 if(KF${KF_MAJOR_VERSION}DocTools_FOUND) # For the moment on kf6 it doesn't build depend against deprecated &kf5
0118     add_subdirectory(doc)
0119     kdoctools_install(po)
0120 else()
0121 
0122     message(WARNING "DocTools not found. NEED TO FIX IT IN QT6")
0123 endif()
0124 
0125 add_subdirectory(icons)
0126 add_subdirectory(src)
0127 #add_subdirectory(autotests)
0128 if (UNIX)
0129     add_subdirectory(dolphinplugins)
0130 endif (UNIX)
0131 
0132 
0133 ecm_qt_install_logging_categories(
0134     EXPORT KOMMIT
0135     FILE kommit.categories
0136     DESTINATION ${KDE_INSTALL_LOGGINGCATEGORIESDIR}
0137 )
0138 
0139 if (KOMMIT_BUILD_DIR)
0140     file(WRITE ${KOMMIT_BUILD_DIR}/version "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
0141     message("-- Version in file ${KOMMIT_BUILD_DIR}/version saved")
0142 endif()
0143 
0144 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)
0145 ki18n_install(po)
0146 
0147 #CPack
0148 set(CPACK_PACKAGE_NAME ${PROJECT_NAME}
0149     CACHE STRING "The resulting package name"
0150 )
0151 set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "KDE git gui client"
0152     CACHE STRING "Package description for the package metadata"
0153 )
0154 set(CPACK_PACKAGE_VENDOR "KDE")
0155 set(CPACK_VERBATIM_VARIABLES YES)
0156 set(CPACK_PACKAGE_INSTALL_DIRECTORY ${CPACK_PACKAGE_NAME})
0157 #SET(CPACK_OUTPUT_FILE_PREFIX "${CMAKE_SOURCE_DIR}/_packages")
0158 
0159 # https://unix.stackexchange.com/a/11552/254512
0160 #set(CPACK_PACKAGING_INSTALL_PREFIX "/opt/some")#/${CMAKE_PROJECT_VERSION}")
0161 
0162 set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
0163 set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
0164 set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
0165 set(CPACK_PACKAGE_DESCRIPTION   "Git client for KDE")
0166 
0167 set(CPACK_PACKAGE_CONTACT "hamed.masafi@gmail.com")
0168 set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Hamed Masafi")
0169 
0170 set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
0171 #set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README.md")
0172 
0173 if (KOMMIT_BUILD_DIR)
0174     set(CPACK_PACKAGE_FILE_NAME "kommit")
0175 else()
0176     set(CPACK_DEBIAN_FILE_NAME DEB-DEFAULT)
0177 endif()
0178 
0179 set(CPACK_COMPONENTS_GROUPING ONE_PER_GROUP)
0180 # without this you won't be able to pack only specified component
0181 set(CPACK_DEB_COMPONENT_INSTALL YES)
0182 set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
0183 
0184 include(CPack)