diff --git a/3rdparty/CMakeLists.txt b/3rdparty/CMakeLists.txt index 9f764530e..38e6859d8 100644 --- a/3rdparty/CMakeLists.txt +++ b/3rdparty/CMakeLists.txt @@ -1,93 +1,92 @@ project (kmymoney-and-all-its-deps) # # Build all dependencies for KMyMoney and finally KMyMoney itself. # Parameters: EXTERNALS_DOWNLOAD_DIR place to download all packages # INSTALL_ROOT place to install everything to # # Example usage: cmake ..\kmymoneydep -DEXTERNALS_DOWNLOAD_DIR=/dev2/d -DINSTALL_ROOT=/dev2/i cmake_minimum_required(VERSION 2.8.6) if(NOT SUBMAKE_JOBS) set(SUBMAKE_JOBS 1) endif() if (CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) message(FATAL_ERROR "Compiling in the source directory is not supported. Use for example 'mkdir build; cd build; cmake ..'.") endif (CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) # Tools must be obtained to work with: include (ExternalProject) # allow specification of a directory with pre-downloaded # requirements if(NOT IS_DIRECTORY ${EXTERNALS_DOWNLOAD_DIR}) message(FATAL_ERROR "No externals download dir set. Use -DEXTERNALS_DOWNLOAD_DIR") endif() if(NOT IS_DIRECTORY ${INSTALL_ROOT}) message(FATAL_ERROR "No install dir set. Use -DINSTALL_ROOT") endif() set(TOP_INST_DIR ${INSTALL_ROOT}) set(EXTPREFIX "${TOP_INST_DIR}") set(CMAKE_PREFIX_PATH "${EXTPREFIX}") message( STATUS "CMAKE_GENERATOR: ${CMAKE_GENERATOR}") set(GLOBAL_BUILD_TYPE RelWithDebInfo) set(GLOBAL_PROFILE ${GLOBAL_PROFILE} -DBUILD_TESTING=false) # without --host=x86_64 gmp builds with optimizations for skylake and that prevents running KMyMoney on pre-skylake CPUs -set(GLOBAL_AUTOMAKE_PROFILE --host=x86_64 --disable-static --enable-shared) +set(GLOBAL_AUTOMAKE_PROFILE --host=x86_64-linux-gnu --disable-static --enable-shared) set(SECURITY_EXE_LINKER_FLAGS "") set(SECURITY_SHARED_LINKER_FLAGS "") set(SECURITY_MODULE_LINKER_FLAGS "") if (DEFINED EP_PREFIX) set_directory_properties(PROPERTIES EP_PREFIX ${EP_PREFIX}) endif () if (UNIX AND NOT APPLE) set(LINUX true) set(PATCH_COMMAND patch) endif () # this list must be dependency-ordered add_subdirectory( ext_iconv ) +add_subdirectory( ext_lzma ) add_subdirectory( ext_icu ) add_subdirectory( ext_xml ) add_subdirectory( ext_gettext ) -add_subdirectory( ext_zlib ) -add_subdirectory( ext_lzma ) add_subdirectory( ext_png ) add_subdirectory( ext_boost ) add_subdirectory( ext_xslt ) add_subdirectory( ext_fontconfig) add_subdirectory( ext_freetype) add_subdirectory( ext_qt ) add_subdirectory( ext_phonon ) add_subdirectory( ext_frameworks ) add_subdirectory( ext_sqlite ) add_subdirectory( ext_ncurses ) add_subdirectory( ext_mysql ) add_subdirectory( ext_grantlee ) add_subdirectory( ext_applications ) add_subdirectory( ext_gmp ) add_subdirectory( ext_alkimia ) add_subdirectory( ext_kdiagram ) add_subdirectory( ext_ktoblzcheck ) add_subdirectory( ext_gwenhywfar ) add_subdirectory( ext_xmlsec1 ) add_subdirectory( ext_aqbanking ) add_subdirectory( ext_gpgerror ) add_subdirectory( ext_assuan2 ) add_subdirectory( ext_gpgme ) add_subdirectory( ext_tcl ) add_subdirectory( ext_sqlcipher ) add_subdirectory( ext_opensp ) add_subdirectory( ext_ofx ) add_subdirectory( ext_ical ) diff --git a/3rdparty/ext_icu/CMakeLists.txt b/3rdparty/ext_icu/CMakeLists.txt index 2484e1132..72107a221 100644 --- a/3rdparty/ext_icu/CMakeLists.txt +++ b/3rdparty/ext_icu/CMakeLists.txt @@ -1,16 +1,16 @@ set(PREFIX_ext_icu "${EXTPREFIX}") ExternalProject_Add( ext_icu DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} URL http://download.icu-project.org/files/icu4c/62.1/icu4c-62_1-src.tgz URL_MD5 490ad9d920158e0314e10ba74ae9a150 INSTALL_DIR ${PREFIX_ext_icu} - CONFIGURE_COMMAND ./source/configure --prefix=${PREFIX_ext_icu} + CONFIGURE_COMMAND ./source/configure --prefix=${PREFIX_ext_icu} --disable-tests BUILD_COMMAND make INSTALL_COMMAND make install UPDATE_COMMAND "" BUILD_IN_SOURCE 1 ) diff --git a/3rdparty/ext_png/CMakeLists.txt b/3rdparty/ext_png/CMakeLists.txt index 64ee1b4c8..880e18980 100644 --- a/3rdparty/ext_png/CMakeLists.txt +++ b/3rdparty/ext_png/CMakeLists.txt @@ -1,13 +1,12 @@ set(PREFIX_ext_png "${EXTPREFIX}") ExternalProject_Add( ext_png DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} URL https://kent.dl.sourceforge.net/project/libpng/libpng16/1.6.35/libpng-1.6.35.tar.xz URL_MD5 678b7e696a62a193ed3503b04bf449d6 INSTALL_DIR ${PREFIX_ext_png} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${PREFIX_ext_png} -DCMAKE_BUILD_TYPE=${GLOBAL_BUILD_TYPE} ${GLOBAL_PROFILE} -DPNG_TESTS=OFF UPDATE_COMMAND "" - DEPENDS ext_zlib ) diff --git a/3rdparty/ext_xml/CMakeLists.txt b/3rdparty/ext_xml/CMakeLists.txt index 5b8579975..51ed71258 100644 --- a/3rdparty/ext_xml/CMakeLists.txt +++ b/3rdparty/ext_xml/CMakeLists.txt @@ -1,16 +1,16 @@ set(PREFIX_ext_xml "${EXTPREFIX}") ExternalProject_Add( ext_xml DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} URL ftp://xmlsoft.org/libxslt/libxml2-2.9.8.tar.gz URL_MD5 b786e353e2aa1b872d70d5d1ca0c740d INSTALL_DIR ${PREFIX_ext_xml} - CONFIGURE_COMMAND ./configure --prefix=${PREFIX_ext_xml} ${GLOBAL_AUTOMAKE_PROFILE} --without-python + CONFIGURE_COMMAND ./configure --prefix=${PREFIX_ext_xml} --host=x86_64-linux-gnu --without-python BUILD_COMMAND make INSTALL_COMMAND make install UPDATE_COMMAND "" BUILD_IN_SOURCE 1 ) diff --git a/3rdparty/ext_xslt/CMakeLists.txt b/3rdparty/ext_xslt/CMakeLists.txt index d43d371a2..8c61d5cb4 100644 --- a/3rdparty/ext_xslt/CMakeLists.txt +++ b/3rdparty/ext_xslt/CMakeLists.txt @@ -1,17 +1,17 @@ set(PREFIX_ext_xslt "${EXTPREFIX}") ExternalProject_Add( ext_xslt DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} URL ftp://xmlsoft.org/libxslt/libxslt-1.1.32.tar.gz URL_MD5 1fc72f98e98bf4443f1651165f3aa146 INSTALL_DIR ${PREFIX_ext_xslt} - CONFIGURE_COMMAND ./configure --prefix=${PREFIX_ext_xslt} ${GLOBAL_AUTOMAKE_PROFILE} + CONFIGURE_COMMAND ./configure --prefix=${PREFIX_ext_xslt} --host=x86_64-linux-gnu BUILD_COMMAND make INSTALL_COMMAND make install UPDATE_COMMAND "" BUILD_IN_SOURCE 1 DEPENDS ext_xml ) diff --git a/3rdparty/ext_zlib/CMakeLists.txt b/3rdparty/ext_zlib/CMakeLists.txt deleted file mode 100644 index 6400ce315..000000000 --- a/3rdparty/ext_zlib/CMakeLists.txt +++ /dev/null @@ -1,12 +0,0 @@ -set(PREFIX_ext_zlib "${EXTPREFIX}") - -ExternalProject_Add( - ext_zlib - DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} - URL http://files.kde.org/krita/build/dependencies/zlib-1.2.11.tar.gz - URL_MD5 1c9f62f0778697a09d36121ead88e08e - - CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${PREFIX_ext_zlib} -DCMAKE_BUILD_TYPE=${GLOBAL_BUILD_TYPE} ${GLOBAL_PROFILE} - - UPDATE_COMMAND "" -) diff --git a/packaging/linux/appimage/build-deps.sh b/packaging/linux/appimage/build-deps.sh index aa2c57927..6980a29fc 100755 --- a/packaging/linux/appimage/build-deps.sh +++ b/packaging/linux/appimage/build-deps.sh @@ -1,91 +1,90 @@ #!/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:$LD_LIBRARY_PATH export PATH=$DEPS_INSTALL_PREFIX/bin:$PATH export PKG_CONFIG_PATH=$DEPS_INSTALL_PREFIX/share/pkgconfig:$DEPS_INSTALL_PREFIX/lib/pkgconfig:/usr/lib/pkgconfig:$PKG_CONFIG_PATH export CMAKE_PREFIX_PATH=$DEPS_INSTALL_PREFIX:$CMAKE_PREFIX_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 -DINSTALL_ROOT=$DEPS_INSTALL_PREFIX -DEXTERNALS_DOWNLOAD_DIR=$DOWNLOADS_DIR # Now start building everything we need, in the appropriate order cmake --build . --config RelWithDebInfo --target ext_iconv +# cmake --build . --config RelWithDebInfo --target ext_lzma # cmake --build . --config RelWithDebInfo --target ext_icu cmake --build . --config RelWithDebInfo --target ext_xml # must be before gettext cmake --build . --config RelWithDebInfo --target ext_gettext -# cmake --build . --config RelWithDebInfo --target ext_zlib -# cmake --build . --config RelWithDebInfo --target ext_lzma # cmake --build . --config RelWithDebInfo --target ext_png cmake --build . --config RelWithDebInfo --target ext_boost cmake --build . --config RelWithDebInfo --target ext_xslt # for ext_xmlsec1 # cmake --build . --config RelWithDebInfo --target ext_fontconfig # cmake --build . --config RelWithDebInfo --target ext_freetype cmake --build . --config RelWithDebInfo --target ext_sqlite # cmake --build . --config RelWithDebInfo --target ext_mysql cmake --build . --config RelWithDebInfo --target ext_qt cmake --build . --config RelWithDebInfo --target ext_knotifications cmake --build . --config RelWithDebInfo --target ext_kio cmake --build . --config RelWithDebInfo --target ext_kcmutils cmake --build . --config RelWithDebInfo --target ext_kwallet cmake --build . --config RelWithDebInfo --target ext_kactivities cmake --build . --config RelWithDebInfo --target ext_kitemmodels cmake --build . --config RelWithDebInfo --target ext_kholidays cmake --build . --config RelWithDebInfo --target ext_kidentitymanagement cmake --build . --config RelWithDebInfo --target ext_kcontacts cmake --build . --config RelWithDebInfo --target ext_akonadi cmake --build . --config RelWithDebInfo --target ext_alkimia cmake --build . --config RelWithDebInfo --target ext_kdiagram cmake --build . --config RelWithDebInfo --target ext_aqbanking cmake --build . --config RelWithDebInfo --target ext_gpgme cmake --build . --config RelWithDebInfo --target ext_sqlcipher cmake --build . --config RelWithDebInfo --target ext_ofx cmake --build . --config RelWithDebInfo --target ext_ical