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)