diff --git a/3rdparty/CMakeLists.txt b/3rdparty/CMakeLists.txt --- a/3rdparty/CMakeLists.txt +++ b/3rdparty/CMakeLists.txt @@ -212,5 +212,10 @@ add_subdirectory( ext_gmic ) endif () +if(UNIX) + add_subdirectory( ext_pkgconfig ) + add_subdirectory( ext_heif ) +endif() + add_subdirectory(ext_giflib) add_subdirectory(ext_quazip) diff --git a/3rdparty/ext_heif/CMakeLists.txt b/3rdparty/ext_heif/CMakeLists.txt new file mode 100644 --- /dev/null +++ b/3rdparty/ext_heif/CMakeLists.txt @@ -0,0 +1,71 @@ +SET(EXTPREFIX_heif "${EXTPREFIX}" ) +ExternalProject_Add( + ext_libde265 + DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} + URL https://github.com/strukturag/libde265/releases/download/v1.0.3/libde265-1.0.3.tar.gz + URL_MD5 0e1e26ffcb2177c3749c748e20fcd588 + + BUILD_IN_SOURCE 1 + + CONFIGURE_COMMAND /configure --prefix=${EXTPREFIX_heif} ${GLOBAL_AUTOMAKE_PROFILE} + BUILD_COMMAND make + INSTALL_COMMAND make install + + UPDATE_COMMAND "" +) + +ExternalProject_Add( + ext_yasm + DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} + URL http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz + URL_MD5 fc9e586751ff789b34b1f21d572d96af + + CONFIGURE_COMMAND /configure --prefix=${EXTPREFIX_heif} ${GLOBAL_AUTOMAKE_PROFILE} + BUILD_COMMAND make + INSTALL_COMMAND make install + + UPDATE_COMMAND "" +) + +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 "" +) + +ExternalProject_Add( + ext_libx265 + DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} + URL http://ftp.videolan.org/pub/videolan/x265/x265_3.0.tar.gz + URL_MD5 8ff1780246bb7ac8506239f6129c04ec + + SOURCE_SUBDIR source/ + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTPREFIX_heif} + BUILD_COMMAND make + INSTALL_COMMAND make install + + UPDATE_COMMAND "" + DEPENDS ext_yasm ext_nasm +) + +ExternalProject_Add( + ext_libheif + DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} + URL https://github.com/strukturag/libheif/releases/download/v1.4.0/libheif-1.4.0.tar.gz + URL_MD5 b3c726609a8750c5fc1687a7b193adff + + CONFIGURE_COMMAND /configure --prefix=${EXTPREFIX_heif} ${GLOBAL_AUTOMAKE_PROFILE} + + BUILD_COMMAND CXXFLAGS="-Wno-error" make + INSTALL_COMMAND make install + + UPDATE_COMMAND "" + DEPENDS ext_libde265 ext_libx265 ext_pkgconfig +) diff --git a/3rdparty/ext_pkgconfig/CMakeLists.txt b/3rdparty/ext_pkgconfig/CMakeLists.txt new file mode 100644 --- /dev/null +++ b/3rdparty/ext_pkgconfig/CMakeLists.txt @@ -0,0 +1,13 @@ +SET(PREFIX_pkgconfig "${EXTPREFIX}" ) + +ExternalProject_Add( ext_pkgconfig + DOWNLOAD_DIR ${EXTERNALS_DOWNLOAD_DIR} + URL http://pkgconfig.freedesktop.org/releases/pkg-config-0.29.1.tar.gz + URL_MD5 f739a28cae4e0ca291f82d1d41ef107d + + BUILD_IN_SOURCE 1 + + CONFIGURE_COMMAND /configure --prefix=${PREFIX_pkgconfig} ${GLOBAL_AUTOMAKE_PROFILE} --with-internal-glib + BUILD_COMMAND make + INSTALL_COMMAND make install +) diff --git a/packaging/macos/osxbuild.sh b/packaging/macos/osxbuild.sh --- a/packaging/macos/osxbuild.sh +++ b/packaging/macos/osxbuild.sh @@ -169,6 +169,7 @@ # build 3rdparty tools # The order must not be changed! cmake_3rdparty \ + ext_pkgconfig \ ext_gettext \ ext_openssl \ ext_qt \ @@ -209,6 +210,8 @@ ext_sip \ ext_pyqt + cmake_3rdparty ext_libheif + cmake_3rdparty \ ext_extra_cmake_modules \ ext_kconfig \ @@ -235,6 +238,8 @@ cd ${KIS_TBUILD_DIR}/${pkg}/${pkg}-prefix/src/${pkg}-stamp } || { cd ${KIS_TBUILD_DIR}/ext_frameworks/${pkg}-prefix/src/${pkg}-stamp + } || { + cd ${KIS_TBUILD_DIR}/ext_heif/${pkg}-prefix/src/${pkg}-stamp } echo "Installing ${pkg} files..." rm ${pkg}-configure ${pkg}-build ${pkg}-install @@ -251,6 +256,7 @@ fi build_install_ext \ + ext_pkgconfig \ ext_gettext \ ext_openssl \ ext_qt \ @@ -274,6 +280,8 @@ ext_sip \ ext_pyqt \ + build_install_ext ext_libheif + # Build kde_frameworks build_install_ext \ ext_extra_cmake_modules \