Warning, /graphics/digikam/project/bundles/3rdparty/ext_qt5/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 # Script to build Qt for digiKam bundle.
0002 #
0003 # Copyright (c) 2015-2024 by Gilles Caulier  <caulier dot gilles at gmail dot com>
0004 #
0005 # Redistribution and use is allowed according to the terms of the BSD license.
0006 # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
0007 #
0008 
0009 SET(EXTPREFIX_qt "${EXTPREFIX}")
0010 
0011 IF(NOT ENABLE_QTWEBENGINE)
0012     SET(DROP_QTWEBENGINE_DEPS
0013         -skip qtwebengine                 # No need Chromium browser support (QtWebkit instead)
0014         -skip qtwebchannel                # QtWebChannel support ==> QWebEngine dependency
0015         -skip qtquickcontrols             # QtQuick support      ==> QWebEngine dependency
0016         )
0017 ENDIF()
0018 
0019 # NOTE: even if OpenSSL libs paths are passed as arguments, an hardcoded patch is necessary else linking fail.
0020 
0021 ExternalProject_Add(ext_qt5
0022     DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR}
0023 
0024     URL https://download.qt.io/official_releases/qt/5.15/5.15.12/single/qt-everywhere-opensource-src-5.15.12.tar.xz
0025     URL_MD5 3fb1cd4f763f5d50d491508b7b99fb77
0026 
0027     PATCH_COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/qt-appimage-support.patch
0028                && ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/qt-appimage-openssl-linked.patch
0029 #               && ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/qt-icu-hack.patch
0030 
0031     CMAKE_ARGS -DOPENSSL_LIBS='-l${EXTPREFIX}/local/lib/libssl.a -l${EXTPREFIX}/local/lib/libcrypto.a -lpthread -ldl'
0032                -DOPENSSL_INCDIR='${EXTPREFIX}/local/include/openssl/'
0033                -DOPENSSL_LIBDIR='${EXTPREFIX}/local/lib'
0034 
0035     CONFIGURE_COMMAND <SOURCE_DIR>/configure
0036                   -prefix ${EXTPREFIX_qt}
0037                   -verbose
0038                   -release
0039                   -opensource
0040                   -confirm-license
0041                   -sql-sqlite                       # Compile Sqlite SQL plugin
0042                   -sql-mysql                        # Compile Mysql SQL plugin
0043 #                  -iconv                            # International string conversion
0044                   -icu
0045                   -fontconfig
0046                   -system-freetype                  # Use system font rendering lib https://doc.qt.io/qt-5/qtgui-attribution-freetype.html
0047                   -openssl-linked                   # hard link to static version of ssl libraries
0048                   -nomake tests                     # Do not build test codes
0049                   -nomake examples                  # Do not build basis example codes
0050                   -no-compile-examples              # Do not build extra example codes
0051                   -no-qml-debug
0052                   -no-mtdev
0053                   -no-journald
0054                   -no-syslog
0055                   -no-tslib
0056                   -no-directfb
0057                   -no-linuxfb
0058                   -no-libproxy
0059                   -no-pch
0060                   -qt-zlib
0061                   -qt-pcre
0062                   -qt-harfbuzz
0063                   -xcb
0064                   -skip qt3d                        # 3D core
0065                   -skip qtactiveqt                  # No need ActiveX support
0066                   -skip qtandroidextras             # For embedded devices only
0067                   -skip qtcharts                    # No need data models charts support
0068                   -skip qtconnectivity              # For embedded devices only
0069                   -skip qtdatavis3d                 # no need 3D data visualizations support
0070                   -skip qtdoc                       # No need documentation
0071                   -skip qtgamepad                   # No need gamepad hardware support.
0072                   -skip qtgraphicaleffects          # No need Advanced graphical effects in GUI
0073                   -skip qtlocation                  # No need geolocation
0074                   -skip qtlottie                    # No need Adobe QtQuick After Effect animations integration
0075                   -skip qtmacextras                 # For MacOS devices only
0076                   -skip qtpurchasing                # No need in-app purchase of products support
0077                   -skip qtquickcontrols2            # QtQuick support for QML
0078                   -skip qtremoteobjects             # No need sharing QObject properties between processes support
0079                   -skip qtscript                    # No need scripting (deprecated)
0080                   -skip qtscxml                     # No need SCXML state machines support
0081                   -skip qtsensors                   # For embedded devices only
0082                   -skip qtserialbus                 # No need serial bus support
0083                   -skip qtserialport                # No need serial port support
0084                   -skip qtvirtualkeyboard           # No need virtual keyboard support
0085                   -skip qtwayland                     # No support of Wayland in AppImage with Qt5
0086                   -skip qtwebglplugin               # No need browser OpenGL extension support
0087                   -skip qtwebsockets                # No need websocket support
0088                   -skip qtwebview                   # QML extension for QWebEngine
0089                   -skip qtwinextras                 # For Windows devices only
0090                   ${DROP_QTWEBENGINE_DEPS}
0091 
0092     UPDATE_COMMAND ""
0093     BUILD_IN_SOURCE 1
0094     ALWAYS 0
0095 )