diff --git a/project/bundles/3rdparty/ext_qt/CMakeLists.txt b/project/bundles/3rdparty/ext_qt/CMakeLists.txt index 14bbf672a5..af18711612 100644 --- a/project/bundles/3rdparty/ext_qt/CMakeLists.txt +++ b/project/bundles/3rdparty/ext_qt/CMakeLists.txt @@ -1,98 +1,98 @@ # Script to build Qt for digiKam bundle. # # Copyright (c) 2015-2019, 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(EXTPREFIX_qt "${EXTPREFIX}") IF(NOT ENABLE_QTWEBENGINE) SET(DROP_QTWEBENGINE_DEPS -skip qtwebengine # No need Chromium browser support (QtWebkit instead) -skip qtwebchannel # QtWebChannel support ==> QWebEngine dependency -skip qtquickcontrols # QtQuick support ==> QWebEngine dependency ) ENDIF() ExternalProject_Add(ext_qt DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} URL https://download.qt.io/official_releases/qt/5.13/5.13.1/single/qt-everywhere-src-5.13.1.tar.xz URL_MD5 d66b1da335d0c25325fdf493e9044c38 PATCH_COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/qt-icu-hack.patch && ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/qt-appimage-support.patch CMAKE_ARGS -DOPENSSL_LIBS='-L${EXTPREFIX_qt}/lib -lssl -lcrypto' CONFIGURE_COMMAND /configure -prefix ${EXTPREFIX_qt} -verbose -release -opensource -confirm-license -sql-sqlite # Compile Sqlite SQL plugin -sql-mysql # Compile Mysql SQL plugin -iconv # International string conversion + -icu -fontconfig -system-freetype # Use system font rendering lib https://doc.qt.io/qt-5/qtgui-attribution-freetype.html -openssl-linked # hard link ssl libraries -nomake tests # Do not build test codes -nomake examples # Do not build basis example codes -no-compile-examples # Do not build extra example codes -no-qml-debug - -no-icu # Locale support disabled (International Component Unicode) -no-mtdev -no-journald -no-syslog -no-tslib -no-directfb -no-linuxfb -no-libproxy -no-pch -qt-zlib -qt-pcre -qt-harfbuzz -qt-xcb -skip qt3d # 3D core -skip qtactiveqt # No need ActiveX support -skip qtandroidextras # For embeded devices only -skip qtcharts # No need data models charts support -skip qtconnectivity # For embeded devices only -skip qtdatavis3d # no need 3D data visualizations support -skip qtdoc # No need documentation -skip qtgamepad # No need gamepad hardware support. -skip qtgraphicaleffects # No need Advanced graphical effects in GUI -skip qtlocation # No need geolocation -skip qtlottie # No need Adobe QtQuick After Effect animations integration -skip qtmacextras # For MacOS devices only -skip qtmultimedia # No need multimedia support (replaced by QtAV+ffmpeg) -skip qtnetworkauth # No need network authentification support. -skip qtpurchasing # No need in-app purchase of products support -skip qtquickcontrols2 # QtQuick support for QML -skip qtremoteobjects # No need sharing QObject properties between processes support -skip qtscript # No need scripting (deprecated) -skip qtscxml # No need SCXML state machines support -skip qtsensors # For embeded devices only -skip qtserialbus # No need serial bus support -skip qtserialport # No need serial port support -skip qtspeech # No need speech synthesis support -skip qttranslations # No need translation tools. -skip qtvirtualkeyboard # No need virtual keyboard support -skip qtwayland # Specific to Linux -skip qtwebglplugin # No need browser OpenGL extention support -skip qtwebsockets # No need websocket support -skip qtwebview # QML extension for QWebEngine -skip qtwinextras # For Windows devices only ${DROP_QTWEBENGINE_DEPS} # Exemple of code to install only one Qt module for hacking purpose (aka qtbase here) #BUILD_COMMAND cd && $(MAKE) module-qtbase #INSTALL_COMMAND cd && $(MAKE) module-qtbase-install_subtargets UPDATE_COMMAND "" BUILD_IN_SOURCE 1 ALWAYS 0 ) diff --git a/project/bundles/appimage/01-build-host.sh b/project/bundles/appimage/01-build-host.sh index e09675cf2f..f500f9b95d 100755 --- a/project/bundles/appimage/01-build-host.sh +++ b/project/bundles/appimage/01-build-host.sh @@ -1,203 +1,203 @@ #!/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-2019, 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}icu-devel \ ${LIBSUFFIX}lqr-devel \ ${LIBSUFFIX}fftw-devel \ - ${LIBSUFFIX}curl-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 cmake --build . --config RelWithDebInfo --target ext_lensfun -- -j$CPU_CORES ################################################################################################# TerminateScript