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

0001 # Script to build KDE Frameworks for digiKam bundle.
0002 #
0003 # SPDX-FileCopyrightText: 2015-2024 by Gilles Caulier  <caulier dot gilles at gmail dot com>
0004 #
0005 # SPDX-License-Identifier: BSD-3-Clause
0006 #
0007 
0008 set(EXTPREFIX_frameworks "${EXTPREFIX}")
0009 
0010 function(InstallKDEComponent
0011          name
0012          version
0013          argoptions
0014          patch)
0015 
0016     if(MINGW)
0017 
0018         # Extract MD5 sums of each KDE components directly from server.
0019         execute_process(COMMAND
0020                             wget -q -O - -o /dev/null https://download.kde.org/stable/frameworks/${version}/${name}-${version}.0.tar.xz.md5
0021                         COMMAND
0022                             grep "tar.xz"
0023                         COMMAND
0024                             cut -d " " -f1
0025                         RESULT_VARIABLE
0026                             wgetresult
0027                         OUTPUT_VARIABLE
0028                             md5sm
0029                         OUTPUT_STRIP_TRAILING_WHITESPACE
0030         )
0031 
0032         message(STATUS "--------------------------------")
0033         message(STATUS "KDE component    : ${name}")
0034         message(STATUS "Component version: ${version}")
0035         message(STATUS "Component MD5    : ${md5sm}")
0036         message(STATUS "Configure options: ${argoptions}")
0037         message(STATUS "Patch to apply   : ${patch}")
0038 
0039         if(NOT "${patch}" STREQUAL "")
0040             set(patch "${PATCH_COMMAND};-p1;-i;${CMAKE_CURRENT_SOURCE_DIR}/${patch}")
0041         endif()
0042 
0043         ExternalProject_Add(ext_${name}
0044                             DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR}
0045                             URL https://download.kde.org/stable/frameworks/${version}/${name}-${version}.0.tar.xz
0046                             URL_MD5 ${md5sm}
0047 
0048                             INSTALL_DIR ${EXTPREFIX_frameworks}
0049 
0050                             CMAKE_ARGS -DMXE_TOOLCHAIN=${MXE_TOOLCHAIN}
0051                                        -DCMAKE_BUILD_TYPE=${GLOBAL_BUILD_TYPE}
0052                                        -DCMAKE_COLOR_MAKEFILE=ON
0053                                        -DCMAKE_INSTALL_PREFIX=${EXTPREFIX_frameworks}
0054                                        -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON
0055                                        -DCMAKE_TOOLCHAIN_FILE=${MXE_TOOLCHAIN}
0056                                        -DCMAKE_FIND_PREFIX_PATH=${CMAKE_PREFIX_PATH}
0057                                        -DCMAKE_SYSTEM_INCLUDE_PATH=${CMAKE_PREFIX_PATH}/include
0058                                        -DCMAKE_INCLUDE_PATH=${CMAKE_PREFIX_PATH}/include
0059                                        -DCMAKE_LIBRARY_PATH=${CMAKE_PREFIX_PATH}/lib
0060                                        -DBUILD_TESTING=OFF
0061                                        -DZLIB_ROOT=${CMAKE_PREFIX_PATH}
0062                                        -DINSTALL_ROOT=${MXE_INSTALL_PREFIX}
0063                                        ${GLOBAL_PROFILE}
0064                                        "${argoptions}"
0065                                        -Wno-dev
0066 
0067                             PATCH_COMMAND ${patch}
0068                             UPDATE_COMMAND ""
0069                             ALWAYS 0
0070         )
0071 
0072     elseif(APPLE)
0073 
0074         # Extract MD5 sums of each KDE components directly from server.
0075         execute_process(COMMAND
0076                             wget -q -O - -o /dev/null https://download.kde.org/stable/frameworks/${version}/${name}-${version}.0.tar.xz.md5
0077                         COMMAND
0078                             grep "tar.xz"
0079                         COMMAND
0080                             cut -d " " -f1
0081                         RESULT_VARIABLE
0082                             wgetresult
0083                         OUTPUT_VARIABLE
0084                             md5sm
0085                         OUTPUT_STRIP_TRAILING_WHITESPACE
0086         )
0087 
0088         message(STATUS "--------------------------------")
0089         message(STATUS "KDE component    : ${name}")
0090         message(STATUS "Component version: ${version}")
0091         message(STATUS "Component MD5    : ${md5sm}")
0092         message(STATUS "Configure options: ${argoptions}")
0093         message(STATUS "Patch to apply   : ${patch}")
0094 
0095         if(NOT "${patch}" STREQUAL "")
0096             set(patch "${PATCH_COMMAND};-p1;-i;${CMAKE_CURRENT_SOURCE_DIR}/${patch};&&")
0097         endif()
0098 
0099         ExternalProject_Add(ext_${name}
0100                             DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR}
0101                             URL https://download.kde.org/stable/frameworks/${version}/${name}-${version}.0.tar.xz
0102                             URL_MD5 ${md5sm}
0103 
0104                             PATCH_COMMAND ${patch}
0105                                           cp ${CMAKE_CURRENT_SOURCE_DIR}/../../macports/fixbundledatapath.sh <SOURCE_DIR>/. &&
0106                                           <SOURCE_DIR>/fixbundledatapath.sh
0107 
0108                             CONFIGURE_COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/../../../../bootstrap.macports <SOURCE_DIR>/. &&
0109                                               sed -i '' -e "s/DBUILD_TESTING=ON/DBUILD_TESTING=OFF/g" <SOURCE_DIR>/bootstrap.macports &&
0110                                               <SOURCE_DIR>/bootstrap.macports ${EXTPREFIX_frameworks} debug x86_64 "${argoptions}"
0111 
0112                             BUILD_COMMAND cd <SOURCE_DIR>/build && $(MAKE)
0113 
0114                             INSTALL_COMMAND cd <SOURCE_DIR>/build && make install/fast
0115 
0116                             BUILD_IN_SOURCE 1
0117 
0118                             UPDATE_COMMAND ""
0119                             ALWAYS 0
0120         )
0121 
0122     else() # Linux
0123 
0124         # Extract MD5 sums of each KDE components directly from server.
0125         execute_process(COMMAND
0126                             wget -q -O - -o /dev/null https://download.kde.org/stable/frameworks/${version}/${name}-${version}.0.tar.xz.md5
0127                         COMMAND
0128                             grep "tar.xz"
0129                         COMMAND
0130                             cut -d " " -f1
0131                         RESULT_VARIABLE
0132                             wgetresult
0133                         OUTPUT_VARIABLE
0134                             md5sm
0135                         OUTPUT_STRIP_TRAILING_WHITESPACE
0136         )
0137 
0138         message(STATUS "--------------------------------")
0139         message(STATUS "KDE component    : ${name}")
0140         message(STATUS "Component version: ${version}")
0141         message(STATUS "Component MD5    : ${md5sm}")
0142         message(STATUS "Configure options: ${argoptions}")
0143         message(STATUS "Patch to apply   : ${patch}")
0144 
0145         if(NOT "${patch}" STREQUAL "")
0146             set(patch "${PATCH_COMMAND};-p1;-i;${CMAKE_CURRENT_SOURCE_DIR}/${patch}")
0147         endif()
0148 
0149         ExternalProject_Add(ext_${name}
0150                             DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR}
0151                             URL https://download.kde.org/stable/frameworks/${version}/${name}-${version}.0.tar.xz
0152                             URL_MD5 ${md5sm}
0153 
0154                             PATCH_COMMAND ${patch}
0155 
0156                             INSTALL_DIR ${EXTPREFIX_frameworks}
0157                             CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTPREFIX_frameworks}
0158                                        -DCMAKE_BUILD_TYPE=${GLOBAL_BUILD_TYPE}
0159                                        ${GLOBAL_PROFILE}
0160                                        -DCMAKE_SYSTEM_PREFIX_PATH=${EXTPREFIX}
0161                                        -DBUILD_TESTING=OFF
0162                                        "${argoptions}"
0163                                        -Wno-dev
0164                             UPDATE_COMMAND ""
0165                             ALWAYS 0
0166         )
0167 
0168     endif()
0169 
0170 endfunction()
0171 
0172 if(APPLE)
0173     set(MacosThreadWeaverPatch threadweaver-macports.patch)
0174     set(MacosKauthBackend -DKAUTH_BACKEND_NAME=Apple)
0175 else()
0176     set(KCalendarCorePatch kcalendarcore-libical.patch)
0177 endif()
0178 
0179 if(MINGW)
0180     set(MacosCoreAddonsPatch kcoreaddons-mingw.patch)
0181     set(BreezeIconsOptions -DBINARY_ICONS_RESOURCE=OFF)
0182 else()
0183     set(BreezeIconsOptions -DBINARY_ICONS_RESOURCE=ON)
0184 endif()
0185 
0186 if(NOT APPLE AND NOT MINGW AND NOT WIN32)
0187     set(AppImageServicePatch kservice-sycoca.patch)
0188 endif()
0189 
0190 if (${ENABLE_QTVERSION} MATCHES "6.*")
0191     set(Qt6CommonOptions -DQT_MAJOR_VERSION=6 -DBUILD_WITH_QT6=ON -DEXCLUDE_DEPRECATED_BEFORE_AND_AT=5.94.0)
0192 endif()
0193 
0194 InstallKDEComponent(extra-cmake-modules ${KDE_VERSION} "${Qt6CommonOptions}"                       "extracmakemodules-compiler-options.patch")
0195 InstallKDEComponent(kconfig             ${KDE_VERSION} "${Qt6CommonOptions}"                       "")
0196 InstallKDEComponent(breeze-icons        ${KDE_VERSION} "${Qt6CommonOptions};${BreezeIconsOptions}" "breeze-dropsvg-rccprefix.patch")
0197 InstallKDEComponent(solid               ${KDE_VERSION} "${Qt6CommonOptions}"                       "")
0198 InstallKDEComponent(kcoreaddons         ${KDE_VERSION} "${Qt6CommonOptions}"                       "kcoreaddons-mingw.patch")
0199 InstallKDEComponent(threadweaver        ${KDE_VERSION} "${Qt6CommonOptions}"                       "${MacosThreadWeaverPatch}")
0200 InstallKDEComponent(kwindowsystem       ${KDE_VERSION} "${Qt6CommonOptions}"                       "")
0201 InstallKDEComponent(karchive            ${KDE_VERSION} "${Qt6CommonOptions}"                       "")
0202 InstallKDEComponent(kdbusaddons         ${KDE_VERSION} "${Qt6CommonOptions}"                       "")
0203 InstallKDEComponent(ki18n               ${KDE_VERSION} "${Qt6CommonOptions}"                       "ki18n-mingw.patch")
0204 InstallKDEComponent(kcrash              ${KDE_VERSION} "${Qt6CommonOptions}"                       "")
0205 InstallKDEComponent(kcodecs             ${KDE_VERSION} "${Qt6CommonOptions}"                       "")
0206 InstallKDEComponent(kauth               ${KDE_VERSION} "${Qt6CommonOptions};${MacosKauthBackend}"  "")
0207 InstallKDEComponent(kguiaddons          ${KDE_VERSION} "${Qt6CommonOptions};-DWITH_WAYLAND=OFF"    "kguiaddons-mingw.patch")
0208 InstallKDEComponent(kwidgetsaddons      ${KDE_VERSION} "${Qt6CommonOptions}"                       "")
0209 InstallKDEComponent(kitemviews          ${KDE_VERSION} "${Qt6CommonOptions}"                       "")
0210 InstallKDEComponent(kcompletion         ${KDE_VERSION} "${Qt6CommonOptions}"                       "")
0211 InstallKDEComponent(kconfigwidgets      ${KDE_VERSION} "${Qt6CommonOptions}"                       "")
0212 InstallKDEComponent(kiconthemes         ${KDE_VERSION} "${Qt6CommonOptions}"                       "")
0213 InstallKDEComponent(kservice            ${KDE_VERSION} "${Qt6CommonOptions}"                       "")
0214 InstallKDEComponent(kglobalaccel        ${KDE_VERSION} "${Qt6CommonOptions}"                       "")
0215 InstallKDEComponent(kcalendarcore       ${KDE_VERSION} "${Qt6CommonOptions}"                       "${KCalendarCorePatch}")
0216 InstallKDEComponent(kxmlgui             ${KDE_VERSION} "${Qt6CommonOptions}"                       "")
0217 InstallKDEComponent(kbookmarks          ${KDE_VERSION} "${Qt6CommonOptions}"                       "")
0218 InstallKDEComponent(kimageformats       ${KDE_VERSION} "${Qt6CommonOptions}"                       "")
0219 InstallKDEComponent(knotifyconfig       ${KDE_VERSION} "${Qt6CommonOptions}"                       "knotifyconfig-drop-phonon.patch")
0220 InstallKDEComponent(knotifications      ${KDE_VERSION} "${Qt6CommonOptions}"                       "knotifications-drop-phonon.patch")
0221 InstallKDEComponent(kjobwidgets         ${KDE_VERSION} "${Qt6CommonOptions}"                       "")
0222 InstallKDEComponent(sonnet              ${KDE_VERSION} "${Qt6CommonOptions}"                       "")
0223 InstallKDEComponent(ktextwidgets        ${KDE_VERSION} "${Qt6CommonOptions}"                       "")
0224 InstallKDEComponent(kio                 ${KDE_VERSION} "${Qt6CommonOptions}"                       "kio-drop-ktextwidgets.patch")
0225 InstallKDEComponent(kinit               ${KDE_VERSION} "${Qt6CommonOptions}"                       "")