Warning, /frameworks/kjs/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") # handled by release scripts
0004 project(KJS VERSION ${KF_VERSION})
0005 
0006 # ECM setup
0007 include(FeatureSummary)
0008 find_package(ECM 5.115.0  NO_MODULE)
0009 set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://commits.kde.org/extra-cmake-modules")
0010 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES)
0011 
0012 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
0013 
0014 
0015 include(GenerateExportHeader)
0016 include(CMakePackageConfigHelpers)
0017 include(ECMSetupVersion)
0018 include(ECMMarkNonGuiExecutable)
0019 
0020 ecm_setup_version(PROJECT VARIABLE_PREFIX KJS
0021                         VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kjs_version.h"
0022                         PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5JSConfigVersion.cmake"
0023                         SOVERSION 5)
0024 
0025 # Dependencies
0026 include(KDEInstallDirs)
0027 include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE)
0028 include(KDECMakeSettings)
0029 
0030 set(REQUIRED_QT_VERSION 5.15.2)
0031 find_package(Qt5Core ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE)
0032 
0033 find_package(Perl)
0034 set_package_properties(Perl PROPERTIES URL "http://www.perl.org" TYPE REQUIRED PURPOSE "Needed for building kdelibs")
0035 
0036 #Do not make PCRE optional here. PCRE is a hard requirement for modern systems
0037 #but we give old systems some slack... that's why we don't specify "REQUIRED".
0038 find_package(PCRE)
0039 
0040 set_package_properties(PCRE PROPERTIES
0041                        URL "http://www.pcre.org"
0042                        DESCRIPTION "Perl-compatible regular expressions in KJS"
0043                        TYPE OPTIONAL
0044                        PURPOSE "Without PCRE, KJS will have extremely poor regular expression support, breaking many webpages.")
0045 
0046 option(KJS_FORCE_DISABLE_PCRE "Force building of KJS without PCRE. Doing this will result in many webpage working incorrectly, due to extremely poor regular expression support")
0047 
0048 # TODO: Support these, set by KDEFrameworkCompilerSettings
0049 remove_definitions(
0050     -DQT_NO_CAST_FROM_ASCII
0051     -DQT_NO_FOREACH
0052 )
0053 
0054 find_package(KF5DocTools ${KF_DEP_VERSION})
0055 
0056 add_subdirectory(src)
0057 if (BUILD_TESTING)
0058     add_subdirectory(autotests)
0059     add_subdirectory(tests)
0060 endif()
0061 if(KF5DocTools_FOUND)
0062     add_subdirectory(docs)
0063 endif()
0064 
0065 # create a Config.cmake and a ConfigVersion.cmake file and install them
0066 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5JS")
0067 
0068 configure_package_config_file(
0069     "${CMAKE_CURRENT_SOURCE_DIR}/KF5JSConfig.cmake.in"
0070     "${CMAKE_CURRENT_BINARY_DIR}/KF5JSConfig.cmake"
0071     PATH_VARS KDE_INSTALL_DATADIR_KF5
0072     INSTALL_DESTINATION  ${CMAKECONFIG_INSTALL_DIR}
0073 )
0074 
0075 install(FILES  "${CMAKE_CURRENT_BINARY_DIR}/KF5JSConfig.cmake"
0076                "${CMAKE_CURRENT_BINARY_DIR}/KF5JSConfigVersion.cmake"
0077         DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0078         COMPONENT Devel )
0079 
0080 install(EXPORT KF5JSTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE KF5JSTargets.cmake NAMESPACE KF5:: )
0081 
0082 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/kjs_version.h DESTINATION ${KDE_INSTALL_INCLUDEDIR_KF5} COMPONENT Devel )
0083 
0084 if(KF5DocTools_FOUND)
0085     kdoctools_install(po)
0086 endif()
0087 
0088 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)