Warning, /frameworks/syntax-highlighting/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 cmake_minimum_required(VERSION 3.16)
0002
0003 set(KF_VERSION "5.116.0")
0004 project(KSyntaxHighlighting VERSION ${KF_VERSION})
0005
0006 find_package(ECM 5.115.0 REQUIRED NO_MODULE)
0007 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH})
0008
0009 include(KDEInstallDirs)
0010 include(KDECMakeSettings)
0011 include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE)
0012 include(KDEGitCommitHooks)
0013
0014 include(FeatureSummary)
0015 include(GenerateExportHeader)
0016 include(ECMSetupVersion)
0017 include(ECMGenerateHeaders)
0018 include(ECMGeneratePriFile)
0019 include(CMakePackageConfigHelpers)
0020 include(ECMPoQmTools)
0021 include(ECMQtDeclareLoggingCategory)
0022 include(ECMMarkNonGuiExecutable)
0023 include(ECMAddQch)
0024 include(ECMOptionalAddSubdirectory)
0025 include(ECMGenerateExportHeader)
0026 include(ECMDeprecationSettings)
0027 include(ECMQmlModule)
0028
0029 ecm_setup_version(PROJECT
0030 VARIABLE_PREFIX SyntaxHighlighting
0031 VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/ksyntaxhighlighting_version.h"
0032 PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5SyntaxHighlightingConfigVersion.cmake"
0033 )
0034
0035 set(EXCLUDE_DEPRECATED_BEFORE_AND_AT 0 CACHE STRING "Control the range of deprecated API excluded from the build [default=0].")
0036
0037 #
0038 # Dependencies
0039 #
0040 set(REQUIRED_QT_VERSION 5.15.2)
0041 find_package(Qt${QT_MAJOR_VERSION} ${REQUIRED_QT_VERSION} NO_MODULE REQUIRED COMPONENTS Core Network Test)
0042 option(KSYNTAXHIGHLIGHTING_USE_GUI "Build components depending on QtGui" ON)
0043 if(KSYNTAXHIGHLIGHTING_USE_GUI)
0044 find_package(Qt${QT_MAJOR_VERSION} ${REQUIRED_QT_VERSION} NO_MODULE REQUIRED COMPONENTS Gui)
0045 endif()
0046 find_package(Qt${QT_MAJOR_VERSION} ${REQUIRED_QT_VERSION} NO_MODULE QUIET OPTIONAL_COMPONENTS PrintSupport Widgets Quick)
0047 set_package_properties(Qt${QT_MAJOR_VERSION} PROPERTIES URL "http://qt-project.org/")
0048 set_package_properties(Qt${QT_MAJOR_VERSION}Widgets PROPERTIES PURPOSE "Example application.")
0049 set_package_properties(Qt${QT_MAJOR_VERSION}PrintSupport PROPERTIES PURPOSE "Example application.")
0050 set_package_properties(Qt${QT_MAJOR_VERSION}Quick PROPERTIES PURPOSE "QtQuick bindings.")
0051
0052 # QXmlPatters was removed in Qt6
0053 if (QT_MAJOR_VERSION STREQUAL "5")
0054 find_package(Qt5 ${REQUIRED_QT_VERSION} NO_MODULE QUIET OPTIONAL_COMPONENTS XmlPatterns)
0055 set_package_properties(Qt5XmlPatterns PROPERTIES PURPOSE "Compile-time validation of syntax definition files.")
0056 endif()
0057
0058 find_package(Perl REQUIRED)
0059 set_package_properties(Perl PROPERTIES PURPOSE "Auto-generate PHP syntax definition files.")
0060
0061 #
0062 # allow to install the "differently" licensed syntax xml files instead of putting them in a QRC and link them in
0063 #
0064 option(QRC_SYNTAX "Bundle the syntax definition files inside the library as resources" ON)
0065 add_feature_info(SYNTAX_RESOURCE ${QRC_SYNTAX} "Bundle the syntax definition files inside the library as resources")
0066
0067 #
0068 # allow to turn of lookup for syntax files and themes via QStandardPaths
0069 #
0070 option(NO_STANDARD_PATHS "Skip lookup of syntax and theme definitions in QStandardPaths locations" OFF)
0071 add_feature_info(FEATURE_NO_STANDARD_PATHS ${NO_STANDARD_PATHS} "Skip lookup of syntax and theme definitions in QStandardPaths locations")
0072
0073 #
0074 # API documentation
0075 #
0076 option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF)
0077 add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)")
0078
0079 #
0080 # Translations
0081 #
0082 ecm_install_po_files_as_qm(poqm)
0083
0084 # tell the framework if it shall use the syntax files from the resource
0085 if (QRC_SYNTAX)
0086 add_definitions(-DHAS_SYNTAX_RESOURCE)
0087 endif()
0088
0089 # skip standard paths?
0090 if (NO_STANDARD_PATHS)
0091 add_definitions(-DNO_STANDARD_PATHS)
0092 endif()
0093
0094 ecm_set_disabled_deprecation_versions(
0095 QT 5.15.2
0096 )
0097
0098 #
0099 # Actually build the stuff
0100 #
0101 include_directories(${CMAKE_CURRENT_BINARY_DIR})
0102 add_subdirectory(data)
0103 add_subdirectory(src)
0104 if(TARGET Qt${QT_MAJOR_VERSION}::Gui)
0105 add_subdirectory(examples)
0106 if (BUILD_TESTING)
0107 add_subdirectory(autotests)
0108 endif()
0109 endif()
0110
0111 #
0112 # CMake package config file generation
0113 #
0114 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5SyntaxHighlighting")
0115
0116 if (BUILD_QCH)
0117 ecm_install_qch_export(
0118 TARGETS KF5SyntaxHighlighting_QCH
0119 FILE KF5SyntaxHighlightingQchTargets.cmake
0120 DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0121 COMPONENT Devel
0122 )
0123 set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KF5SyntaxHighlightingQchTargets.cmake\")")
0124 endif()
0125
0126 configure_package_config_file(
0127 "${CMAKE_CURRENT_SOURCE_DIR}/KF5SyntaxHighlightingConfig.cmake.in"
0128 "${CMAKE_CURRENT_BINARY_DIR}/KF5SyntaxHighlightingConfig.cmake"
0129 INSTALL_DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0130 )
0131
0132 install(FILES
0133 "${CMAKE_CURRENT_BINARY_DIR}/KF5SyntaxHighlightingConfig.cmake"
0134 "${CMAKE_CURRENT_BINARY_DIR}/KF5SyntaxHighlightingConfigVersion.cmake"
0135 DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0136 COMPONENT Devel)
0137
0138 if(TARGET KF5SyntaxHighlighting)
0139 install(EXPORT KF5SyntaxHighlightingTargets
0140 DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0141 FILE KF5SyntaxHighlightingTargets.cmake
0142 NAMESPACE KF5::)
0143 endif()
0144
0145 install(FILES "${CMAKE_CURRENT_BINARY_DIR}/ksyntaxhighlighting_version.h"
0146 DESTINATION "${KDE_INSTALL_INCLUDEDIR_KF}/KSyntaxHighlighting"
0147 COMPONENT Devel)
0148
0149 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
0150
0151 # add target to update kate-editor.org syntax page + update site
0152 add_custom_target(update_kate_editor_org
0153 COMMAND "${PERL_EXECUTABLE}" "${CMAKE_CURRENT_SOURCE_DIR}/utils/update-kate-editor-org.pl" "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}")
0154
0155 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)