File indexing completed on 2024-06-16 04:06:50
0001 #! /bin/bash 0002 0003 # Script to build a bundle VCPKG installation with all digiKam low level dependencies in a dedicated directory. 0004 # 0005 # SPDX-FileCopyrightText: 2015-2024 by Gilles Caulier <caulier dot gilles at gmail dot com> 0006 # 0007 # SPDX-License-Identifier: BSD-3-Clause 0008 # 0009 0010 # Halt and catch errors 0011 set -eE 0012 trap 'PREVIOUS_COMMAND=$THIS_COMMAND; THIS_COMMAND=$BASH_COMMAND' DEBUG 0013 trap 'echo "FAILED COMMAND: $PREVIOUS_COMMAND"' ERR 0014 0015 ################################################################################################# 0016 # Manage script traces to log file 0017 0018 mkdir -p ./logs 0019 exec > >(tee ./logs/build-vcpkg.full.log) 2>&1 0020 0021 ################################################################################################# 0022 0023 echo "01-build-vcpkg.sh : build a bundle VCPKG install with digiKam dependencies." 0024 echo "---------------------------------------------------------------------------" 0025 0026 ################################################################################################# 0027 # Pre-processing checks 0028 0029 . ./config.sh 0030 . ./common.sh 0031 StartScript 0032 ChecksCPUCores 0033 RegisterRemoteServers 0034 0035 ################################################################################################# 0036 0037 # Paths rules 0038 ORIG_PATH="$PATH" 0039 ORIG_WD="`pwd`" 0040 0041 ############################################################################################### 0042 # Check if a previous bundle already exist 0043 0044 CONTINUE_INSTALL=0 0045 0046 if [ -d "$VCPKG_DIR" ] ; then 0047 0048 read -p "$VCPKG_DIR already exist. Do you want to remove it or to continue an aborted previous installation ? [(r)emove/(c)ontinue/(s)top] " answer 0049 0050 if echo "$answer" | grep -iq "^r" ;then 0051 0052 echo "---------- Removing existing $VCPKG_BUILDROOT" 0053 rm -rf "$VCPKG_DIR" 0054 0055 elif echo "$answer" | grep -iq "^c" ;then 0056 0057 echo "---------- Continue aborted previous installation in $VCPKG_DIR" 0058 CONTINUE_INSTALL=1 0059 0060 else 0061 0062 echo "---------- Aborting..." 0063 exit; 0064 0065 fi 0066 0067 fi 0068 0069 if [[ $CONTINUE_INSTALL == 0 ]]; then 0070 0071 ################################################################################################# 0072 # Checkout latest VCPKG from github 0073 0074 git clone https://github.com/Microsoft/vcpkg.git $VCPKG_DIR 0075 0076 $VCPKG_DIR/bootstrap-vcpkg.bat 0077 0078 fi 0079 0080 ################################################################################################# 0081 # Update VCPKG port files 0082 0083 cd $VCPKG_DIR 0084 0085 git pull 0086 $VCPKG_DIR/vcpkg update 0087 0088 ################################################################################################# 0089 # Dependencies build and installation 0090 0091 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install angle 0092 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install mesa[offscreen] 0093 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install openssl 0094 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install pthreads 0095 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install gettext 0096 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install icu 0097 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install libpng 0098 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install tiff 0099 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install libmysql 0100 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install libjpeg-turbo 0101 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install jasper 0102 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install libde265 0103 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install libjxl 0104 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install aom 0105 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install libavif[aom] 0106 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install libheif 0107 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install freeglut 0108 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install brotli 0109 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install liblzma 0110 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install zlib 0111 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install zstd 0112 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install bzip2 0113 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install ffmpeg[ffmpeg,all-nonfree] 0114 0115 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install qtbase[sql-mysql] 0116 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install qtmultimedia[ffmpeg] 0117 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install qtnetworkauth 0118 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install qttranslations 0119 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install qtimageformats 0120 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install qttools 0121 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install qtsvg 0122 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install qtscxml 0123 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install qtspeech 0124 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install qtwebchannel 0125 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install qtpositioning 0126 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install qtwebengine 0127 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install qt5compat 0128 0129 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install opencv 0130 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install boost 0131 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install lcms 0132 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install eigen3 0133 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install expat 0134 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install libxml2 0135 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install libxslt 0136 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install libical 0137 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install fftw3 0138 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install openexr 0139 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install gperf 0140 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install libsnoretoast 0141 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install hunspell 0142 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install openal-soft 0143 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install curl 0144 $VCPKG_DIR/vcpkg ${VCPKG_COMMON_OPTIONS[@]} install glib 0145 0146 echo -e "\n" 0147 0148 cd $ORIG_WD 0149 cp -f ../../scripts/create_manifest.sh $VCPKG_DIR 0150 cd $VCPKG_DIR 0151 $VCPKG_DIR/create_manifest.sh $VCPKG_DIR vcpkg 0152 cp $VCPKG_DIR/vcpkg_manifest.txt $ORIG_WD/data/ 0153 0154 # --- 0155 0156 if [ ! -d $BUILDING_DIR/dk_cmake ] ; then 0157 mkdir -p $BUILDING_DIR/dk_cmake 0158 fi 0159 0160 cd $BUILDING_DIR/dk_cmake 0161 0162 rm -rf $BUILDING_DIR/dk_cmake/* || true 0163 0164 cmake $ORIG_WD/../3rdparty \ 0165 -DCMAKE_TOOLCHAIN_FILE=$VCPKG_DIR/scripts/buildsystems/vcpkg.cmake \ 0166 -DVCPKG_TARGET_TRIPLET=$VCPKG_TRIPLET \ 0167 -DCMAKE_BUILD_TYPE=RelWithDebInfo \ 0168 -DCMAKE_COLOR_MAKEFILE=ON \ 0169 -DCMAKE_INSTALL_PREFIX=$VCPKG_INSTALL_PREFIX \ 0170 -DINSTALL_ROOT=$VCPKG_INSTALL_PREFIX \ 0171 -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \ 0172 -DEXTERNALS_DOWNLOAD_DIR=$DOWNLOAD_DIR \ 0173 -DKA_VERSION=$DK_KA_VERSION \ 0174 -DKP_VERSION=$DK_KP_VERSION \ 0175 -DKDE_VERSION=$DK_KDE_VERSION \ 0176 -DENABLE_QTVERSION=$DK_QTVERSION \ 0177 -DENABLE_QTWEBENGINE=$DK_QTWEBENGINE \ 0178 -Wno-dev 0179 0180 cmake --build . --config RelWithDebInfo --target ext_exiv2 --parallel 0181 cp $DOWNLOAD_DIR/exiv2_manifest.txt $ORIG_WD/data/ 0182 0183 export PATH=$ORIG_PATH 0184 0185 TerminateScript