File indexing completed on 2024-04-14 04:12:55
0001 #!/bin/bash 0002 0003 # SPDX-FileCopyrightText: 2008-2024 by Gilles Caulier, <caulier dot gilles at gmail dot com> 0004 # SPDX-FileCopyrightText: 2015 by Ulf Rompe <kde dot org at rompe dot org> 0005 # 0006 # SPDX-License-Identifier: BSD-3-Clause 0007 0008 # Halt and catch errors 0009 set -eE 0010 trap 'PREVIOUS_COMMAND=$THIS_COMMAND; THIS_COMMAND=$BASH_COMMAND' DEBUG 0011 trap 'echo "FAILED COMMAND: $PREVIOUS_COMMAND"' ERR 0012 0013 # Uncomment and adjust lines below to use Clang compiler instead GCC 0014 #export CC=/usr/bin/clang 0015 #export CXX=/usr/bin/clang++ 0016 0017 SOURCEDIR=$PWD 0018 export BUILD_WITH_QT6=0 0019 0020 if [[ $BUILD_WITH_QT6 == 1 ]] ; then 0021 QTPATHS="qtpaths6" 0022 else 0023 QTPATHS="qtpaths" 0024 fi 0025 0026 # Prior Qt6 first. if failed try Qt5 0027 # Customized install Qt path compiled with https://github.com/cgilles/digikam-install-deps.git 0028 0029 if [[ -d /opt/qt6 && $BUILD_WITH_QT6 == 1 ]] ; then 0030 0031 export Qt6_DIR=/opt/qt6 0032 0033 QTPATHS="/opt/qt6/bin/qtpaths6" 0034 0035 export CMAKE_BINARY=/opt/qt6/bin/cmake 0036 0037 elif [ -d /opt/qt5 ] ; then 0038 0039 export Qt5_DIR=/opt/qt5 0040 0041 QTPATHS="/opt/qt5/bin/qtpaths" 0042 0043 export CMAKE_BINARY=/opt/qt5/bin/cmake 0044 0045 export BUILD_WITH_QT6=0 0046 0047 fi 0048 0049 command -v $QTPATHS >/dev/null 2>&1 || { echo >&2 "This script require $QTPATHS CLI tool from Qt project but it's not installed. Aborting."; exit 1; } 0050 0051 if [ "$1" == "" ]; then 0052 MAKEFILES_TYPE='Unix Makefiles' 0053 0054 if [[ $BUILD_WITH_QT6 == 1 ]] ; then 0055 BUILDDIR=$PWD"/build.qt6" 0056 else 0057 BUILDDIR=$PWD"/build" 0058 fi 0059 0060 MESSAGE="Now run make in $BUILDDIR." 0061 0062 elif [ "$1" == "--ninja" ]; then 0063 0064 MAKEFILES_TYPE='Ninja' 0065 0066 if [[ $BUILD_WITH_QT6 == 1 ]] ; then 0067 BUILDDIR=$PWD"/build.qt6" 0068 else 0069 BUILDDIR=$PWD"/build" 0070 fi 0071 0072 MESSAGE="Now run ninja in $BUILDDIR." 0073 0074 elif [ "$1" == "--eclipse" ]; then 0075 0076 MAKEFILES_TYPE='Eclipse CDT4 - Unix Makefiles' 0077 ADDITIONAL_CMAKE_FLAGS="-DCMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT=ON $ADDITIONAL_CMAKE_FLAGS" 0078 BUILDDIR=$PWD"-debug" 0079 MESSAGE=" 0080 Now import these folders as existing projects into Eclipse without 0081 copying source into the workspace: 0082 $SOURCEDIR 0083 $BUILDDIR" 0084 0085 else 0086 0087 echo "Syntax: $0 [--eclipse] [--ninja]" 0088 echo "Run without arguments to create a Unix Makefile project in a build subdir." 0089 echo "Run with '--eclipse' to create an Eclipse IDE project and build source in a parallel directory." 0090 echo "Run with '--ninja' to create Ninja Makefile project in a build subdir." 0091 exit 1 0092 0093 fi 0094 0095 if [[ "$ARCH" = "x86_64" ]] ; then 0096 LIBPATH="lib64" 0097 elif [[ "$ARCH" = "i686" ]] ; then 0098 LIBPATH="lib" 0099 fi 0100 0101 QT_INSTALL_PREFIX=`$QTPATHS --install-prefix` 0102 QT_PLUGIN_INSTALL_DIR=`$QTPATHS --plugin-dir` 0103 export PATH=$QT_INSTALL_PREFIX/bin:$PATH 0104 0105 if [ "$CMAKE_BINARY" == "" ]; then 0106 CMAKE_BINARY="cmake" 0107 fi 0108 0109 if [ "$DIGIKAM_INSTALL_PREFIX" == "" ]; then 0110 DIGIKAM_INSTALL_PREFIX="/usr" 0111 else 0112 # bootstrap.local may have preset DIGIKAM_INSTALL_PREFIX. 0113 QT_PLUGIN_INSTALL_DIR=$DIGIKAM_INSTALL_PREFIX/$LIBPATH/plugins 0114 export PATH=$DIGIKAM_INSTALL_PREFIX/bin:$PATH 0115 fi 0116 0117 export LD_LIBRARY_PATH=$DIGIKAM_INSTALL_PREFIX/$LIBPATH:$LD_LIBRARY_PATH 0118 export PKG_CONFIG_PATH=$DIGIKAM_INSTALL_PREFIX/$LIBPATH/pkgconfig:$PKG_CONFIG_PATH 0119 0120 echo "Qt Install Path : $QT_INSTALL_PREFIX" 0121 echo "digiKam Install Path : $DIGIKAM_INSTALL_PREFIX" 0122 echo "CMake binary : $CMAKE_BINARY" 0123 echo "Build Directory : $BUILDDIR" 0124 echo "Build for Qt6 : $BUILD_WITH_QT6" 0125 echo "ECM min version : $ECM_MIN_VERSION" 0126 0127 mkdir -p $DIGIKAM_INSTALL_PREFIX 0128 mkdir -p $BUILDDIR 0129 cd $BUILDDIR 0130 0131 $CMAKE_BINARY -G "$MAKEFILES_TYPE" . \ 0132 -DCMAKE_BUILD_TYPE=debug \ 0133 -DCMAKE_INSTALL_PREFIX=$DIGIKAM_INSTALL_PREFIX/ \ 0134 -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \ 0135 -DKDE_INSTALL_QTPLUGINDIR=$QT_PLUGIN_INSTALL_DIR/ \ 0136 $ADDITIONAL_CMAKE_FLAGS \ 0137 -DBUILD_TESTING=ON \ 0138 -DBUILD_WITH_CCACHE=ON \ 0139 -DBUILD_WITH_QT6=$BUILD_WITH_QT6 \ 0140 -DDIGIKAMSC_COMPILE_PO=OFF \ 0141 -DDIGIKAMSC_COMPILE_DIGIKAM=ON \ 0142 -DENABLE_KFILEMETADATASUPPORT=ON \ 0143 -DENABLE_AKONADICONTACTSUPPORT=ON \ 0144 -DENABLE_MYSQLSUPPORT=ON \ 0145 -DENABLE_INTERNALMYSQL=ON \ 0146 -DENABLE_GEOLOCATION=ON \ 0147 -DENABLE_MEDIAPLAYER=ON \ 0148 -DENABLE_DBUS=ON \ 0149 -DENABLE_APPSTYLES=ON \ 0150 -DENABLE_QWEBENGINE=ON \ 0151 $SOURCEDIR && echo "$MESSAGE"