diff --git a/3rdparty/ext_freetype/CMakeLists.txt b/3rdparty/ext_freetype/CMakeLists.txt index 35d9b1234..58d146d9f 100644 --- a/3rdparty/ext_freetype/CMakeLists.txt +++ b/3rdparty/ext_freetype/CMakeLists.txt @@ -1,12 +1,15 @@ +# this library isn't shipped with AppImage as per +# https://github.com/AppImage/AppImages/blob/master/excludelist#L126 + ExternalProject_Add( ext_freetype DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} URL https://quantum-mirror.hu/mirrors/pub/gnusavannah/freetype/freetype-2.9.1.tar.bz2 URL_MD5 60ef7d8160cd4bf8cb118ee9d65367ca CONFIGURE_COMMAND /configure --prefix=${EXT_INSTALL_DIR} ${AT_HOST} ${AT_SHARED_ONLY} --enable-freetype-config BUILD_ALWAYS TRUE BUILD_COMMAND $(MAKE) clean COMMAND $(MAKE) INSTALL_COMMAND $(MAKE) install ) diff --git a/3rdparty/ext_harfbuzz/CMakeLists.txt b/3rdparty/ext_harfbuzz/CMakeLists.txt index f34ecd206..efd37fb1a 100644 --- a/3rdparty/ext_harfbuzz/CMakeLists.txt +++ b/3rdparty/ext_harfbuzz/CMakeLists.txt @@ -1,11 +1,14 @@ +# this library isn't shipped with AppImage as per +# https://github.com/AppImage/AppImages/blob/master/excludelist#L126 + ExternalProject_Add( ext_harfbuzz DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} URL https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-2.0.0.tar.bz2 URL_MD5 6d1373dba3e8540c448c6a562f2e0a00 CONFIGURE_COMMAND /configure --prefix=${EXT_INSTALL_DIR} ${AT_HOST} ${AT_SHARED_ONLY} --with-icu=yes --disable-gtk-doc-html BUILD_COMMAND $(MAKE) INSTALL_COMMAND $(MAKE) install DEPENDS ext_icu ) diff --git a/3rdparty/ext_icu/CMakeLists.txt b/3rdparty/ext_icu/CMakeLists.txt index 2778fede3..61a0918c1 100644 --- a/3rdparty/ext_icu/CMakeLists.txt +++ b/3rdparty/ext_icu/CMakeLists.txt @@ -1,10 +1,10 @@ ExternalProject_Add( ext_icu DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} - URL http://download.icu-project.org/files/icu4c/62.1/icu4c-62_1-src.tgz - URL_MD5 490ad9d920158e0314e10ba74ae9a150 + URL http://download.icu-project.org/files/icu4c/63.1/icu4c-63_1-src.tgz + URL_MD5 9e40f6055294284df958200e308bce50 CONFIGURE_COMMAND /source/configure --prefix=${EXT_INSTALL_DIR} --disable-tests BUILD_COMMAND $(MAKE) INSTALL_COMMAND $(MAKE) install ) diff --git a/3rdparty/ext_mysql/CMakeLists.txt b/3rdparty/ext_mysql/CMakeLists.txt index 2452a7d9e..0244f1aa1 100644 --- a/3rdparty/ext_mysql/CMakeLists.txt +++ b/3rdparty/ext_mysql/CMakeLists.txt @@ -1,46 +1,45 @@ ExternalProject_Add( ext_mysql DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} URL https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-boost-8.0.12.tar.gz URL_MD5 82ba7cc22755f77635768c6e6d184161 CMAKE_ARGS ${CMAKE_GLOBAL_PROFILE} -DWITH_BOOST=/boost -DBUILD_CONFIG=mysql_release -DWITH_LZMA=system -DWITH_ICU=system - -DWITH_ZLIB=system -DINSTALL_STATIC_LIBRARIES=OFF # -DCPACK_MONOLITHIC_INSTALL=1 # -DIGNORE_AIO_CHECK=1 BUILD_COMMAND "" # on default whole server would be built INSTALL_COMMAND "" DEPENDS ext_ncurses ext_openssl ) # build and install client only ExternalProject_Add_Step( ext_mysql client COMMAND ${CMAKE_MAKE_PROGRAM} COMMAND ${CMAKE_MAKE_PROGRAM} install DEPENDEES install WORKING_DIRECTORY /libmysql ) ExternalProject_Add_Step( ext_mysql scripts COMMAND ${CMAKE_MAKE_PROGRAM} COMMAND ${CMAKE_MAKE_PROGRAM} install DEPENDEES client WORKING_DIRECTORY /scripts ) # build and install headers ExternalProject_Add_Step( ext_mysql headers COMMAND ${CMAKE_MAKE_PROGRAM} COMMAND ${CMAKE_MAKE_PROGRAM} install DEPENDEES scripts WORKING_DIRECTORY /include) \ No newline at end of file diff --git a/3rdparty/ext_qt/CMakeLists.txt b/3rdparty/ext_qt/CMakeLists.txt index 2d4180b1c..6db2abced 100644 --- a/3rdparty/ext_qt/CMakeLists.txt +++ b/3rdparty/ext_qt/CMakeLists.txt @@ -1,18 +1,18 @@ # qtquickcontrols and qtwebchannel are required by qtwebengine # "WebRTC" is required by "Pepper Plugins" is required by "Printing and PDF" # don't use -I and -L switches as they will cause explicit link to # OpenSSL instead of BoringSSL in QWebEngine ExternalProject_Add( ext_qt DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} URL https://download.qt.io/official_releases/qt/5.11/5.11.2/single/qt-everywhere-src-5.11.2.tar.xz URL_MD5 152a8ade9c11fe33ff5bc95310a1bb64 PATCH_COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/qsql_mysql.diff - CONFIGURE_COMMAND /configure -prefix ${EXT_INSTALL_DIR} -opensource -confirm-license -verbose -nomake examples -nomake tests -nomake tools ICU_LIBDIR="${EXT_INSTALL_DIR}/lib" ICU_INCDIR="${EXT_INSTALL_DIR}/include" ZLIB_LIBDIR="${EXT_INSTALL_DIR}/lib" ZLIB_INCDIR="${EXT_INSTALL_DIR}/include" HARFBUZZ_LIBDIR="${EXT_INSTALL_DIR}/lib" HARFBUZZ_INCDIR="${EXT_INSTALL_DIR}/include" FREETYPE_LIBDIR="${EXT_INSTALL_DIR}/lib" FREETYPE_INCDIR="${EXT_INSTALL_DIR}/include" OPENSSL_LIBDIR="${EXT_INSTALL_DIR}/openssl/lib" OPENSSL_INCDIR="${EXT_INSTALL_DIR}/openssl/include" -openssl-linked -skip qt3d -skip qtactiveqt -skip qtcanvas3d -skip qtconnectivity -skip qtenginio -skip qtgraphicaleffects -skip qtlocation -skip qtwayland -skip qtandroidextras -skip qtserialport -skip qtdatavis3d -skip qtvirtualkeyboard -skip qtspeech -skip qtsensors -skip qtgamepad -skip qtscxml -skip qtremoteobjects -skip qtxmlpatterns -skip qtcharts -skip qtdatavis3d -skip qtgamepad -skip qtpurchasing -skip qtscxml -skip qtserialbus -skip qtspeech -skip qtvirtualkeyboard -skip qtdoc -skip qtmacextras -skip qtwinextras -skip qtwebglplugin -skip qtwebsockets -skip qtwebview -skip qtmultimedia -skip qtnetworkauth -skip qtimageformats -system-webengine-icu + CONFIGURE_COMMAND /configure -prefix ${EXT_INSTALL_DIR} -opensource -confirm-license -verbose -nomake examples -nomake tests -nomake tools ICU_LIBDIR="${EXT_INSTALL_DIR}/lib" ICU_INCDIR="${EXT_INSTALL_DIR}/include" OPENSSL_LIBDIR="${EXT_INSTALL_DIR}/openssl/lib" OPENSSL_INCDIR="${EXT_INSTALL_DIR}/openssl/include" -openssl-linked -skip qt3d -skip qtactiveqt -skip qtcanvas3d -skip qtconnectivity -skip qtenginio -skip qtgraphicaleffects -skip qtlocation -skip qtwayland -skip qtandroidextras -skip qtserialport -skip qtdatavis3d -skip qtvirtualkeyboard -skip qtspeech -skip qtsensors -skip qtgamepad -skip qtscxml -skip qtremoteobjects -skip qtxmlpatterns -skip qtcharts -skip qtdatavis3d -skip qtgamepad -skip qtpurchasing -skip qtscxml -skip qtserialbus -skip qtspeech -skip qtvirtualkeyboard -skip qtdoc -skip qtmacextras -skip qtwinextras -skip qtwebglplugin -skip qtwebsockets -skip qtwebview -skip qtmultimedia -skip qtnetworkauth -skip qtimageformats -system-webengine-icu BUILD_COMMAND $(MAKE) INSTALL_COMMAND $(MAKE) install DEPENDS ext_xslt ext_mysql ext_sqlite ext_postgresql ext_pcre2 ) diff --git a/3rdparty/ext_xml/CMakeLists.txt b/3rdparty/ext_xml/CMakeLists.txt index e7e66d1bc..8b31d9a9c 100644 --- a/3rdparty/ext_xml/CMakeLists.txt +++ b/3rdparty/ext_xml/CMakeLists.txt @@ -1,14 +1,14 @@ # --without-catalog is requirement of QWebEngine ExternalProject_Add( ext_xml DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} URL ftp://xmlsoft.org/libxslt/libxml2-2.9.8.tar.gz URL_MD5 b786e353e2aa1b872d70d5d1ca0c740d PATCH_COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/xml.diff - CONFIGURE_COMMAND /configure --prefix=${EXT_INSTALL_DIR} ${AT_HOST} --without-python --with-icu --without-catalog --with-lzma=${EXT_INSTALL_DIR}/lib --with-zlib=${EXT_INSTALL_DIR}/lib CPPFLAGS=${AT_CPP_FLAGS} LDFLAGS=${AT_LD_FLAGS} + CONFIGURE_COMMAND /configure --prefix=${EXT_INSTALL_DIR} ${AT_HOST} --without-python --with-icu --without-catalog --with-lzma=${EXT_INSTALL_DIR}/lib CPPFLAGS=${AT_CPP_FLAGS} LDFLAGS=${AT_LD_FLAGS} BUILD_COMMAND $(MAKE) INSTALL_COMMAND $(MAKE) install - DEPENDS ext_lzma ext_zlib ext_readline ext_icu + DEPENDS ext_lzma ext_readline ext_icu ) diff --git a/3rdparty/ext_zlib/CMakeLists.txt b/3rdparty/ext_zlib/CMakeLists.txt index 392d0f100..56aa361fe 100644 --- a/3rdparty/ext_zlib/CMakeLists.txt +++ b/3rdparty/ext_zlib/CMakeLists.txt @@ -1,10 +1,13 @@ +# this library isn't shipped with AppImage as per +# https://github.com/AppImage/AppImages/blob/master/excludelist#L126 + ExternalProject_Add( ext_zlib DOWNLOAD_DIR ${EXT_DOWNLOAD_DIR} URL https://zlib.net/zlib-1.2.11.tar.gz URL_MD5 1c9f62f0778697a09d36121ead88e08e CONFIGURE_COMMAND /configure --prefix=${EXT_INSTALL_DIR} BUILD_COMMAND $(MAKE) INSTALL_COMMAND $(MAKE) install ) diff --git a/packaging/linux/appimage/build-deps.sh b/packaging/linux/appimage/build-deps.sh index 023cb25be..4ead3ef41 100755 --- a/packaging/linux/appimage/build-deps.sh +++ b/packaging/linux/appimage/build-deps.sh @@ -1,87 +1,83 @@ #!/bin/bash # # Build all KMyMoney's dependencies on Ubuntu 14.04. # # Prerequisites: cmake git build-essential libxcb-keysyms1-dev plus all deps for Qt5 # # Halt on errors and be verbose about what we are doing set -e set -x # Read in our parameters export BUILD_PREFIX=$1 export KMYMONEY_SOURCES=$2 # qjsonparser, used to add metadata to the plugins needs to work in a en_US.UTF-8 environment. # That's not always the case, so make sure it is export LC_ALL=en_US.UTF-8 export LANG=en_us.UTF-8 # We want to use $prefix/deps/usr/ for all our dependencies export DEPS_INSTALL_PREFIX=$BUILD_PREFIX/deps/usr export DOWNLOADS_DIR=$BUILD_PREFIX/downloads # Setup variables needed to help everything find what we build export LD_LIBRARY_PATH=$DEPS_INSTALL_PREFIX/lib:$DEPS_INSTALL_PREFIX/openssl/lib:$LD_LIBRARY_PATH export PATH=$DEPS_INSTALL_PREFIX/bin:$DEPS_INSTALL_PREFIX/openssl/bin:$PATH export PKG_CONFIG_PATH=$DEPS_INSTALL_PREFIX/share/pkgconfig:$DEPS_INSTALL_PREFIX/lib/pkgconfig:$DEPS_INSTALL_PREFIX/openssl/lib/pkgconfig:/usr/lib/pkgconfig:$PKG_CONFIG_PATH # A kmymoney build layout looks like this: # kmymoney/ -- the source directory # downloads/ -- downloads of the dependencies from files.kde.org # deps-build/ -- build directory for the dependencies # deps/ -- the location for the built dependencies # build/ -- build directory for kmymoney itself # kmymoney.appdir/ -- install directory for kmymoney and the dependencies # Make sure our downloads directory exists if [ ! -d $DOWNLOADS_DIR ] ; then mkdir -p $DOWNLOADS_DIR fi # Make sure our build directory exists if [ ! -d $BUILD_PREFIX/deps-build/ ] ; then mkdir -p $BUILD_PREFIX/deps-build/ fi # The 3rdparty dependency handling in KMyMoney also requires the install directory to be pre-created if [ ! -d $DEPS_INSTALL_PREFIX ] ; then mkdir -p $DEPS_INSTALL_PREFIX fi # Switch to our build directory as we're basically ready to start building... cd $BUILD_PREFIX/deps-build/ # Configure the dependencies for building cmake $KMYMONEY_SOURCES/3rdparty -DCMAKE_INSTALL_PREFIX=$DEPS_INSTALL_PREFIX -DEXT_INSTALL_DIR=$DEPS_INSTALL_PREFIX -DEXT_DOWNLOAD_DIR=$DOWNLOADS_DIR # Now start building everything we need, in the appropriate order cmake --build . --target ext_iconv -cmake --build . --target ext_zlib cmake --build . --target ext_lzma cmake --build . --target ext_xml cmake --build . --target ext_gettext cmake --build . --target ext_xslt cmake --build . --target ext_png -# cmake --build . --target ext_jpeg -cmake --build . --target ext_freetype -cmake --build . --target ext_harfbuzz -cmake --build . --target ext_freetype # that's not a mistake that it's here a second time, harfbuzz nad freetype are interdependent +# cmake --build . --target ext_jpeg #this causes build failures in Qt 5.10 cmake --build . --target ext_qt cmake --build . --target ext_boost cmake --build . --target ext_kcmutils cmake --build . --target ext_kactivities cmake --build . --target ext_kitemmodels cmake --build . --target ext_kitemviews cmake --build . --target ext_kholidays cmake --build . --target ext_kidentitymanagement cmake --build . --target ext_kcontacts cmake --build . --target ext_akonadi cmake --build . --target ext_alkimia cmake --build . --target ext_kdiagram cmake --build . --target ext_aqbanking cmake --build . --target ext_gpgme cmake --build . --target ext_sqlcipher cmake --build . --target ext_ofx cmake --build . --target ext_ical