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)