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