Warning, /utilities/kcalc/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 cmake_minimum_required(VERSION 3.16) 0002 0003 # KDE Application Version, managed by release script 0004 set (RELEASE_SERVICE_VERSION_MAJOR "24") 0005 set (RELEASE_SERVICE_VERSION_MINOR "01") 0006 set (RELEASE_SERVICE_VERSION_MICRO "95") 0007 set (RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}") 0008 project(kcalc VERSION ${RELEASE_SERVICE_VERSION}) 0009 0010 set(QT_MIN_VERSION "6.5.0") 0011 set(KF_MIN_VERSION "5.240.0") 0012 0013 find_package (ECM ${KF_MIN_VERSION} REQUIRED NO_MODULE) 0014 set (CMAKE_MODULE_PATH ${ECM_MODULE_PATH}) 0015 0016 include(KDEInstallDirs) 0017 include(KDECompilerSettings NO_POLICY_SCOPE) 0018 include(KDECMakeSettings) 0019 include(ECMMarkAsTest) 0020 include(FeatureSummary) 0021 include(ECMAddAppIcon) 0022 include(ECMSetupVersion) 0023 include(KDEGitCommitHooks) 0024 include(KDEClangFormat) 0025 include(ECMDeprecationSettings) 0026 0027 file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h *.c) 0028 kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES}) 0029 0030 ## Generate header with version number 0031 ecm_setup_version(${RELEASE_SERVICE_VERSION} VARIABLE_PREFIX KCALC 0032 VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kcalc_version.h" 0033 ) 0034 0035 find_package (Qt6 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS 0036 Core 0037 Widgets 0038 ) 0039 find_package(Qt6Core5Compat) 0040 0041 find_package(KF6 ${KF_MIN_VERSION} REQUIRED COMPONENTS 0042 CoreAddons 0043 Crash 0044 Config 0045 ConfigWidgets 0046 GuiAddons 0047 I18n 0048 Notifications 0049 XmlGui 0050 ) 0051 0052 find_package(KF6DocTools ${KF_MIN_VERSION}) 0053 set_package_properties(KF6DocTools PROPERTIES DESCRIPTION 0054 "Tools to generate documentation" 0055 TYPE OPTIONAL 0056 ) 0057 0058 set (CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" ${CMAKE_SOURCE_DIR}/cmake/modules) 0059 0060 find_package(GMP) 0061 set_package_properties(GMP PROPERTIES 0062 DESCRIPTION "The GNU Multiple Precision Arithmetic Library" 0063 URL "https://gmplib.org/" 0064 TYPE REQUIRED 0065 PURPOSE "Required for building KCalc." 0066 ) 0067 0068 find_package(MPFR) 0069 set_package_properties(MPFR PROPERTIES 0070 DESCRIPTION "The GNU Multiple Precision Floating-Point Reliable Library" 0071 URL "https://www.mpfr.org/" 0072 TYPE REQUIRED 0073 PURPOSE "Required for building KCalc." 0074 ) 0075 0076 include(CheckTypeSize) 0077 include(CheckIncludeFiles) 0078 0079 check_include_files(ieeefp.h HAVE_IEEEFP_H) 0080 check_type_size("signed long" SIZEOF_SIGNED_LONG) 0081 check_type_size("unsigned long" SIZEOF_UNSIGNED_LONG) 0082 0083 configure_file(config-kcalc.h.in ${CMAKE_CURRENT_BINARY_DIR}/config-kcalc.h ) 0084 ecm_set_disabled_deprecation_versions(QT 6.6 KF 5.250.0) 0085 0086 add_subdirectory(knumber) 0087 add_executable(kcalc) 0088 0089 target_sources(kcalc PRIVATE 0090 kcalc.cpp 0091 bitbutton.cpp 0092 kcalc_bitset.cpp 0093 kcalc_button.cpp 0094 kcalc_const_button.cpp 0095 kcalc_const_menu.cpp 0096 kcalc_core.cpp 0097 kcalcdisplay.cpp 0098 kcalc_statusbar.cpp 0099 stats.cpp 0100 kcalchistory.cpp 0101 stats.cpp 0102 kcalc_const_menu.h 0103 kcalc_core.h 0104 kcalc_bitset.h 0105 bitbutton.h 0106 kcalc.h 0107 kcalc_button.h 0108 stats.h 0109 kcalc_const_button.h 0110 kcalc_statusbar.h 0111 kcalcdisplay.h 0112 kcalchistory.h 0113 kcalc.qrc ) 0114 0115 0116 ki18n_wrap_ui(kcalc 0117 kcalc.ui 0118 constants.ui 0119 colors.ui 0120 fonts.ui 0121 general.ui) 0122 0123 kconfig_add_kcfg_files(kcalc kcalc_settings.kcfgc ) 0124 0125 # Sets the icon on Windows and OSX 0126 file(GLOB ICONS_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/icons/*.png") 0127 ecm_add_app_icon(kcalc ICONS ${ICONS_SRCS}) 0128 0129 # Conditionally install icons for Linux as they may not be provided by the user theme 0130 option(INSTALL_ICONS "Install icons" OFF) 0131 if (INSTALL_ICONS) 0132 include(ECMInstallIcons) 0133 ecm_install_icons( ICONS ${ICONS_SRCS} DESTINATION ${KDE_INSTALL_ICONDIR} ) 0134 endif() 0135 0136 0137 target_link_libraries(kcalc 0138 Qt6::Core 0139 Qt6::Widgets 0140 KF6::CoreAddons 0141 KF6::ConfigWidgets 0142 KF6::GuiAddons 0143 KF6::I18n 0144 KF6::Notifications 0145 KF6::XmlGui 0146 KF6::Crash 0147 knumber 0148 ) 0149 0150 set_target_properties(kcalc PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/MacOSXBundleInfo.plist.in) 0151 0152 install(TARGETS kcalc ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} ) 0153 0154 ########### install files ############### 0155 0156 install( PROGRAMS org.kde.kcalc.desktop DESTINATION ${KDE_INSTALL_APPDIR}) 0157 install( FILES org.kde.kcalc.appdata.xml DESTINATION ${KDE_INSTALL_METAINFODIR}) 0158 install( FILES kcalc.kcfg DESTINATION ${KDE_INSTALL_KCFGDIR}) 0159 install( FILES kcalcrc.upd DESTINATION ${KDE_INSTALL_DATADIR}/kconf_update) 0160 install( DIRECTORY DESTINATION "${KDE_INSTALL_FULL_DATAROOTDIR}/kglobalaccel" ) 0161 install( 0162 CODE "execute_process(COMMAND \"${CMAKE_COMMAND}\" -E create_symlink \"${KDE_INSTALL_FULL_APPDIR}/org.kde.kcalc.desktop\" \"\$ENV{DESTDIR}${KDE_INSTALL_FULL_DATAROOTDIR}/kglobalaccel/org.kde.kcalc.desktop\")" 0163 ) 0164 0165 ki18n_install(po) 0166 if (KF6DocTools_FOUND) 0167 kdoctools_install(po) 0168 add_subdirectory(doc) 0169 endif() 0170 kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT) 0171 0172 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)