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 "6.0.0") 0004 project(KSyntaxHighlighting VERSION ${KF_VERSION}) 0005 0006 find_package(ECM 5.249.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(CMakePackageConfigHelpers) 0019 include(ECMPoQmTools) 0020 include(ECMQtDeclareLoggingCategory) 0021 include(ECMMarkNonGuiExecutable) 0022 include(ECMAddQch) 0023 include(ECMOptionalAddSubdirectory) 0024 include(ECMGenerateExportHeader) 0025 include(ECMDeprecationSettings) 0026 include(ECMQmlModule) 0027 0028 set(ksyntaxhighlighting_version_header "${CMAKE_CURRENT_BINARY_DIR}/src/lib/ksyntaxhighlighting_version.h") 0029 ecm_setup_version(PROJECT 0030 VARIABLE_PREFIX KSYNTAXHIGHLIGHTING 0031 VERSION_HEADER "${ksyntaxhighlighting_version_header}" 0032 PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF6SyntaxHighlightingConfigVersion.cmake" 0033 SOVERSION 6 0034 ) 0035 0036 set(EXCLUDE_DEPRECATED_BEFORE_AND_AT 0 CACHE STRING "Control the range of deprecated API excluded from the build [default=0].") 0037 0038 # 0039 # Dependencies 0040 # 0041 set(REQUIRED_QT_VERSION 6.5.0) 0042 find_package(Qt6 ${REQUIRED_QT_VERSION} NO_MODULE REQUIRED COMPONENTS Core Network Test) 0043 option(KSYNTAXHIGHLIGHTING_USE_GUI "Build components depending on QtGui" ON) 0044 if(KSYNTAXHIGHLIGHTING_USE_GUI) 0045 find_package(Qt6 ${REQUIRED_QT_VERSION} NO_MODULE REQUIRED COMPONENTS Gui) 0046 endif() 0047 find_package(Qt6 ${REQUIRED_QT_VERSION} NO_MODULE QUIET OPTIONAL_COMPONENTS PrintSupport Widgets Quick) 0048 set_package_properties(Qt6 PROPERTIES URL "http://qt-project.org/") 0049 set_package_properties(Qt6Widgets PROPERTIES PURPOSE "Example application.") 0050 set_package_properties(Qt6PrintSupport PROPERTIES PURPOSE "Example application.") 0051 set_package_properties(Qt6Quick PROPERTIES PURPOSE "QtQuick bindings.") 0052 0053 # https://xerces.apache.org/index.html for validation 0054 find_package (XercesC) 0055 set_package_properties(XercesC PROPERTIES PURPOSE "Compile-time validation of syntax definition files.") 0056 0057 find_package(Perl REQUIRED) 0058 set_package_properties(Perl PROPERTIES PURPOSE "Auto-generate PHP syntax definition files.") 0059 0060 # 0061 # allow to install the "differently" licensed syntax xml files instead of putting them in a QRC and link them in 0062 # 0063 option(QRC_SYNTAX "Bundle the syntax definition files inside the library as resources" ON) 0064 add_feature_info(SYNTAX_RESOURCE ${QRC_SYNTAX} "Bundle the syntax definition files inside the library as resources") 0065 0066 # 0067 # allow to turn of lookup for syntax files and themes via QStandardPaths 0068 # 0069 option(NO_STANDARD_PATHS "Skip lookup of syntax and theme definitions in QStandardPaths locations" OFF) 0070 add_feature_info(FEATURE_NO_STANDARD_PATHS ${NO_STANDARD_PATHS} "Skip lookup of syntax and theme definitions in QStandardPaths locations") 0071 0072 # 0073 # API documentation 0074 # 0075 option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF) 0076 add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)") 0077 0078 # 0079 # Translations 0080 # 0081 ecm_install_po_files_as_qm(poqm) 0082 0083 # tell the framework if it shall use the syntax files from the resource 0084 if (QRC_SYNTAX) 0085 add_definitions(-DHAS_SYNTAX_RESOURCE) 0086 endif() 0087 0088 # skip standard paths? 0089 if (NO_STANDARD_PATHS) 0090 add_definitions(-DNO_STANDARD_PATHS) 0091 endif() 0092 0093 ecm_set_disabled_deprecation_versions( 0094 QT 6.5 0095 ) 0096 0097 # 0098 # Actually build the stuff 0099 # 0100 include_directories(${CMAKE_CURRENT_BINARY_DIR}) 0101 add_subdirectory(data) 0102 add_subdirectory(src) 0103 if(TARGET Qt6::Gui) 0104 add_subdirectory(examples) 0105 if (BUILD_TESTING) 0106 add_subdirectory(autotests) 0107 endif() 0108 endif() 0109 0110 # 0111 # CMake package config file generation 0112 # 0113 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF6SyntaxHighlighting") 0114 0115 if (BUILD_QCH) 0116 ecm_install_qch_export( 0117 TARGETS KF6SyntaxHighlighting_QCH 0118 FILE KF6SyntaxHighlightingQchTargets.cmake 0119 DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0120 COMPONENT Devel 0121 ) 0122 set(PACKAGE_INCLUDE_QCHTARGETS "include(\"\${CMAKE_CURRENT_LIST_DIR}/KF6SyntaxHighlightingQchTargets.cmake\")") 0123 endif() 0124 0125 configure_package_config_file( 0126 "${CMAKE_CURRENT_SOURCE_DIR}/KF6SyntaxHighlightingConfig.cmake.in" 0127 "${CMAKE_CURRENT_BINARY_DIR}/KF6SyntaxHighlightingConfig.cmake" 0128 INSTALL_DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0129 ) 0130 0131 install(FILES 0132 "${CMAKE_CURRENT_BINARY_DIR}/KF6SyntaxHighlightingConfig.cmake" 0133 "${CMAKE_CURRENT_BINARY_DIR}/KF6SyntaxHighlightingConfigVersion.cmake" 0134 DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0135 COMPONENT Devel) 0136 0137 if(TARGET KF6SyntaxHighlighting) 0138 install(EXPORT KF6SyntaxHighlightingTargets 0139 DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0140 FILE KF6SyntaxHighlightingTargets.cmake 0141 NAMESPACE KF6::) 0142 endif() 0143 0144 install(FILES "${ksyntaxhighlighting_version_header}" 0145 DESTINATION "${KDE_INSTALL_INCLUDEDIR_KF}/KSyntaxHighlighting" 0146 COMPONENT Devel) 0147 0148 include(ECMFeatureSummary) 0149 ecm_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)