Warning, /network/falkon/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 # CMake version required. This must be the very first line, because it sets default policies affecting everything else 0002 cmake_minimum_required(VERSION 3.18) 0003 0004 # KDE Gear Version, managed by release script 0005 set(RELEASE_SERVICE_VERSION_MAJOR "23") 0006 set(RELEASE_SERVICE_VERSION_MINOR "04") 0007 set(RELEASE_SERVICE_VERSION_MICRO "1") 0008 set(RELEASE_SERVICE_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}") 0009 0010 # Project name and version 0011 project(Falkon VERSION ${RELEASE_SERVICE_VERSION}) 0012 0013 # Find ECM, with nice error handling in case of failure 0014 include(FeatureSummary) 0015 find_package(ECM 5.78.0 CONFIG) 0016 set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://invent.kde.org/frameworks/extra-cmake-modules") 0017 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) 0018 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) 0019 0020 # Many includes from ECM, to get all the nice cmake functions and settings 0021 include(KDEInstallDirs) 0022 include(KDECMakeSettings) 0023 include(KDECompilerSettings NO_POLICY_SCOPE) 0024 include(ECMInstallIcons) 0025 include(ECMSetupVersion) 0026 include(ECMAddAppIcon) 0027 include(ECMQtDeclareLoggingCategory) 0028 include(ECMPoQmTools) 0029 0030 # Output dirs (like ECM 5.38 does) 0031 set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib") 0032 set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") 0033 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin") 0034 0035 if (UNIX AND NOT APPLE) 0036 set(FALKON_INSTALL_PLUGINDIR "${KDE_INSTALL_PLUGINDIR}/falkon") 0037 else() 0038 set(FALKON_INSTALL_PLUGINDIR "${KDE_INSTALL_PLUGINDIR}") 0039 endif() 0040 if (IS_ABSOLUTE ${FALKON_INSTALL_PLUGINDIR}) 0041 set(PLUGIN_PATH "${FALKON_INSTALL_PLUGINDIR}") 0042 else() 0043 set(PLUGIN_PATH "${CMAKE_INSTALL_PREFIX}/${FALKON_INSTALL_PLUGINDIR}") 0044 endif() 0045 if (NOT WIN32) 0046 set(FALKON_PLUGIN_PATH "${PLUGIN_PATH}" CACHE PATH "Default plugin search path") 0047 endif() 0048 0049 # Defines that are always set 0050 add_definitions(-DQT_NO_URL_CAST_FROM_STRING -DQT_USE_QSTRINGBUILDER -DQT_NO_CAST_TO_ASCII) 0051 0052 # Mandatory: Qt5 0053 set(QT_MIN_VERSION "5.15.0") 0054 find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS Core Widgets Network Sql QuickWidgets PrintSupport WebChannel) 0055 find_package(Qt5WebEngine ${QT_MIN_VERSION} REQUIRED) 0056 find_package(Qt5WebEngineWidgets ${QT_MIN_VERSION} REQUIRED) 0057 if (BUILD_TESTING) 0058 find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS Test) 0059 endif() 0060 if (NOT DISABLE_DBUS) 0061 find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS DBus) 0062 endif() 0063 0064 if (UNIX AND NOT APPLE AND NOT NO_X11) 0065 add_definitions(-DQZ_WS_X11) 0066 find_package(XCB REQUIRED COMPONENTS XCB UTIL) 0067 find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS X11Extras) 0068 endif() 0069 if (WIN32) 0070 add_definitions(-DW7API) 0071 find_package(Qt5 ${QT_MIN_VERSION} REQUIRED COMPONENTS WinExtras) 0072 0073 # taken from https://stackoverflow.com/a/40217291 0074 macro(get_WIN32_WINNT version) 0075 if (CMAKE_SYSTEM_VERSION) 0076 set(ver ${CMAKE_SYSTEM_VERSION}) 0077 string(REGEX MATCH "^([0-9]+).([0-9])" ver ${ver}) 0078 string(REGEX MATCH "^([0-9]+)" verMajor ${ver}) 0079 # Check for Windows 10, b/c we'll need to convert to hex 'A'. 0080 if ("${verMajor}" MATCHES "10") 0081 set(verMajor "A") 0082 string(REGEX REPLACE "^([0-9]+)" ${verMajor} ver ${ver}) 0083 endif ("${verMajor}" MATCHES "10") 0084 # Remove all remaining '.' characters. 0085 string(REPLACE "." "" ver ${ver}) 0086 # Prepend each digit with a zero. 0087 string(REGEX REPLACE "([0-9A-Z])" "0\\1" ver ${ver}) 0088 set(${version} "0x${ver}") 0089 endif(CMAKE_SYSTEM_VERSION) 0090 endmacro(get_WIN32_WINNT) 0091 0092 get_WIN32_WINNT(ver) 0093 add_definitions(-D_WIN32_WINNT=${ver}) 0094 endif() 0095 0096 # Mandatory: OpenSSL 0097 find_package(OpenSSL REQUIRED) 0098 0099 # Mandatory: KF5 0100 find_package(KF5 REQUIRED COMPONENTS Archive) 0101 0102 # KF5I18n: Mandatory with downloaded translations (only for ki18n_install) 0103 if (EXISTS "${CMAKE_SOURCE_DIR}/po") 0104 find_package(KF5I18n REQUIRED) 0105 endif() 0106 0107 # Optional: GnomeKeyring 0108 find_package(PkgConfig) 0109 if (PKG_CONFIG_FOUND) 0110 option(BUILD_KEYRING "Gnome keyring password plugin" ON) 0111 if (BUILD_KEYRING) 0112 pkg_check_modules(GNOME_KEYRING IMPORTED_TARGET gnome-keyring-1 ) 0113 endif() 0114 endif() 0115 0116 # Optional: KWallet, KIO, KCrash, KCoreAddons 0117 set(KF5_MIN_VERSION "5.78.0") 0118 find_package(KF5Wallet ${KF5_MIN_VERSION} CONFIG) 0119 set_package_properties(KF5Wallet PROPERTIES DESCRIPTION "KDE Frameworks Integration plugin" TYPE OPTIONAL) 0120 find_package(KF5KIO ${KF5_MIN_VERSION} CONFIG) 0121 set_package_properties(KF5KIO PROPERTIES DESCRIPTION "KDE Frameworks Integration plugin" TYPE OPTIONAL) 0122 find_package(KF5Crash ${KF5_MIN_VERSION} CONFIG) 0123 set_package_properties(KF5Crash PROPERTIES DESCRIPTION "KDE Frameworks Integration plugin" TYPE OPTIONAL) 0124 find_package(KF5CoreAddons ${KF5_MIN_VERSION} CONFIG) 0125 set_package_properties(KF5CoreAddons PROPERTIES DESCRIPTION "KDE Frameworks Integration plugin" TYPE OPTIONAL) 0126 find_package(KF5Purpose ${KF5_MIN_VERSION} CONFIG) 0127 set_package_properties(KF5Purpose PROPERTIES DESCRIPTION "KDE Frameworks Integration plugin" TYPE OPTIONAL) 0128 if (KF5Wallet_FOUND AND KF5KIO_FOUND AND KF5Crash_FOUND AND KF5CoreAddons_FOUND AND KF5Purpose_FOUND) 0129 set(ENABLE_KDE_FRAMEWORKS_INTEGRATION_PLUGIN TRUE) 0130 endif() 0131 0132 # Optional: PySide2 0133 find_package(PySide2 "2.0.0") 0134 find_package(Shiboken2 "2.0.0") 0135 find_package(Python3 COMPONENTS Development) 0136 set_package_properties(PySide2 PROPERTIES DESCRIPTION "Python plugins" TYPE OPTIONAL) 0137 set_package_properties(Shiboken2 PROPERTIES DESCRIPTION "Python plugins" TYPE OPTIONAL) 0138 set_package_properties(Python3 PROPERTIES DESCRIPTION "Python plugins" TYPE OPTIONAL) 0139 if (PySide2_FOUND AND Shiboken2_FOUND AND Python3_FOUND) 0140 set(ENABLE_PYTHON_PLUGINS TRUE) 0141 endif() 0142 0143 find_package(Intl) 0144 if (Intl_FOUND) 0145 set(HAVE_LIBINTL TRUE) 0146 endif() 0147 0148 # Git revision 0149 if (EXISTS "${CMAKE_SOURCE_DIR}/.git") 0150 find_package(Git QUIET) 0151 if(GIT_FOUND) 0152 execute_process( 0153 COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD 0154 WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} 0155 OUTPUT_VARIABLE GIT_REVISION 0156 ) 0157 string(REGEX REPLACE "\n" "" GIT_REVISION "${GIT_REVISION}") 0158 set(FALKON_GIT_REVISION "${GIT_REVISION}") 0159 else() 0160 message(STATUS "Git revision could not be determined") 0161 endif() 0162 endif() 0163 0164 configure_file(config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/src/config.h) 0165 0166 # Include dirs used everywhere 0167 include_directories( 0168 ${CMAKE_SOURCE_DIR}/src/lib/3rdparty 0169 ${CMAKE_SOURCE_DIR}/src/lib/adblock 0170 ${CMAKE_SOURCE_DIR}/src/lib/app 0171 ${CMAKE_SOURCE_DIR}/src/lib/autofill 0172 ${CMAKE_SOURCE_DIR}/src/lib/bookmarks 0173 ${CMAKE_SOURCE_DIR}/src/lib/cookies 0174 ${CMAKE_SOURCE_DIR}/src/lib/downloads 0175 ${CMAKE_SOURCE_DIR}/src/lib/history 0176 ${CMAKE_SOURCE_DIR}/src/lib/navigation 0177 ${CMAKE_SOURCE_DIR}/src/lib/network 0178 ${CMAKE_SOURCE_DIR}/src/lib/notifications 0179 ${CMAKE_SOURCE_DIR}/src/lib/opensearch 0180 ${CMAKE_SOURCE_DIR}/src/lib/other 0181 ${CMAKE_SOURCE_DIR}/src/lib/plugins 0182 ${CMAKE_SOURCE_DIR}/src/lib/popupwindow 0183 ${CMAKE_SOURCE_DIR}/src/lib/preferences 0184 ${CMAKE_SOURCE_DIR}/src/lib/session 0185 ${CMAKE_SOURCE_DIR}/src/lib/sidebar 0186 ${CMAKE_SOURCE_DIR}/src/lib/tabwidget 0187 ${CMAKE_SOURCE_DIR}/src/lib/tools 0188 ${CMAKE_SOURCE_DIR}/src/lib/webengine 0189 ${CMAKE_SOURCE_DIR}/src/lib/webtab 0190 ) 0191 0192 # Finally, go into the subdirs 0193 add_subdirectory(src) 0194 0195 if (BUILD_TESTING) 0196 add_subdirectory(autotests) 0197 add_subdirectory(tests/benchmarks) 0198 endif() 0199 0200 # Tell releaseme that po is already taken care of 0201 # SKIP_PO_INSTALL 0202 0203 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)