File indexing completed on 2024-04-21 04:16:43

0001 #!/bin/bash
0002 
0003 # SPDX-FileCopyrightText: 2008-2024 by Gilles Caulier, <caulier dot gilles at gmail dot com>
0004 #
0005 # SPDX-License-Identifier: BSD-3-Clause
0006 #
0007 # Arguments : $1 : MXE build root path to MXE bundle dir (default ./project/mxe/build.win32).
0008 #             $2 : build type : 'debugfull' to hack (default), 'release' for production, relwithdebinfo for packaging.
0009 #             $3 : Cmake extra configure options.
0010 
0011 # Halt and catch errors
0012 set -eE
0013 trap 'PREVIOUS_COMMAND=$THIS_COMMAND; THIS_COMMAND=$BASH_COMMAND' DEBUG
0014 trap 'echo "FAILED COMMAND: $PREVIOUS_COMMAND"' ERR
0015 
0016 MXE_BUILDROOT=$1
0017 
0018 if [[ $MXE_BUILDROOT == "" ]]; then
0019 
0020     if [ -d "`pwd`/project/bundles/mxe/build.win32" ]; then
0021 
0022         echo "Auto-detected 32 bits shared MXE target"
0023         MXE_BUILD_TARGETS="i686-w64-mingw32.shared"
0024         MXE_BUILDROOT="`pwd`/project/bundles/mxe/build.win32"
0025 
0026     elif [ -d "`pwd`/project/bundles/mxe/build.win64" ]; then
0027 
0028         echo "Auto-detected 64 bits shared MXE target"
0029         MXE_BUILD_TARGETS="x86_64-w64-mingw32.shared"
0030         MXE_BUILDROOT="`pwd`/project/bundles/mxe/build.win64"
0031 
0032     else
0033 
0034         echo "Cannot auto-detect MXE target!"
0035         exit -1
0036 
0037     fi
0038 
0039 elif [[ $MXE_BUILDROOT == *.win32 ]]; then
0040 
0041     echo "MXE target : 32 bits shared"
0042     MXE_BUILD_TARGETS="i686-w64-mingw32.shared"
0043 
0044 elif [[ $MXE_BUILDROOT == *.win64 ]]; then
0045 
0046     echo "MXE target : 64 bits shared"
0047     MXE_BUILD_TARGETS="x86_64-w64-mingw32.shared"
0048 
0049 else
0050 
0051     echo "Invalid MXE target!"
0052     exit -1
0053 
0054 fi
0055 
0056 BUILD_TYPE=$2
0057 
0058 if [ "$BUILD_TYPE" = "" ]; then
0059     BUILD_TYPE=RelWithDebInfo
0060 fi
0061 
0062 MXE_INSTALL_PREFIX=${MXE_BUILDROOT}/usr/${MXE_BUILD_TARGETS}/
0063 MXE_TOOLCHAIN=${MXE_INSTALL_PREFIX}/share/cmake/mxe-conf.cmake
0064 
0065 OPTIONS=$3
0066 
0067 echo "Installing to $MXE_BUILDROOT for target $MXE_BUILD_TARGETS with build mode $BUILD_TYPE and configure options $OPTIONS"
0068 
0069 # Paths rules
0070 ORIG_PATH="$PATH"
0071 export PATH=$MXE_BUILDROOT/usr/bin:$MXE_INSTALL_PREFIX/qt5/bin:$PATH
0072 
0073 if [ ! -d "build.mxe" ]; then
0074     mkdir build.mxe
0075 fi
0076 
0077 if [ -e "./project/mxe/png2ico/png2ico" ]; then
0078     PNG2ICO_PATH="-DPng2Ico_EXECUTABLE=`pwd`/project/mxe/png2ico/png2ico"
0079 fi
0080 
0081 cd build.mxe
0082 
0083 ${MXE_BUILD_TARGETS}-cmake -G "Unix Makefiles" . \
0084                            -DMXE_TOOLCHAIN=${MXE_TOOLCHAIN} \
0085                            -DMXE_USE_CCACHE= \
0086                            -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
0087                            -DCMAKE_COLOR_MAKEFILE=ON \
0088                            -DCMAKE_INSTALL_PREFIX=${MXE_INSTALL_PREFIX} \
0089                            -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \
0090                            -DCMAKE_TOOLCHAIN_FILE=${MXE_TOOLCHAIN} \
0091                            -DCMAKE_FIND_PREFIX_PATH=${CMAKE_PREFIX_PATH} \
0092                            -DCMAKE_SYSTEM_INCLUDE_PATH=${CMAKE_PREFIX_PATH}/include \
0093                            -DCMAKE_INCLUDE_PATH=${CMAKE_PREFIX_PATH}/include \
0094                            -DCMAKE_LIBRARY_PATH=${CMAKE_PREFIX_PATH}/lib \
0095                            -DZLIB_ROOT=${CMAKE_PREFIX_PATH} \
0096                            -DOpenCV_DIR=${MXE_INSTALL_PREFIX}/lib \
0097                            -DBUILD_TESTING=ON \
0098                            -DBUILD_WITH_CCACHE=ON \
0099                            -DDIGIKAMSC_COMPILE_PO=OFF \
0100                            -DDIGIKAMSC_COMPILE_DIGIKAM=ON \
0101                            -DENABLE_KFILEMETADATASUPPORT=OFF \
0102                            -DENABLE_AKONADICONTACTSUPPORT=OFF \
0103                            -DENABLE_MYSQLSUPPORT=ON \
0104                            -DENABLE_INTERNALMYSQL=ON \
0105                            -DENABLE_GEOLOCATION=ON \
0106                            -DENABLE_MEDIAPLAYER=ON \
0107                            -DENABLE_DBUS=OFF \
0108                            -DENABLE_KIO=OFF \
0109                            -DENABLE_APPSTYLES=ON \
0110                            -DENABLE_QWEBENGINE=OFF \
0111                            -DENABLE_DRMINGW=ON \
0112                            ${PNG2ICO_PATH} \
0113                            ${OPTIONS} \
0114                            -Wno-dev \
0115                            ..
0116 
0117 CMAKE_VAL_RET=$?
0118 
0119 export PATH=$ORIG_PATH
0120 
0121 exit $CMAKE_VAL_RET