diff --git a/project/bundles/3rdparty/ext_qtav/CMakeLists.txt b/project/bundles/3rdparty/ext_qtav/CMakeLists.txt index 2639f733df..41a8cfb773 100644 --- a/project/bundles/3rdparty/ext_qtav/CMakeLists.txt +++ b/project/bundles/3rdparty/ext_qtav/CMakeLists.txt @@ -1,134 +1,131 @@ # Script to build QtAV for digiKam bundle. # # Copyright (c) 2015-2020 by Gilles Caulier # # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. # set(PREFIX_ext_qtav "${EXTPREFIX}") set(QTAV_VERSION v1.13.0) #set(QTAV_VERSION master) if(MINGW) if (${MXE_ARCHBITS} MATCHES "64") set(LIB_DIR "lib_win_x86_64") else() set(LIB_DIR "lib_win_x86") endif() ExternalProject_Add(ext_qtav DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} GIT_REPOSITORY https://github.com/wang-bin/QtAV.git # GIT_TAG ${QTAV_VERSION} CONFIGURE_COMMAND git submodule update --init && rm -rfv ${MXE_INSTALL_PREFIX}/qt5/include/QtAV && rm -rfv ${MXE_INSTALL_PREFIX}/qt5/include/QtAVWidgets && rm -fv ${MXE_INSTALL_PREFIX}/qt5/lib/libQtAV1.a && rm -fv ${MXE_INSTALL_PREFIX}/qt5/lib/libQtAVWidgets1.a && rm -fv ${MXE_INSTALL_PREFIX}/qt5/bin/QtAV1.dll && rm -fv ${MXE_INSTALL_PREFIX}/qt5/bin/QtAVWidgets1.dll && mkdir build && cd build && ${MXE_INSTALL_PREFIX}/qt5/bin/qmake CONFIG+=no_examples .. BUILD_COMMAND cd build && $(MAKE) INSTALL_COMMAND cp -rfv /src/QtAV ${MXE_INSTALL_PREFIX}/qt5/include/ && cp -rfv /widgets/QtAVWidgets ${MXE_INSTALL_PREFIX}/qt5/include/ && cp -fv /build/${LIB_DIR}/libQtAV1.a ${MXE_INSTALL_PREFIX}/qt5/lib/ && cp -fv /build/${LIB_DIR}/libQtAVWidgets1.a ${MXE_INSTALL_PREFIX}/qt5/lib/ && cp -fv /build/${LIB_DIR}/QtAV1.dll ${MXE_INSTALL_PREFIX}/qt5/bin/ && cp -fv /build/${LIB_DIR}/QtAVWidgets1.dll ${MXE_INSTALL_PREFIX}/qt5/bin/ BUILD_IN_SOURCE 1 UPDATE_COMMAND "" ALWAYS 0 ) elseif(APPLE) ExternalProject_Add(ext_qtav DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} GIT_REPOSITORY https://github.com/wang-bin/QtAV.git # GIT_TAG ${QTAV_VERSION} PATCH_COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/qtav-rules-macos.patch CONFIGURE_COMMAND git submodule update --init && rm -rfv ${INSTALL_ROOT}/libexec/qt5/lib/QtAV.framework && rm -rfv ${INSTALL_ROOT}/libexec/qt5/lib/QtAVWidgets.framework && rm -rfv ${INSTALL_ROOT}/libexec/qt5/include/QtAV && rm -rfv ${INSTALL_ROOT}/libexec/qt5/include/QtAVWidgets && mkdir build && cd build && qmake .. BUILD_COMMAND cd build && $(MAKE) INSTALL_COMMAND install_name_tool -id ${INSTALL_ROOT}/libexec/qt5/lib/QtAV.framework/Versions/1/QtAV /build/lib_osx_x86_64_llvm/QtAV.framework/QtAV && install_name_tool -id ${INSTALL_ROOT}/libexec/qt5/lib/QtAVWidgets.framework/Versions/1/QtAVWidgets /build/lib_osx_x86_64_llvm/QtAVWidgets.framework/QtAVWidgets && install_name_tool -change QtAV.framework/Versions/1/QtAV ${INSTALL_ROOT}/libexec/qt5/lib/QtAV.framework/Versions/1/QtAV /build/lib_osx_x86_64_llvm/QtAVWidgets.framework/QtAVWidgets && cp -rfv /build/lib_osx_x86_64_llvm/QtAV.framework ${INSTALL_ROOT}/libexec/qt5/lib/ && cp -rfv /build/lib_osx_x86_64_llvm/QtAVWidgets.framework ${INSTALL_ROOT}/libexec/qt5/lib/ && ln -s ${INSTALL_ROOT}/libexec/qt5/lib/QtAV.framework/Headers ${INSTALL_ROOT}/libexec/qt5/include/QtAV && ln -s ${INSTALL_ROOT}/libexec/qt5/lib/QtAVWidgets.framework/Headers ${INSTALL_ROOT}/libexec/qt5/include/QtAVWidgets BUILD_IN_SOURCE 1 UPDATE_COMMAND "" ALWAYS 0 ) else() #Linux set(LIB_DIR "lib") ExternalProject_Add(ext_qtav DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} -# URL https://sourceforge.net/projects/qtav/files/v1.12.0/v1.12.0.tar.gz/download -# URL_MD5 59d858d19706d75099a9dba531572529 - GIT_REPOSITORY https://github.com/wang-bin/QtAV.git # GIT_TAG ${QTAV_VERSION} CONFIGURE_COMMAND cd && git submodule update --init && rm -rfv ${INSTALL_ROOT}/include/QtAV && rm -rfv ${INSTALL_ROOT}/include/QtAVWidgets && rm -fv ${INSTALL_ROOT}/lib/libQtAV.so && rm -fv ${INSTALL_ROOT}/lib/libQtAV.so.1 && rm -fv ${INSTALL_ROOT}/lib/libQtAV.so.1.13 && rm -fv ${INSTALL_ROOT}/lib/libQtAV.so.1.13.0 && rm -fv ${INSTALL_ROOT}/lib/libQtAVWidgets.so && rm -fv ${INSTALL_ROOT}/lib/libQtAVWidgets.so.1 && rm -fv ${INSTALL_ROOT}/lib/libQtAVWidgets.so.1.13 && rm -fv ${INSTALL_ROOT}/lib/libQtAVWidgets.so.1.13.0 && cd && mkdir build && cd build && $(CMAKE_COMMAND) .. -DCMAKE_INSTALL_PREFIX=${PREFIX_ext_qtav} -DCMAKE_BUILD_TYPE=${GLOBAL_BUILD_TYPE} ${GLOBAL_PROFILE} -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_QT5OPENGL=ON BUILD_COMMAND cd /build && $(MAKE) INSTALL_COMMAND cp -rfv /src/QtAV ${INSTALL_ROOT}/include/ && cp -rfv /widgets/QtAVWidgets ${INSTALL_ROOT}/include/ && cp -fv /build/${LIB_DIR}/libQtAV.so ${INSTALL_ROOT}/lib/ && cp -fv /build/${LIB_DIR}/libQtAV.so.1 ${INSTALL_ROOT}/lib/ && cp -fv /build/${LIB_DIR}/libQtAV.so.1.13.0 ${INSTALL_ROOT}/lib/ && cp -fv /build/${LIB_DIR}/libQtAVWidgets.so ${INSTALL_ROOT}/lib/ && cp -fv /build/${LIB_DIR}/libQtAVWidgets.so.1 ${INSTALL_ROOT}/lib/ && cp -fv /build/${LIB_DIR}/libQtAVWidgets.so.1.13.0 ${INSTALL_ROOT}/lib/ UPDATE_COMMAND "" ALWAYS 0 ) endif() diff --git a/project/bundles/appimage/01-build-host.sh b/project/bundles/appimage/01-build-host.sh index c412031b69..b49e2ad13f 100755 --- a/project/bundles/appimage/01-build-host.sh +++ b/project/bundles/appimage/01-build-host.sh @@ -1,202 +1,200 @@ #!/bin/bash # Script to build a Linux Host installation to compile an AppImage bundle of digiKam. # This script must be run as sudo # # Copyright (c) 2015-2020 by Gilles Caulier # # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. # # Halt and catch errors set -eE trap 'PREVIOUS_COMMAND=$THIS_COMMAND; THIS_COMMAND=$BASH_COMMAND' DEBUG trap 'echo "FAILED COMMAND: $PREVIOUS_COMMAND"' ERR ################################################################################################# # Manage script traces to log file mkdir -p ./logs exec > >(tee ./logs/build-host.full.log) 2>&1 ################################################################################################# echo "01-build-host.sh : build a Linux host installation to compile an AppImage bundle." echo "---------------------------------------------------------------------------------" ################################################################################################# # Pre-processing checks . ./config.sh . ./common.sh ChecksRunAsRoot StartScript ChecksCPUCores HostAdjustments RegisterRemoteServers ORIG_WD="`pwd`" ################################################################################################# echo -e "---------- Update Linux Host\n" urpmi --auto --auto-update ################################################################################################# if [[ "$(arch)" = "x86_64" ]] ; then LIBSUFFIX=lib64 else LIBSUFFIX=lib fi echo -e "---------- Install New Development Packages\n" # Packages for base dependencies and Qt5. urpmi --auto \ wget \ tar \ bzip2 \ gettext \ git \ subversion \ libtool \ which \ fuse \ automake \ cmake \ gcc-c++ \ patch \ libdrm-devel \ libxcb \ libxcb-devel \ xcb-util-keysyms-devel \ xcb-util-devel \ xkeyboard-config \ xscreensaver \ gperf \ ruby \ bison \ flex \ zlib-devel \ expat-devel \ fuse-devel \ glibc-devel \ mysql-devel \ eigen3-devel \ openssl-devel \ cppunit-devel \ libstdc++-devel \ libxml2-devel \ libstdc++-devel \ lcms2-devel \ glibc-devel \ libudev-devel \ sqlite-devel \ libexif-devel \ libxslt-devel \ xz-devel \ lz4-devel \ inotify-tools-devel \ openssl-devel \ cups-devel \ openal-soft-devel \ libical-devel \ libcap-devel \ fontconfig-devel \ freetype-devel \ patchelf \ dpkg \ python \ ruby \ ruby-devel \ sqlite3-devel \ ffmpeg-devel \ boost-devel \ gphoto2-devel \ sane-backends \ jasper-devel \ ${LIBSUFFIX}xkbcommon-devel \ ${LIBSUFFIX}sane1-devel \ ${LIBSUFFIX}xcb-util1 \ ${LIBSUFFIX}xi-devel \ ${LIBSUFFIX}xtst-devel \ ${LIBSUFFIX}xrandr-devel \ ${LIBSUFFIX}xcursor-devel \ ${LIBSUFFIX}xcomposite-devel \ ${LIBSUFFIX}xrender-devel \ ${LIBSUFFIX}mesagl1-devel \ ${LIBSUFFIX}mesaglu1-devel \ ${LIBSUFFIX}mesaegl1-devel \ ${LIBSUFFIX}mesaegl1 \ ${LIBSUFFIX}ltdl-devel \ ${LIBSUFFIX}glib2.0-devel \ ${LIBSUFFIX}usb1.0-devel \ ${LIBSUFFIX}jpeg-devel \ ${LIBSUFFIX}png-devel \ ${LIBSUFFIX}tiff-devel \ ${LIBSUFFIX}lqr-devel \ ${LIBSUFFIX}fftw-devel \ ${LIBSUFFIX}curl-devel \ ${LIBSUFFIX}magick-devel ################################################################################################# echo -e "---------- Clean-up Old Packages\n" # Remove system based devel package to prevent conflict with new one. urpme --auto --force ${LIBSUFFIX}qt5core5 || true ################################################################################################# echo -e "---------- Prepare Linux host to Compile Extra Dependencies\n" # Workaround for: On Mageia 6, .pc files in /usr/lib/pkgconfig are not recognized # However, this is where .pc files get installed when bulding libraries... (FIXME) # I found this by comparing the output of librevenge's "make install" command # between Ubuntu and CentOS 6 ln -sf /usr/share/pkgconfig /usr/lib/pkgconfig # Make sure we build from the /, parts of this script depends on that. We also need to run as root... cd / # Create the build dir for the 3rdparty deps if [ ! -d $BUILDING_DIR ] ; then mkdir $BUILDING_DIR fi if [ ! -d $DOWNLOAD_DIR ] ; then mkdir $DOWNLOAD_DIR fi ################################################################################################# cd $BUILDING_DIR rm -rf $BUILDING_DIR/* || true cmake $ORIG_WD/../3rdparty \ -DCMAKE_INSTALL_PREFIX:PATH=/usr \ -DINSTALL_ROOT=/usr \ -DEXTERNALS_DOWNLOAD_DIR=$DOWNLOAD_DIR \ -DENABLE_QTWEBENGINE=$DK_QTWEBENGINE # Low level libraries and Qt5 dependencies # NOTE: The order to compile each component here is very important. #cmake --build . --config RelWithDebInfo --target ext_libicu -- -j$CPU_CORES cmake --build . --config RelWithDebInfo --target ext_qt -- -j$CPU_CORES # depend of tiff, png, jpeg if [[ $DK_QTWEBENGINE = 0 ]] ; then cmake --build . --config RelWithDebInfo --target ext_qtwebkit -- -j$CPU_CORES # depend of Qt and libicu fi -cmake --build . --config RelWithDebInfo --target ext_qtav -- -j$CPU_CORES # depend of qt and ffmpeg - cmake --build . --config RelWithDebInfo --target ext_exiv2 -- -j$CPU_CORES cmake --build . --config RelWithDebInfo --target ext_opencv -- -j$CPU_CORES ################################################################################################# TerminateScript diff --git a/project/bundles/appimage/03-build-digikam.sh b/project/bundles/appimage/03-build-digikam.sh index b34072852e..851d172838 100755 --- a/project/bundles/appimage/03-build-digikam.sh +++ b/project/bundles/appimage/03-build-digikam.sh @@ -1,188 +1,189 @@ #! /bin/bash # Script to build digiKam under Linux host # This script must be run as sudo # # Copyright (c) 2015-2020 by Gilles Caulier # # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. # # Halt and catch errors set -eE trap 'PREVIOUS_COMMAND=$THIS_COMMAND; THIS_COMMAND=$BASH_COMMAND' DEBUG trap 'echo "FAILED COMMAND: $PREVIOUS_COMMAND"' ERR if [ "root" != "$USER" ]; then echo "This script must be run as root..." exit fi ################################################################################################# # Manage script traces to log file mkdir -p ./logs exec > >(tee ./logs/build-digikam.full.log) 2>&1 ################################################################################################# echo "03-build-digikam.sh : build digiKam." echo "------------------------------------" ################################################################################################# # Pre-processing checks . ./config.sh . ./common.sh ChecksRunAsRoot StartScript ChecksCPUCores HostAdjustments RegisterRemoteServers ################################################################################################# # Pathes rules ORIG_PATH="$PATH" ORIG_WD="`pwd`" ################################################################################################# # Install out-dated dependencies cd $BUILDING_DIR rm -rf $BUILDING_DIR/* || true cmake $ORIG_WD/../3rdparty \ -DCMAKE_INSTALL_PREFIX:PATH=/usr \ -DINSTALL_ROOT=/usr \ -DEXTERNALS_DOWNLOAD_DIR=$DOWNLOAD_DIR \ -DENABLE_QTWEBENGINE=$DK_QTWEBENGINE +cmake --build . --config RelWithDebInfo --target ext_qtav -- -j$CPU_CORES # depend of qt and ffmpeg cmake --build . --config RelWithDebInfo --target ext_lensfun -- -j$CPU_CORES ################################################################################################# # Build digiKam in temporary directory and installation if [ -d "$DK_BUILDTEMP/digikam-$DK_VERSION" ] ; then echo "---------- Updating existing $DK_BUILDTEMP" cd "$DK_BUILDTEMP" cd digikam-$DK_VERSION git reset --hard git pull mkdir -p build cd build else echo "---------- Creating $DK_BUILDTEMP" mkdir -p "$DK_BUILDTEMP" if [ $? -ne 0 ] ; then echo "---------- Cannot create $DK_BUILDTEMP directory." echo "---------- Aborting..." exit; fi cd "$DK_BUILDTEMP" echo -e "\n\n" echo "---------- Downloading digiKam $DK_VERSION" git clone --progress --verbose $DK_GITURL digikam-$DK_VERSION cd digikam-$DK_VERSION if [ $? -ne 0 ] ; then echo "---------- Cannot clone repositories." echo "---------- Aborting..." exit; fi git checkout $DK_VERSION mkdir build cd build fi echo -e "\n\n" echo "---------- Configure digiKam $DK_VERSION" cmake -G "Unix Makefiles" .. \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_INSTALL_PREFIX=/usr \ -DBUILD_TESTING=OFF \ -DDIGIKAMSC_CHECKOUT_PO=ON \ -DDIGIKAMSC_CHECKOUT_DOC=OFF \ -DDIGIKAMSC_COMPILE_PO=ON \ -DDIGIKAMSC_COMPILE_DOC=OFF \ -DDIGIKAMSC_COMPILE_DIGIKAM=ON \ -DENABLE_KFILEMETADATASUPPORT=OFF \ -DENABLE_AKONADICONTACTSUPPORT=OFF \ -DENABLE_MYSQLSUPPORT=ON \ -DENABLE_INTERNALMYSQL=ON \ -DENABLE_MEDIAPLAYER=ON \ -DENABLE_DBUS=OFF \ -DENABLE_APPSTYLES=ON \ -DENABLE_QWEBENGINE=$DK_QTWEBENGINE \ -DENABLE_FACESENGINE_DNN=ON \ -DENABLE_KIO=OFF \ -DENABLE_LEGACY=OFF \ -Wno-dev if [ $? -ne 0 ]; then echo "---------- Cannot configure digiKam $DK_VERSION." echo "---------- Aborting..." exit; fi cat ../build/core/app/utils/digikam_version.h | grep "digikam_version\[\]" | awk '{print $6}' | tr -d '";' > $ORIG_WD/data/RELEASEID.txt echo -e "\n\n" echo "---------- Building digiKam $DK_VERSION" make -j$CPU_CORES if [ $? -ne 0 ]; then echo "---------- Cannot compile digiKam $DK_VERSION." echo "---------- Aborting..." exit; fi echo -e "\n\n" echo "---------- Installing digiKam $DK_VERSION" echo -e "\n\n" make install/fast && cd "$ORIG_WD" && rm -rf "$DK_BUILDTEMP" if [ $? -ne 0 ]; then echo "---------- Cannot install digiKam $DK_VERSION." echo "---------- Aborting..." exit; fi ################################################################################################# # Install Extra Plugins cd $BUILDING_DIR rm -rf $BUILDING_DIR/* || true cmake $ORIG_WD/../3rdparty \ -DCMAKE_INSTALL_PREFIX:PATH=/usr \ -DINSTALL_ROOT=/usr \ -DEXTERNALS_DOWNLOAD_DIR=$DOWNLOAD_DIR \ -DENABLE_QTWEBENGINE=$DK_QTWEBENGINE cmake --build . --config RelWithDebInfo --target ext_gmic_qt -- -j$CPU_CORES ################################################################################################# export PATH=$ORIG_PATH TerminateScript diff --git a/project/bundles/macports/01-build-macports.sh b/project/bundles/macports/01-build-macports.sh index b028f0b79c..bbd532976a 100755 --- a/project/bundles/macports/01-build-macports.sh +++ b/project/bundles/macports/01-build-macports.sh @@ -1,313 +1,312 @@ #! /bin/bash # Script to build a bundle Macports installation with all digiKam dependencies in a dedicated directory # This script must be run as sudo # # Copyright (c) 2015 by Shanti, # Copyright (c) 2015-2020 by Gilles Caulier # # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. # # Ask to run as root (( EUID != 0 )) && exec sudo -- "$0" "$@" # Halt and catch errors set -eE trap 'PREVIOUS_COMMAND=$THIS_COMMAND; THIS_COMMAND=$BASH_COMMAND' DEBUG trap 'echo "FAILED COMMAND: $PREVIOUS_COMMAND"' ERR ################################################################################################# # Manage script traces to log file mkdir -p ./logs exec > >(tee ./logs/build-macports.full.log) 2>&1 ################################################################################################# echo "01-build-macports.sh : build a bundle Macports install with digiKam dependencies." echo "---------------------------------------------------------------------------------" ################################################################################################# # Pre-processing checks . ./config.sh . ./common.sh StartScript ChecksRunAsRoot ChecksXCodeCLI ChecksCPUCores OsxCodeName #RegisterRemoteServers ################################################################################################# # Pathes rules ORIG_PATH="$PATH" ORIG_WD="`pwd`" export PATH=$INSTALL_PREFIX/bin:/$INSTALL_PREFIX/sbin:/$INSTALL_PREFIX/libexec/qt5/bin:$ORIG_PATH ################################################################################################# # Check if /opt exists and standard Macports install path if [ -d "/opt" ] ; then if [ -d "/opt/local" ] ; then echo "---------- A standard Macports install exists on /opt/local." echo " To prevent wrong links from this bundle to this repository" echo " this one must be disabled (moving to /opt/local.back for ex)." echo "---------- Aborting..." exit; fi else echo "---------- /opt do not exist, creating" mkdir "/opt" if [ $? -ne 0 ] ; then echo "---------- Cannot create /opt directory." echo "---------- Aborting..." exit; fi fi ################################################################################################# # Check if a previous bundle already exist CONTINUE_INSTALL=0 if [ -d "$INSTALL_PREFIX" ] ; then read -p "$INSTALL_PREFIX already exist. Do you want to remove it or to continue an aborted previous installation ? [(r)emove/(c)ontinue/(s)top] " answer if echo "$answer" | grep -iq "^r" ;then echo "---------- Removing existing $INSTALL_PREFIX" mv $INSTALL_PREFIX $INSTALL_PREFIX.old rm -rf $INSTALL_PREFIX.old elif echo "$answer" | grep -iq "^c" ;then echo "---------- Continue aborted previous installation in $INSTALL_PREFIX" CONTINUE_INSTALL=1 else echo "---------- Aborting..." exit; fi fi if [[ $CONTINUE_INSTALL == 0 ]]; then ################################################################################################# # Target directory creation echo "---------- Creating $INSTALL_PREFIX" mkdir "$INSTALL_PREFIX" if [ $? -ne 0 ] ; then echo "---------- Cannot create target install directory $INSTALL_PREFIX" echo "---------- Aborting..." exit; fi ################################################################################################# # Check latest Macports version available if necessary if [ -z $MP_VERSION ] ; then MP_LASTEST_VER=$(curl $MP_URL | \ egrep -o 'href="MacPorts-[0-9]+\.[0-9]+\.[0-9]+' | \ sed 's/^href="MacPorts-//' | \ sort -t. -rn -k1,1 -k2,2 -k3,3 | head -1) if [ -z $MP_LASTEST_VER ] ; then echo "---------- Cannot check the lastest Macports verion from $MP_URL" echo "---------- Aborting..." exit; fi echo "---------- Detected lastest Macports version : $MP_LASTEST_VER" MP_VERSION=$MP_LASTEST_VER fi ################################################################################################# # Build Macports in temporary directory and installation if [ -d "$MP_BUILDTEMP" ] ; then echo "---------- Removing existing $MP_BUILDTEMP" rm -rf "$MP_BUILDTEMP" fi echo "---------- Creating $MP_BUILDTEMP" mkdir "$MP_BUILDTEMP" if [ $? -ne 0 ] ; then echo "---------- Cannot create temporary directory $MP_BUILDTEMP to compile Macports" echo "---------- Aborting..." exit; fi cd "$MP_BUILDTEMP" echo -e "\n\n" echo "---------- Downloading MacPorts $MP_VERSION" curl -o "MacPorts-$MP_VERSION.tar.bz2" "$MP_URL/MacPorts-$MP_VERSION.tar.bz2" tar jxvf MacPorts-$MP_VERSION.tar.bz2 cd MacPorts-$MP_VERSION echo -e "\n\n" echo "---------- Configuring MacPorts" ./configure --prefix="$INSTALL_PREFIX" \ --with-applications-dir="$INSTALL_PREFIX/Applications" \ --with-no-root-privileges \ --with-install-user="$(id -n -u)" \ --with-install-group="$(id -n -g)" echo -e "\n\n" echo "---------- Building MacPorts" make -j$CPU_CORES echo -e "\n\n" echo "---------- Installing MacPorts" echo -e "\n\n" make install && cd "$ORIG_WD" && rm -rf "$MP_BUILDTEMP" cat << EOF >> "$INSTALL_PREFIX/etc/macports/macports.conf" +no_root -startupitem startupitem_type none startupitem_install no macosx_deployment_target $OSX_MIN_TARGET EOF fi ################################################################################################# # Macports update echo -e "\n" echo "---------- Updating MacPorts" port -v selfupdate if [[ $CONTINUE_INSTALL == 0 ]]; then # port -v upgrade outdated echo -e "\n" #echo "---------- Modifying net-snmp portfile to install when not root" #sed -e "/install.asroot/ s|yes|no|" -i ".orig" "`port file net-snmp`" fi ################################################################################################# # Dependencies build and installation echo -e "\n" echo "---------- Building digiKam dependencies with Macports" # With OSX less than El Capitan, we need a more recent Clang compiler than one provided by XCode. if [[ $MAJOR_OSX_VERSION -lt 10 ]]; then echo "---------- Install more recent Clang compiler from Macports for specific ports" port install clang_select port install clang-3.4 port select --set clang mp-clang-3.4 fi echo -e "\n" port install \ ld64 +ld64_xcode \ cmake \ libpng \ jpeg \ tiff \ boost \ eigen3 \ gettext \ libusb \ libgphoto2 \ jasper \ lcms2 \ expat \ libxml2 \ libxslt \ libical \ lensfun \ bison \ x265 \ ffmpeg \ qt5-qtbase \ qt5-qtdeclarative \ qt5-qtmacextras \ qt5-qtquickcontrols \ qt5-qtxmlpatterns \ qt5-qtsvg \ qt5-qttools \ qt5-qttranslations \ qt5-qtimageformats \ qt5-sqlite-plugin \ qt5-mysql-plugin \ wget +ssl \ ImageMagick if [[ $DK_QTWEBENGINE = 1 ]] ; then port install qt5-qtwebengine fi # sane-backends echo -e "\n" echo -e "---------- Compilation logs of Macports packages with suspicious installation\n" find $INSTALL_PREFIX/var/macports/logs/ -name main.log echo -e "\n----------" echo -e "\n" ################################################################################################# # Create the build dir for the 3rdparty deps if [ ! -d $BUILDING_DIR ] ; then mkdir $BUILDING_DIR fi if [ ! -d $DOWNLOAD_DIR ] ; then mkdir $DOWNLOAD_DIR fi cd $BUILDING_DIR rm -rf $BUILDING_DIR/* || true cmake $ORIG_WD/../3rdparty \ -DCMAKE_INSTALL_PREFIX:PATH=$INSTALL_PREFIX \ -DINSTALL_ROOT=$INSTALL_PREFIX \ -DEXTERNALS_DOWNLOAD_DIR=$DOWNLOAD_DIR \ -DENABLE_QTWEBENGINE=$DK_QTWEBENGINE \ -Wno-dev if [[ $DK_QTWEBENGINE = 0 ]] ; then cmake --build . --config RelWithDebInfo --target ext_qtwebkit -- -j$CPU_CORES fi cmake --build . --config RelWithDebInfo --target ext_opencv -- -j$CPU_CORES cmake --build . --config RelWithDebInfo --target ext_exiv2 -- -j$CPU_CORES -cmake --build . --config RelWithDebInfo --target ext_qtav -- -j$CPU_CORES ################################################################################################# export PATH=$ORIG_PATH TerminateScript diff --git a/project/bundles/macports/03-build-digikam.sh b/project/bundles/macports/03-build-digikam.sh index b6a6cbd42a..0636bd4cfc 100755 --- a/project/bundles/macports/03-build-digikam.sh +++ b/project/bundles/macports/03-build-digikam.sh @@ -1,188 +1,189 @@ #! /bin/bash # Script to build digiKam using MacPorts # This script must be run as sudo # # Copyright (c) 2015-2020 by Gilles Caulier # # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. # # Ask to run as root (( EUID != 0 )) && exec sudo -- "$0" "$@" # Halt and catch errors set -eE trap 'PREVIOUS_COMMAND=$THIS_COMMAND; THIS_COMMAND=$BASH_COMMAND' DEBUG trap 'echo "FAILED COMMAND: $PREVIOUS_COMMAND"' ERR ################################################################################################# # Manage script traces to log file mkdir -p ./logs exec > >(tee ./logs/build-digikam.full.log) 2>&1 ################################################################################################# echo "03-build-digikam.sh : build digiKam using MacPorts." echo "---------------------------------------------------" ################################################################################################# # Pre-processing checks . ./config.sh . ./common.sh StartScript ChecksRunAsRoot ChecksXCodeCLI ChecksCPUCores OsxCodeName #RegisterRemoteServers ################################################################################################# # Pathes rules ORIG_PATH="$PATH" ORIG_WD="`pwd`" export PATH=$INSTALL_PREFIX/bin:/$INSTALL_PREFIX/sbin:$ORIG_PATH ################################################################################################# # Install out-dated dependencies cd $BUILDING_DIR rm -rf $BUILDING_DIR/* || true cmake $ORIG_WD/../3rdparty \ -DCMAKE_INSTALL_PREFIX:PATH=$INSTALL_PREFIX \ -DINSTALL_ROOT=$INSTALL_PREFIX \ -DEXTERNALS_DOWNLOAD_DIR=$DOWNLOAD_DIR \ -DENABLE_QTWEBENGINE=$DK_QTWEBENGINE \ -Wno-dev +cmake --build . --config RelWithDebInfo --target ext_qtav -- -j$CPU_CORES cmake --build . --config RelWithDebInfo --target ext_lensfun -- -j$CPU_CORES ################################################################################################# # Build digiKam in temporary directory and installation if [ -d "$DK_BUILDTEMP/digikam-$DK_VERSION" ] ; then echo "---------- Updating existing $DK_BUILDTEMP" cd "$DK_BUILDTEMP" cd digikam-$DK_VERSION git reset --hard git pull mkdir -p build else echo "---------- Creating $DK_BUILDTEMP" mkdir -p "$DK_BUILDTEMP" if [ $? -ne 0 ] ; then echo "---------- Cannot create $DK_BUILDTEMP directory." echo "---------- Aborting..." exit; fi cd "$DK_BUILDTEMP" echo -e "\n\n" echo "---------- Downloading digiKam $DK_VERSION" git clone --progress --verbose $DK_GITURL digikam-$DK_VERSION cd digikam-$DK_VERSION if [ $? -ne 0 ] ; then echo "---------- Cannot clone repositories." echo "---------- Aborting..." exit; fi git checkout $DK_VERSION mkdir build fi echo -e "\n\n" echo "---------- Configure digiKam $DK_VERSION" sed -e "s/DIGIKAMSC_CHECKOUT_PO=OFF/DIGIKAMSC_CHECKOUT_PO=ON/g" ./bootstrap.macports > ./tmp.macports ; mv -f ./tmp.macports ./bootstrap.macports sed -e "s/DIGIKAMSC_COMPILE_PO=OFF/DIGIKAMSC_COMPILE_PO=ON/g" ./bootstrap.macports > ./tmp.macports ; mv -f ./tmp.macports ./bootstrap.macports sed -e "s/DBUILD_TESTING=ON/DBUILD_TESTING=OFF/g" ./bootstrap.macports > ./tmp.macports ; mv -f ./tmp.macports ./bootstrap.macports sed -e "s/DENABLE_DBUS=ON/DENABLE_DBUS=OFF/g" ./bootstrap.macports > ./tmp.macports ; mv -f ./tmp.macports ./bootstrap.macports if [[ $DK_QTWEBENGINE = 1 ]] ; then sed -e "s/DENABLE_QWEBENGINE=OFF/DENABLE_QWEBENGINE=ON/g" ./bootstrap.macports > ./tmp.macports ; mv -f ./tmp.macports ./bootstrap.macports fi chmod +x ./bootstrap.macports cp -f $ORIG_WD/fixbundledatapath.sh $DK_BUILDTEMP/digikam-$DK_VERSION ./fixbundledatapath.sh ./bootstrap.macports "$INSTALL_PREFIX" "Debug" "x86_64" "-Wno-dev" if [ $? -ne 0 ]; then echo "---------- Cannot configure digiKam $DK_VERSION." echo "---------- Aborting..." exit; fi cat ./build/core/app/utils/digikam_version.h | grep "digikam_version\[\]" | awk '{print $6}' | tr -d '";' > $ORIG_WD/data/RELEASEID.txt echo -e "\n\n" echo "---------- Building digiKam $DK_VERSION" cd build make -j$CPU_CORES if [ $? -ne 0 ]; then echo "---------- Cannot compile digiKam $DK_VERSION." echo "---------- Aborting..." exit; fi echo -e "\n\n" echo "---------- Installing digiKam $DK_VERSION" echo -e "\n\n" make install/fast && cd "$ORIG_WD" && rm -rf "$DK_BUILDTEMP" if [ $? -ne 0 ]; then echo "---------- Cannot install digiKam $DK_VERSION." echo "---------- Aborting..." exit; fi ################################################################################################# # Install Extra Plugins cd $BUILDING_DIR rm -rf $BUILDING_DIR/* || true cmake $ORIG_WD/../3rdparty \ -DCMAKE_INSTALL_PREFIX:PATH=$INSTALL_PREFIX \ -DINSTALL_ROOT=$INSTALL_PREFIX \ -DEXTERNALS_DOWNLOAD_DIR=$DOWNLOAD_DIR \ -DENABLE_QTWEBENGINE=$DK_QTWEBENGINE \ -Wno-dev cmake --build . --config RelWithDebInfo --target ext_gmic_qt -- -j$CPU_CORES mv -f $INSTALL_PREFIX/libexec/qt5/plugins/digikam/editor/*.so $INSTALL_PREFIX/lib/plugins/digikam/editor/ ################################################################################################# export PATH=$ORIG_PATH TerminateScript diff --git a/project/bundles/mxe/01-build-mxe.sh b/project/bundles/mxe/01-build-mxe.sh index 77f9aaabed..96cbabcc24 100755 --- a/project/bundles/mxe/01-build-mxe.sh +++ b/project/bundles/mxe/01-build-mxe.sh @@ -1,186 +1,185 @@ #! /bin/bash # Script to build a bundle MXE installation with all digiKam low level dependencies in a dedicated directory. # # Copyright (c) 2015-2020 by Gilles Caulier # # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. # # Halt and catch errors set -eE trap 'PREVIOUS_COMMAND=$THIS_COMMAND; THIS_COMMAND=$BASH_COMMAND' DEBUG trap 'echo "FAILED COMMAND: $PREVIOUS_COMMAND"' ERR ################################################################################################# # Manage script traces to log file mkdir -p ./logs exec > >(tee ./logs/build-mxe.full.log) 2>&1 ################################################################################################# echo "01-build-mxe.sh : build a bundle MXE install with digiKam dependencies." echo "-----------------------------------------------------------------------" ################################################################################################# # Pre-processing checks . ./config.sh . ./common.sh StartScript ChecksCPUCores RegisterRemoteServers ################################################################################################# # Pathes rules ORIG_PATH="$PATH" ORIG_WD="`pwd`" export PATH=$MXE_BUILDROOT/usr/bin:$MXE_INSTALL_PREFIX/qt5/bin:$PATH ############################################################################################### # Check if a previous bundle already exist CONTINUE_INSTALL=0 if [ -d "$MXE_BUILDROOT" ] ; then read -p "$MXE_BUILDROOT already exist. Do you want to remove it or to continue an aborted previous installation ? [(r)emove/(c)ontinue/(s)top] " answer if echo "$answer" | grep -iq "^r" ;then echo "---------- Removing existing $MXE_BUILDROOT" # chmod +w "$MXE_BUILDROOT/usr/readonly" # chattr -i "$MXE_BUILDROOT/usr/readonly/.gitkeep" rm -rf "$MXE_BUILDROOT" elif echo "$answer" | grep -iq "^c" ;then echo "---------- Continue aborted previous installation in $MXE_BUILDROOT" CONTINUE_INSTALL=1 else echo "---------- Aborting..." exit; fi fi if [[ $CONTINUE_INSTALL == 0 ]]; then ################################################################################################# # Checkout latest MXE from github git clone $MXE_GIT_URL $MXE_BUILDROOT fi ################################################################################################# # MXE git revision to use cd $MXE_BUILDROOT if [[ $MXE_GIT_REVISION == "master" ]]; then echo -e "\n" echo "---------- Updating MXE" git pull else echo -e "\n" echo "---------- Checkout MXE revision to $MXE_GIT_REVISION" git checkout $MXE_GIT_REVISION fi ################################################################################################# # Dependencies build and installation echo -e "\n" echo "---------- Building digiKam low level dependencies with MXE" make MXE_TARGETS=$MXE_BUILD_TARGETS \ gcc \ gdb \ cmake \ gettext \ freeglut \ libxml2 \ libxslt \ libjpeg-turbo \ libpng \ tiff \ boost \ expat \ lcms \ liblqr-1 \ eigen \ jasper \ zlib \ mman-win32 \ pthreads \ qtbase \ qttranslations \ qtimageformats \ qtwebkit \ qttools \ qtwinextras \ qtscript \ x265 \ ffmpeg \ openal \ libical \ imagemagick echo -e "\n" ################################################################################################# echo -e "\n" echo "---------- Building digiKam 3rd-party dependencies with MXE" # Create the build dir for the 3rdparty deps if [ ! -d $BUILDING_DIR ] ; then mkdir -p $BUILDING_DIR fi if [ ! -d $DOWNLOAD_DIR ] ; then mkdir -p $DOWNLOAD_DIR fi cd $BUILDING_DIR rm -rf $BUILDING_DIR/* || true ${MXE_BUILD_TARGETS}-cmake $ORIG_WD/../3rdparty \ -DMXE_TOOLCHAIN=${MXE_TOOLCHAIN} \ -DMXE_BUILDROOT=${MXE_BUILDROOT} \ -DMXE_ARCHBITS=${MXE_ARCHBITS} \ -DMXE_INSTALL_PREFIX=${MXE_INSTALL_PREFIX} \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_COLOR_MAKEFILE=ON \ -DCMAKE_INSTALL_PREFIX=${MXE_INSTALL_PREFIX} \ -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \ -DCMAKE_TOOLCHAIN_FILE=${MXE_TOOLCHAIN} \ -DCMAKE_FIND_PREFIX_PATH=${CMAKE_PREFIX_PATH} \ -DCMAKE_SYSTEM_INCLUDE_PATH=${CMAKE_PREFIX_PATH}/include \ -DCMAKE_INCLUDE_PATH=${CMAKE_PREFIX_PATH}/include \ -DCMAKE_LIBRARY_PATH=${CMAKE_PREFIX_PATH}/lib \ -DZLIB_ROOT=${CMAKE_PREFIX_PATH} \ -DINSTALL_ROOT=${MXE_INSTALL_PREFIX} \ -DEXTERNALS_DOWNLOAD_DIR=$DOWNLOAD_DIR # Low level libraries # NOTE: The order to compile each component here is very important. ${MXE_BUILD_TARGETS}-cmake --build . --config RelWithDebInfo --target ext_opencv -- -j$CPU_CORES ${MXE_BUILD_TARGETS}-cmake --build . --config RelWithDebInfo --target ext_exiv2 -- -j$CPU_CORES -${MXE_BUILD_TARGETS}-cmake --build . --config RelWithDebInfo --target ext_qtav -- -j$CPU_CORES #${MXE_BUILD_TARGETS}-cmake --build . --config RelWithDebInfo --target ext_libgphoto2 -- -j$CPU_CORES ${MXE_BUILD_TARGETS}-cmake --build . --config RelWithDebInfo --target ext_drmingw -- -j$CPU_CORES ################################################################################################# export PATH=$ORIG_PATH TerminateScript diff --git a/project/bundles/mxe/03-build-digikam.sh b/project/bundles/mxe/03-build-digikam.sh index cd36f4205f..440d40d7a5 100755 --- a/project/bundles/mxe/03-build-digikam.sh +++ b/project/bundles/mxe/03-build-digikam.sh @@ -1,188 +1,189 @@ #! /bin/bash # Script to build digiKam using MXE # This script must be run as sudo # # Copyright (c) 2015-2020 by Gilles Caulier # # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. # # Halt and catch errors set -eE trap 'PREVIOUS_COMMAND=$THIS_COMMAND; THIS_COMMAND=$BASH_COMMAND' DEBUG trap 'echo "FAILED COMMAND: $PREVIOUS_COMMAND"' ERR ################################################################################################# # Manage script traces to log file mkdir -p ./logs exec > >(tee ./logs/build-digikam.full.log) 2>&1 ################################################################################################# echo "03-build-digikam.sh : build digiKam using MEX." echo "---------------------------------------------------" ################################################################################################# # Pre-processing checks . ./config.sh . ./common.sh StartScript ChecksCPUCores RegisterRemoteServers ################################################################################################# # Pathes rules ORIG_PATH="$PATH" ORIG_WD="`pwd`" export PATH=$MXE_BUILDROOT/usr/bin:$MXE_INSTALL_PREFIX/qt5/bin:$PATH cd $MXE_BUILDROOT ################################################################################################# # Install out-dated dependencies cd $BUILDING_DIR rm -rf $BUILDING_DIR/* || true ${MXE_BUILD_TARGETS}-cmake $ORIG_WD/../3rdparty \ -DMXE_TOOLCHAIN=${MXE_TOOLCHAIN} \ -DMXE_BUILDROOT=${MXE_BUILDROOT} \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_COLOR_MAKEFILE=ON \ -DCMAKE_INSTALL_PREFIX=${MXE_INSTALL_PREFIX} \ -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \ -DCMAKE_TOOLCHAIN_FILE=${MXE_TOOLCHAIN} \ -DCMAKE_FIND_PREFIX_PATH=${CMAKE_PREFIX_PATH} \ -DCMAKE_SYSTEM_INCLUDE_PATH=${CMAKE_PREFIX_PATH}/include \ -DCMAKE_INCLUDE_PATH=${CMAKE_PREFIX_PATH}/include \ -DCMAKE_LIBRARY_PATH=${CMAKE_PREFIX_PATH}/lib \ -DZLIB_ROOT=${CMAKE_PREFIX_PATH} \ -DINSTALL_ROOT=${MXE_INSTALL_PREFIX} \ -DEXTERNALS_DOWNLOAD_DIR=$DOWNLOAD_DIR +${MXE_BUILD_TARGETS}-cmake --build . --config RelWithDebInfo --target ext_qtav -- -j$CPU_CORES ${MXE_BUILD_TARGETS}-cmake --build . --config RelWithDebInfo --target ext_lensfun -- -j$CPU_CORES ################################################################################################# # Build digiKam in temporary directory and installation if [ -d "$DK_BUILDTEMP/digikam-$DK_VERSION" ] ; then echo "---------- Updating existing $DK_BUILDTEMP" cd "$DK_BUILDTEMP" cd digikam-$DK_VERSION git reset --hard git pull mkdir -p build.mxe else echo "---------- Creating $DK_BUILDTEMP" mkdir -p "$DK_BUILDTEMP" if [ $? -ne 0 ] ; then echo "---------- Cannot create $DK_BUILDTEMP directory." echo "---------- Aborting..." exit; fi cd "$DK_BUILDTEMP" echo -e "\n\n" echo "---------- Downloading digiKam $DK_VERSION" git clone --progress --verbose $DK_GITURL digikam-$DK_VERSION cd digikam-$DK_VERSION if [ $? -ne 0 ] ; then echo "---------- Cannot clone repositories." echo "---------- Aborting..." exit; fi git checkout $DK_VERSION mkdir build.mxe fi echo -e "\n\n" echo "---------- Configure digiKam $DK_VERSION" sed -e "s/DIGIKAMSC_CHECKOUT_PO=OFF/DIGIKAMSC_CHECKOUT_PO=ON/g" ./bootstrap.mxe > ./tmp.mxe ; mv -f ./tmp.mxe ./bootstrap.mxe sed -e "s/DIGIKAMSC_COMPILE_PO=OFF/DIGIKAMSC_COMPILE_PO=ON/g" ./bootstrap.mxe > ./tmp.mxe ; mv -f ./tmp.mxe ./bootstrap.mxe sed -e "s/DBUILD_TESTING=ON/DBUILD_TESTING=OFF/g" ./bootstrap.mxe > ./tmp.mxe ; mv -f ./tmp.mxe ./bootstrap.mxe sed -e "s/DENABLE_DBUS=ON/DENABLE_DBUS=OFF/g" ./bootstrap.mxe > ./tmp.mxe ; mv -f ./tmp.mxe ./bootstrap.mxe sed -e "s/DENABLE_DRMINGW=OFF/DENABLE_DRMINGW=ON/g" ./bootstrap.mxe > ./tmp.mxe ; mv -f ./tmp.mxe ./bootstrap.mxe chmod +x ./bootstrap.mxe ./bootstrap.mxe $MXE_BUILDROOT RelWithDebInfo -DPng2Ico_EXECUTABLE=${ORIG_WD}/png2ico/png2ico if [ $? -ne 0 ]; then echo "---------- Cannot configure digiKam $DK_VERSION." echo "---------- Aborting..." exit; fi cat ./build.mxe/core/app/utils/digikam_version.h | grep "digikam_version\[\]" | awk '{print $6}' | tr -d '";' > $ORIG_WD/data/RELEASEID.txt echo -e "\n\n" echo "---------- Building digiKam $DK_VERSION" cd build.mxe make -j$CPU_CORES if [ $? -ne 0 ]; then echo "---------- Cannot compile digiKam $DK_VERSION." echo "---------- Aborting..." exit; fi echo -e "\n\n" echo "---------- Installing digiKam $DK_VERSION" echo -e "\n\n" make install/fast && cd "$ORIG_WD" && rm -rf "$DK_BUILDTEMP" if [ $? -ne 0 ]; then echo "---------- Cannot install digiKam $DK_VERSION." echo "---------- Aborting..." exit; fi ################################################################################################# # Install Extra Plugins cd $BUILDING_DIR rm -rf $BUILDING_DIR/* || true ${MXE_BUILD_TARGETS}-cmake $ORIG_WD/../3rdparty \ -DMXE_TOOLCHAIN=${MXE_TOOLCHAIN} \ -DMXE_BUILDROOT=${MXE_BUILDROOT} \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_COLOR_MAKEFILE=ON \ -DCMAKE_INSTALL_PREFIX=${MXE_INSTALL_PREFIX} \ -DCMAKE_BUILD_WITH_INSTALL_RPATH=ON \ -DCMAKE_TOOLCHAIN_FILE=${MXE_TOOLCHAIN} \ -DCMAKE_FIND_PREFIX_PATH=${CMAKE_PREFIX_PATH} \ -DCMAKE_SYSTEM_INCLUDE_PATH=${CMAKE_PREFIX_PATH}/include \ -DCMAKE_INCLUDE_PATH=${CMAKE_PREFIX_PATH}/include \ -DCMAKE_LIBRARY_PATH=${CMAKE_PREFIX_PATH}/lib \ -DZLIB_ROOT=${CMAKE_PREFIX_PATH} \ -DINSTALL_ROOT=${MXE_INSTALL_PREFIX} \ -DEXTERNALS_DOWNLOAD_DIR=$DOWNLOAD_DIR ${MXE_BUILD_TARGETS}-cmake --build . --config RelWithDebInfo --target ext_gmic_qt -- -j$CPU_CORES ################################################################################################# export PATH=$ORIG_PATH TerminateScript