Warning, /graphics/digikam/project/bundles/3rdparty/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 # Rules to build 3rd-party libraries for digiKam bundles. 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 # Lower minimal version of cmake required by Ubuntu 18.04. 0009 cmake_minimum_required(VERSION 3.3.2) 0010 0011 project(digikam-bundles) 0012 0013 if(POLICY CMP0135) 0014 0015 cmake_policy(SET CMP0135 OLD) 0016 0017 endif() 0018 0019 function(JoinListAsString VALUES GLUE OUTPUT) 0020 string(REPLACE ";" "${GLUE}" _TMP_STR "${VALUES}") 0021 set(${OUTPUT} "${_TMP_STR}" PARENT_SCOPE) 0022 endfunction() 0023 0024 if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) 0025 message(FATAL_ERROR "Compiling in the source directory is not supported. Use for example 'mkdir build; cd build; cmake ..'.") 0026 endif() 0027 0028 # Tools must be obtained to work with: 0029 include (ExternalProject) 0030 0031 # allow specification of a directory with pre-downloaded 0032 # requirements 0033 if(NOT IS_DIRECTORY ${EXTERNALS_DOWNLOAD_DIR}) 0034 message(FATAL_ERROR "No externals download dir set. Use -DEXTERNALS_DOWNLOAD_DIR") 0035 endif() 0036 0037 if(NOT IS_DIRECTORY ${INSTALL_ROOT}) 0038 message(FATAL_ERROR "No install dir set. Use -DINSTALL_ROOT") 0039 endif() 0040 0041 set(TOP_INST_DIR ${INSTALL_ROOT}) 0042 set(EXTPREFIX "${TOP_INST_DIR}") 0043 set(CMAKE_PREFIX_PATH "${EXTPREFIX}") 0044 0045 message(STATUS "CMAKE_GENERATOR: ${CMAKE_GENERATOR}") 0046 message(STATUS "CMAKE_CL_64: ${CMAKE_CL_64}") 0047 0048 set(GLOBAL_BUILD_TYPE RelWithDebInfo) 0049 set(GLOBAL_PROFILE ${GLOBAL_PROFILE} -DBUILD_TESTING=false) 0050 set(PATCH_COMMAND patch) 0051 0052 # Function to get MD5 sums from download area for a KF5 application 0053 # The sum is available in ${KF5_APPLICATION_MD5SUM} 0054 function(GetKF5ApplicationMd5Sums 0055 name 0056 version) 0057 0058 if(MINGW) 0059 0060 # Extract MD5 sums of KF5 application directly from server. 0061 execute_process(COMMAND 0062 wget -q -O - -o /dev/null https://download.kde.org/stable/frameworks/${version}/${name}-${version}.0.tar.xz.md5 0063 COMMAND 0064 grep "tar.xz" 0065 COMMAND 0066 cut -d " " -f1 0067 RESULT_VARIABLE 0068 wgetresult 0069 OUTPUT_VARIABLE 0070 md5sm 0071 OUTPUT_STRIP_TRAILING_WHITESPACE 0072 ) 0073 0074 elseif(APPLE) 0075 0076 # Extract MD5 sums of KF5 application directly from server. 0077 execute_process(COMMAND 0078 wget -q -O - -o /dev/null https://download.kde.org/stable/frameworks/${version}/${name}-${version}.0.tar.xz.md5 0079 COMMAND 0080 grep "tar.xz" 0081 COMMAND 0082 cut -d " " -f1 0083 RESULT_VARIABLE 0084 wgetresult 0085 OUTPUT_VARIABLE 0086 md5sm 0087 OUTPUT_STRIP_TRAILING_WHITESPACE 0088 ) 0089 0090 else() # Linux 0091 0092 # Extract MD5 sums of KF5 application directly from server. 0093 execute_process(COMMAND 0094 wget -q -O - -o /dev/null https://download.kde.org/stable/frameworks/${version}/${name}-${version}.0.tar.xz.md5 0095 COMMAND 0096 grep "tar.xz" 0097 COMMAND 0098 cut -d " " -f1 0099 RESULT_VARIABLE 0100 wgetresult 0101 OUTPUT_VARIABLE 0102 md5sm 0103 OUTPUT_STRIP_TRAILING_WHITESPACE 0104 ) 0105 0106 endif() 0107 0108 message(STATUS "--------------------------------") 0109 message(STATUS "KDE application : ${name}") 0110 message(STATUS "application version: ${version}") 0111 message(STATUS "application MD5 : ${md5sm}") 0112 0113 set(${KF5_APPLICATION_MD5SUM} ${md5sm} PARENT_SCOPE) 0114 0115 endfunction() 0116 0117 # Function to get MD5 sums from download area for a Plasma component 0118 # The sum is available in ${KF5_PLASMA_MD5SUM} 0119 function(GetKF5PlasmaMd5Sums 0120 name 0121 version) 0122 0123 if(MINGW) 0124 0125 # Extract MD5 sums of KF5 Plasma component directly from server. 0126 execute_process(COMMAND 0127 wget -q -O - -o /dev/null https://download.kde.org/stable/plasma/${version}/${name}-${version}.tar.xz.md5 0128 COMMAND 0129 grep "tar.xz" 0130 COMMAND 0131 cut -d " " -f1 0132 RESULT_VARIABLE 0133 wgetresult 0134 OUTPUT_VARIABLE 0135 md5sm 0136 OUTPUT_STRIP_TRAILING_WHITESPACE 0137 ) 0138 0139 elseif(APPLE) 0140 0141 # Extract MD5 sums of KF5 Plasma component directly from server. 0142 execute_process(COMMAND 0143 wget -q -O - -o /dev/null https://download.kde.org/stable/plasma/${version}/${name}-${version}.tar.xz.md5 0144 COMMAND 0145 grep "tar.xz" 0146 COMMAND 0147 cut -d " " -f1 0148 RESULT_VARIABLE 0149 wgetresult 0150 OUTPUT_VARIABLE 0151 md5sm 0152 OUTPUT_STRIP_TRAILING_WHITESPACE 0153 ) 0154 0155 else() # Linux 0156 0157 # Extract MD5 sums of KF5 Plasma component directly from server. 0158 execute_process(COMMAND 0159 wget -q -O - -o /dev/null https://download.kde.org/stable/plasma/${version}/${name}-${version}.tar.xz.md5 0160 COMMAND 0161 grep "tar.xz" 0162 COMMAND 0163 cut -d " " -f1 0164 RESULT_VARIABLE 0165 wgetresult 0166 OUTPUT_VARIABLE 0167 md5sm 0168 OUTPUT_STRIP_TRAILING_WHITESPACE 0169 ) 0170 0171 endif() 0172 0173 message(STATUS "--------------------------------") 0174 message(STATUS "KDE Plasma component: ${name}") 0175 message(STATUS "component version : ${version}") 0176 message(STATUS "component MD5 : ${md5sm}") 0177 0178 set(${KF5_PLASMA_MD5SUM} ${md5sm} PARENT_SCOPE) 0179 0180 endfunction() 0181 0182 # this list must be dependency-ordered 0183 0184 add_subdirectory(ext_cmake) 0185 add_subdirectory(ext_jpeg) 0186 add_subdirectory(ext_jasper) 0187 add_subdirectory(ext_png) 0188 add_subdirectory(ext_tiff) 0189 add_subdirectory(ext_heif) 0190 add_subdirectory(ext_libgphoto2) 0191 add_subdirectory(ext_libde265) 0192 add_subdirectory(ext_libaom) 0193 add_subdirectory(ext_libavif) 0194 add_subdirectory(ext_libicu) 0195 add_subdirectory(ext_liblqr) 0196 add_subdirectory(ext_libjxl) 0197 add_subdirectory(ext_sane) 0198 add_subdirectory(ext_exiv2) 0199 add_subdirectory(ext_boost) 0200 add_subdirectory(ext_opencv) 0201 add_subdirectory(ext_openssl) 0202 add_subdirectory(ext_lensfun) 0203 add_subdirectory(ext_qt${ENABLE_QTVERSION}) 0204 add_subdirectory(ext_qtwebkit) 0205 add_subdirectory(ext_fcitx-qt) 0206 add_subdirectory(ext_ffmpeg) 0207 add_subdirectory(ext_drmingw) 0208 add_subdirectory(ext_imagemagick) 0209 add_subdirectory(ext_uchardet) 0210 0211 add_subdirectory(ext_kf${ENABLE_QTVERSION}) 0212 add_subdirectory(ext_mosaicwall) 0213 add_subdirectory(ext_flowview) 0214 add_subdirectory(ext_gmicqt) 0215 0216 if (${ENABLE_QTVERSION} MATCHES "5") 0217 0218 # included in KF6 target. 0219 add_subdirectory(ext_plasma-wayland-protocols) 0220 add_subdirectory(ext_libksane) 0221 add_subdirectory(ext_breeze) 0222 add_subdirectory(ext_marble) 0223 0224 endif()