diff --git a/3rdparty/ext_gsl/CMakeLists.txt b/3rdparty/ext_gsl/CMakeLists.txt index 3bd8182f47..e89b0d35f7 100644 --- a/3rdparty/ext_gsl/CMakeLists.txt +++ b/3rdparty/ext_gsl/CMakeLists.txt @@ -1,30 +1,30 @@ # # From https://github.com/ampl/gsl. which adds CMake support to gsl # if (ANDROID) SET(EXTPREFIX_gsl "${EXTPREFIX}" ) ExternalProject_Add( ext_gsl DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} URL http://files.kde.org/krita/build/dependencies/gsl-2.3.0.tar.gz URL_MD5 7e0478f7c5e62696fef480b9a46f708c PATCH_COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/gsl-android.patch INSTALL_DIR ${EXTPREFIX_gsl} CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTPREFIX_gsl} -DCMAKE_BUILD_TYPE=${GLOBAL_BUILD_TYPE} ${GLOBAL_PROFILE} -DBUILD_SHARED_LIBS=ON -DBUILD_TESTING=OFF UPDATE_COMMAND "" ) else() SET(EXTPREFIX_gsl "${EXTPREFIX}" ) ExternalProject_Add( ext_gsl DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} URL http://files.kde.org/krita/build/dependencies/gsl-2.3.0.tar.gz URL_MD5 7e0478f7c5e62696fef480b9a46f708c INSTALL_DIR ${EXTPREFIX_gsl} - CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTPREFIX_gsl} -DCMAKE_BUILD_TYPE=${GLOBAL_BUILD_TYPE} ${GLOBAL_PROFILE} -DBUILD_TESTING=OFF + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTPREFIX_gsl} -DCMAKE_BUILD_TYPE=${GLOBAL_BUILD_TYPE} ${GLOBAL_PROFILE} -DBUILD_TESTING=OFF -DBUILD_SHARED_LIBS=ON UPDATE_COMMAND "" ) endif() diff --git a/3rdparty/ext_heif/CMakeLists.txt b/3rdparty/ext_heif/CMakeLists.txt index dbdfdafff8..55877cf1b0 100644 --- a/3rdparty/ext_heif/CMakeLists.txt +++ b/3rdparty/ext_heif/CMakeLists.txt @@ -1,148 +1,148 @@ SET(EXTPREFIX_heif "${EXTPREFIX}" ) if ("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") ExternalProject_Add( ext_libde265 DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} URL https://github.com/strukturag/libde265/releases/download/v1.0.5/libde265-1.0.5.tar.gz URL_MD5 385c88166cb255a068a8c936d0ab23ef PATCH_COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/01-fix-sse41.diff CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTPREFIX_heif} -DCMAKE_BUILD_TYPE=${GLOBAL_BUILD_TYPE} ${GLOBAL_PROFILE} UPDATE_COMMAND "" ) else ("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") ExternalProject_Add( ext_libde265 DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} URL https://github.com/strukturag/libde265/releases/download/v1.0.5/libde265-1.0.5.tar.gz URL_MD5 385c88166cb255a068a8c936d0ab23ef PATCH_COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/01-fix-sse41.diff CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTPREFIX_heif} -DCMAKE_BUILD_TYPE=${GLOBAL_BUILD_TYPE} ${GLOBAL_PROFILE} -DDISABLE_SSE=TRUE UPDATE_COMMAND "" ) endif ("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") if (WIN32) if ("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") ExternalProject_Add( ext_nasm DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} URL https://www.nasm.us/pub/nasm/releasebuilds/2.14.03rc2/win64/nasm-2.14.03rc2-win64.zip URL_MD5 f12d14ca46cf397a1d27ac0edde548fb BUILD_COMMAND ${CMAKE_COMMAND} -E echo Deploying nasm 64-bit dependencies CONFIGURE_COMMAND "" INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory /rdoff ${EXTPREFIX_heif}/bin/rdoff COMMAND ${CMAKE_COMMAND} -E copy /nasm.exe ${EXTPREFIX_heif}/bin/nasm.exe COMMAND ${CMAKE_COMMAND} -E copy /ndisasm.exe ${EXTPREFIX_heif}/bin/ndisasm.exe UPDATE_COMMAND "" ) else("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") ExternalProject_Add( ext_nasm DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} URL https://www.nasm.us/pub/nasm/releasebuilds/2.14.03rc2/win32/nasm-2.14.03rc2-win32.zip URL_MD5 9ec22ac06a6b9d993ef503ea2fe074ab BUILD_COMMAND ${CMAKE_COMMAND} -E echo Deploying nasm 64-bit dependencies CONFIGURE_COMMAND "" INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory /rdoff ${EXTPREFIX_heif}/bin/rdoff COMMAND ${CMAKE_COMMAND} -E copy /nasm.exe ${EXTPREFIX_heif}/bin/nasm.exe COMMAND ${CMAKE_COMMAND} -E copy /ndisasm.exe ${EXTPREFIX_heif}/bin/ndisasm.exe UPDATE_COMMAND "" ) endif ("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") else (WIN32) ExternalProject_Add( ext_nasm DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} URL https://www.nasm.us/pub/nasm/releasebuilds/2.14.03rc2/nasm-2.14.03rc2.tar.gz URL_MD5 4cd1fe6788cd15d08c1a8f18b6d2428e CONFIGURE_COMMAND /configure --prefix=${EXTPREFIX_heif} ${GLOBAL_AUTOMAKE_PROFILE} BUILD_COMMAND make INSTALL_COMMAND make install UPDATE_COMMAND "" ) endif(WIN32) IF ("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") ExternalProject_Add(ext_libx265_10bit DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} URL http://ftp.videolan.org/pub/videolan/x265/x265_3.2.1.tar.gz URL_MD5 94808045a34d88a857e5eaf3f68f4bca SOURCE_SUBDIR source/ CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTPREFIX_heif} -DCMAKE_BUILD_TYPE=${GLOBAL_BUILD_TYPE} ${GLOBAL_PROFILE} -DHIGH_BIT_DEPTH=TRUE -DEXPORT_C_API=FALSE -DENABLE_CLI=FALSE -DENABLE_SHARED=FALSE INSTALL_COMMAND ${CMAKE_COMMAND} -E copy libx265.a ${EXTPREFIX_heif}/lib/libx265_main10.a ) ExternalProject_Add(ext_libx265_12bit DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} URL http://ftp.videolan.org/pub/videolan/x265/x265_3.2.1.tar.gz URL_MD5 94808045a34d88a857e5eaf3f68f4bca SOURCE_SUBDIR source/ CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTPREFIX_heif} -DCMAKE_BUILD_TYPE=${GLOBAL_BUILD_TYPE} ${GLOBAL_PROFILE} -DHIGH_BIT_DEPTH=TRUE -DMAIN12=TRUE -DEXPORT_C_API=FALSE -DENABLE_CLI=FALSE -DENABLE_SHARED=FALSE INSTALL_COMMAND ${CMAKE_COMMAND} -E copy libx265.a ${EXTPREFIX_heif}/lib/libx265_main12.a ) ExternalProject_Add( ext_libx265 DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} URL http://ftp.videolan.org/pub/videolan/x265/x265_3.2.1.tar.gz URL_MD5 94808045a34d88a857e5eaf3f68f4bca SOURCE_SUBDIR source/ PATCH_COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/02-skip-pdb-in-mingw.diff CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTPREFIX_heif} -DCMAKE_BUILD_TYPE=${GLOBAL_BUILD_TYPE} ${GLOBAL_PROFILE} -DENABLE_SHARED=TRUE -DENABLE_HDR10_PLUS=TRUE -DEXTRA_LIB:String=x265_main10.a$x265_main12.a -DEXTRA_LINK_FLAGS:String=-L${EXTPREFIX_heif}/lib -DLINKED_10BIT=TRUE -DLINKED_12BIT=TRUE UPDATE_COMMAND "" DEPENDS ext_nasm ext_libx265_10bit ext_libx265_12bit ) else ("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") # x265 in 32-bit platforms cannot support 10-bit and 12-bit images # because they either crash on malloc or require SSE4.1+ extensions ExternalProject_Add( ext_libx265 DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} URL http://ftp.videolan.org/pub/videolan/x265/x265_3.2.1.tar.gz URL_MD5 94808045a34d88a857e5eaf3f68f4bca SOURCE_SUBDIR source/ PATCH_COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/02-skip-pdb-in-mingw.diff CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTPREFIX_heif} -DCMAKE_BUILD_TYPE=${GLOBAL_BUILD_TYPE} ${GLOBAL_PROFILE} -DENABLE_SHARED=TRUE -DENABLE_CLI=FALSE UPDATE_COMMAND "" DEPENDS ext_nasm ) endif ("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") ExternalProject_Add( ext_libheif DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} URL https://github.com/strukturag/libheif/releases/download/v1.6.2/libheif-1.6.2.tar.gz URL_HASH SHA256=bb229e855621deb374f61bee95c4642f60c2a2496bded35df3d3c42cc6d8eefc PATCH_COMMAND ${PATCH_COMMAND} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/03-fix-build-macos-windows.diff - CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTPREFIX_heif} -DCMAKE_BUILD_TYPE=${GLOBAL_BUILD_TYPE} -DBUILD_EXAMPLES=ON ${GLOBAL_PROFILE} + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTPREFIX_heif} -DCMAKE_BUILD_TYPE=${GLOBAL_BUILD_TYPE} -DBUILD_EXAMPLES=OFF ${GLOBAL_PROFILE} UPDATE_COMMAND "" DEPENDS ext_libde265 ext_libx265 ext_jpeg ext_png ) diff --git a/3rdparty/ext_seexpr/CMakeLists.txt b/3rdparty/ext_seexpr/CMakeLists.txt index 794c2fa86d..d3401bf879 100644 --- a/3rdparty/ext_seexpr/CMakeLists.txt +++ b/3rdparty/ext_seexpr/CMakeLists.txt @@ -1,11 +1,11 @@ SET(PREFIX_ext_seexpr "${EXTPREFIX}" ) ExternalProject_Add( ext_seexpr GIT_REPOSITORY https://invent.kde.org/lsegovia/SeExpr.git GIT_TAG c83e7ee157e1a5996619c41efcf57441586093b7 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${PREFIX_ext_seexpr} -DCMAKE_BUILD_TYPE=${GLOBAL_BUILD_TYPE} ${GLOBAL_PROFILE} -DBOOST_INCLUDE_DIR=${PREFIX_ext_seexpr}/include -DBOOST_ROOT=${PREFIX_ext_seexpr} -DBOOST_LIB_DIR=${PREFIX_ext_seexpr}/lib -DENABLE_LLVM_BACKEND=OFF -DENABLE_SSE4=OFF -DBUILD_DOC=OFF -DBUILD_TESTS=OFF -DBUILD_UTILS=OFF -DUSE_PYTHON=OFF UPDATE_COMMAND "" - DEPENDS ext_qt ext_pyqt + DEPENDS ext_qt ) diff --git a/packaging/linux/appimage/build-deps.sh b/packaging/linux/appimage/build-deps.sh index 2a668e6d03..b82bcede03 100755 --- a/packaging/linux/appimage/build-deps.sh +++ b/packaging/linux/appimage/build-deps.sh @@ -1,89 +1,91 @@ #!/bin/bash # # Build all Krita'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 KRITA_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 krita build layout looks like this: # krita/ -- 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 krita itself # krita.appdir/ -- install directory for krita 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 Krita 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/ # Determine how many CPUs we have export MAKEFLAGS="-j`grep processor /proc/cpuinfo | wc -l`" # Configure the dependencies for building cmake $KRITA_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_png -#cmake --build . --config RelWithDebInfo --target ext_tiff -#cmake --build . --config RelWithDebInfo --target ext_jpeg +cmake --build . --config RelWithDebInfo --target ext_png +cmake --build . --config RelWithDebInfo --target ext_tiff +cmake --build . --config RelWithDebInfo --target ext_jpeg cmake --build . --config RelWithDebInfo --target ext_boost cmake --build . --config RelWithDebInfo --target ext_fftw3 cmake --build . --config RelWithDebInfo --target ext_eigen3 cmake --build . --config RelWithDebInfo --target ext_expat cmake --build . --config RelWithDebInfo --target ext_exiv2 cmake --build . --config RelWithDebInfo --target ext_lcms2 cmake --build . --config RelWithDebInfo --target ext_ocio cmake --build . --config RelWithDebInfo --target ext_openexr cmake --build . --config RelWithDebInfo --target ext_vc cmake --build . --config RelWithDebInfo --target ext_libraw cmake --build . --config RelWithDebInfo --target ext_giflib -#cmake --build . --config RelWithDebInfo --target ext_gsl +cmake --build . --config RelWithDebInfo --target ext_gsl cmake --build . --config RelWithDebInfo --target ext_python #cmake --build . --config RelWithDebInfo --target ext_freetype #cmake --build . --config RelWithDebInfo --target ext_fontconfig cmake --build . --config RelWithDebInfo --target ext_qt cmake --build . --config RelWithDebInfo --target ext_poppler cmake --build . --config RelWithDebInfo --target ext_kcrash cmake --build . --config RelWithDebInfo --target ext_gmic cmake --build . --config RelWithDebInfo --target ext_sip cmake --build . --config RelWithDebInfo --target ext_pyqt cmake --build . --config RelWithDebInfo --target ext_quazip +cmake --build . --config RelWithDebInfo --target ext_openjpeg +cmake --build . --config RelWithDebInfo --target ext_libheif cmake --build . --config RelWithDebInfo --target ext_seexpr