Warning, /education/cantor/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 cmake_minimum_required (VERSION 3.13 FATAL_ERROR)
0002 
0003 set(CMAKE_CXX_STANDARD 11)
0004 set(CMAKE_CXX_STANDARD_REQUIRED ON)
0005 
0006 set (RELEASE_SERVICE_VERSION_MAJOR "24")
0007 set (RELEASE_SERVICE_VERSION_MINOR "04")
0008 set (RELEASE_SERVICE_VERSION_MICRO "70")
0009 set (RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}")
0010 
0011 project(cantor VERSION ${RELEASE_SERVICE_VERSION})
0012 
0013 set(KF5_MIN_VERSION "5.91.0")
0014 
0015 find_package(ECM 5.15.0 REQUIRED CONFIG)
0016 set(CMAKE_MODULE_PATH ${cantor_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH} ${ECM_MODULE_PATH} )
0017 
0018 include(KDEInstallDirs)
0019 include(KDECMakeSettings)
0020 include(KDECompilerSettings NO_POLICY_SCOPE)
0021 
0022 include(ECMInstallIcons)
0023 include(ECMSetupVersion)
0024 include(ECMAddAppIcon)
0025 include(KDEClangFormat)
0026 include(GenerateExportHeader)
0027 include(FeatureSummary)
0028 
0029 set( SharedMimeInfo_MINIMUM_VERSION "1.3" ) #TODO: What is the minimum required version?
0030 find_package(SharedMimeInfo ${SharedMimeInfo_MINIMUM_VERSION} REQUIRED)
0031 
0032 find_package(Qt5 5.8.0 CONFIG REQUIRED
0033     Core
0034     Widgets
0035     PrintSupport
0036     Svg
0037     Xml
0038     XmlPatterns
0039     Test
0040     Help
0041     WebEngine
0042     WebEngineWidgets)
0043 
0044 find_package(KF5 ${KF5_MIN_VERSION} REQUIRED
0045     Config
0046     Crash
0047     Completion
0048     DocTools
0049     NewStuff
0050     IconThemes
0051     TextEditor
0052     CoreAddons
0053     Archive
0054     Parts
0055     SyntaxHighlighting
0056     TextWidgets
0057     KIO
0058     XmlGui
0059     I18n
0060 )
0061 
0062 find_package(Poppler "0.62.0" REQUIRED COMPONENTS Qt5)
0063 
0064 option(USE_LIBSPECTRE "Use libspectre library" ON)
0065 
0066 add_subdirectory(thirdparty)
0067 # Need to set this here, because variable can't move from subdirectory (thirdparty) to upper cmake scope
0068 set(Discount_FOUND TRUE)
0069 
0070 if(NOT WIN32 AND USE_LIBSPECTRE)
0071     set_package_properties(LibSpectre PROPERTIES DESCRIPTION "A PostScript rendering library"
0072         URL "https://www.freedesktop.org/wiki/Software/libspectre/"
0073         TYPE OPTIONAL
0074         PURPOSE "Support for rendering EPS files in Cantor")
0075 
0076     find_package(LibSpectre)
0077     if(LIBSPECTRE_FOUND)
0078         set(WITH_EPS On)
0079     else(LIBSPECTRE_FOUND)
0080         set(WITH_EPS Off)
0081     endif(LIBSPECTRE_FOUND)
0082 
0083 else()
0084     set(WITH_EPS Off)
0085 endif()
0086 
0087 #[[
0088 find_package(Discount 2.2.0)
0089 set_package_properties(Discount PROPERTIES DESCRIPTION "A C implementation of the Markdown markup language"
0090     URL "https://www.pell.portland.or.us/~orc/Code/discount/"
0091     TYPE OPTIONAL
0092     PURPOSE "Used for Markdown entries in Cantor")
0093 ]]#
0094 
0095 add_definitions(
0096     -DQT_NO_CAST_TO_ASCII
0097     -DQT_NO_CAST_FROM_ASCII
0098     -DQT_NO_URL_CAST_FROM_STRING
0099     -DQT_NO_CAST_FROM_BYTEARRAY
0100     -DQT_USE_QSTRINGBUILDER
0101     -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT
0102     -DQT_NO_SIGNALS_SLOTS_KEYWORDS
0103     -DQT_DEPRECATED_WARNINGS_SINCE=0x060000
0104     -DKF_DEPRECATED_WARNINGS_SINCE=0x060000
0105 )
0106 if (NOT WIN32)
0107     # Strict iterators can't be used on Windows, they lead to a link error
0108     # when application code iterates over a QVector<QPoint> for instance, unless
0109     # Qt itself was also built with strict iterators.
0110     # See example at https://bugreports.qt.io/browse/AUTOSUITE-946
0111     add_definitions(-DQT_STRICT_ITERATORS)
0112 endif()
0113 
0114 if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
0115    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic")
0116 
0117    # both gcc & clang support it since the same version
0118    if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 5.0.0)
0119       set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wzero-as-null-pointer-constant" )
0120    endif()
0121 endif()
0122 
0123 set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DQT_NO_DEBUG_OUTPUT")
0124 
0125 kde_enable_exceptions()
0126 
0127 # FIXME Looks like docbook on Windows don't buildable at all, so it are temporarily disabled
0128 if(NOT WIN32)
0129     add_subdirectory(doc)
0130 endif(NOT WIN32)
0131 add_subdirectory(src)
0132 add_subdirectory(icons)
0133 
0134 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/Cantor")
0135 configure_package_config_file(
0136     ${CMAKE_CURRENT_SOURCE_DIR}/CantorConfig.cmake.in
0137     ${CMAKE_CURRENT_BINARY_DIR}/CantorConfig.cmake
0138     INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}/
0139     #PATH_VARS INCLUDE_INSTALL_DIR SYSCONFIG_INSTALL_DIR
0140 )
0141 
0142 ecm_setup_version(${RELEASE_SERVICE_VERSION}
0143     VARIABLE_PREFIX CANTOR
0144     VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/cantor_version.h"
0145     PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/CantorConfigVersion.cmake"
0146 )
0147 install(
0148     FILES ${CMAKE_CURRENT_BINARY_DIR}/CantorConfig.cmake
0149           ${CMAKE_CURRENT_BINARY_DIR}/CantorConfigVersion.cmake
0150     DESTINATION ${CMAKECONFIG_INSTALL_DIR}
0151     COMPONENT Devel
0152 )
0153 
0154 install(EXPORT CantorTargets
0155     DESTINATION "${CMAKECONFIG_INSTALL_DIR}"
0156     FILE CantorTargets.cmake
0157     NAMESPACE Cantor::
0158 )
0159 
0160 
0161 ki18n_install(po)
0162 if (KF5DocTools_FOUND)
0163     kdoctools_install(po)
0164 endif()
0165 install(FILES org.kde.cantor.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR})
0166 
0167 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h *.c)
0168 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
0169 
0170 feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)