commit: 0518c6760f02e240b61d02cea7188585a8c7f6cc Author: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com> AuthorDate: Tue Oct 26 16:34:38 2021 +0000 Commit: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com> CommitDate: Tue Oct 26 16:35:07 2021 +0000 URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=0518c676
media-libs/libjxl: add 0.6 Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com> media-libs/libjxl/Manifest | 1 + .../libjxl/files/libjxl-0.6-system-libs.patch | 87 ++++++++++++++++++++++ media-libs/libjxl/libjxl-0.6.ebuild | 87 ++++++++++++++++++++++ media-libs/libjxl/metadata.xml | 11 +++ 4 files changed, 186 insertions(+) diff --git a/media-libs/libjxl/Manifest b/media-libs/libjxl/Manifest new file mode 100644 index 000000000..63de49120 --- /dev/null +++ b/media-libs/libjxl/Manifest @@ -0,0 +1 @@ +DIST libjxl-0.6.tar.gz 16953410 BLAKE2B 8941987f6d31096a7286f9d98cdcc16e5fe338e6b3d966343f97fc5b5b932ec92c994fab5781448aa7d96324e5c9ce5c83754b01cf6e752d0702ce9fc0a2087f SHA512 934c86d079c7a1f5382fad158efac225b9d1b27e551ea85ea7ec43e7ffd5cba85ddbfa35658b242a9f9c9589decf245568349abfa8a4fe12898af78d51608852 diff --git a/media-libs/libjxl/files/libjxl-0.6-system-libs.patch b/media-libs/libjxl/files/libjxl-0.6-system-libs.patch new file mode 100644 index 000000000..6aa776078 --- /dev/null +++ b/media-libs/libjxl/files/libjxl-0.6-system-libs.patch @@ -0,0 +1,87 @@ +diff '--color=auto' -ru /var/tmp/portage/media-libs/libjxl-0.6/work/libjxl-0.6/lib/jxl.cmake libjxl-0.6/lib/jxl.cmake +--- /var/tmp/portage/media-libs/libjxl-0.6/work/libjxl-0.6/lib/jxl.cmake 2021-10-04 20:02:44.000000000 +0200 ++++ libjxl-0.6/lib/jxl.cmake 2021-10-26 16:20:37.332839340 +0200 +@@ -387,17 +387,6 @@ + target_link_libraries(jxl_enc-obj PUBLIC jxl_profiler) + endif() + +-#TODO(lode): don't depend on CMS for the core library +-if (JPEGXL_ENABLE_SKCMS) +- target_include_directories(jxl_enc-obj PRIVATE +- $<TARGET_PROPERTY:skcms,INCLUDE_DIRECTORIES> +- ) +-else () +- target_include_directories(jxl_enc-obj PRIVATE +- $<TARGET_PROPERTY:lcms2,INCLUDE_DIRECTORIES> +- ) +-endif () +- + # Headers for exporting/importing public headers + include(GenerateExportHeader) + set_target_properties(jxl_dec-obj PROPERTIES +diff '--color=auto' -ru /var/tmp/portage/media-libs/libjxl-0.6/work/libjxl-0.6/plugins/gdk-pixbuf/CMakeLists.txt libjxl-0.6/plugins/gdk-pixbuf/CMakeLists.txt +--- /var/tmp/portage/media-libs/libjxl-0.6/work/libjxl-0.6/plugins/gdk-pixbuf/CMakeLists.txt 2021-10-26 15:59:28.124828026 +0200 ++++ libjxl-0.6/plugins/gdk-pixbuf/CMakeLists.txt 2021-10-26 16:24:08.540453940 +0200 +@@ -23,7 +23,7 @@ + + # Note: This only needs the decoder library, but we don't install the decoder + # shared library. +-target_link_libraries(pixbufloader-jxl jxl jxl_threads skcms-interface PkgConfig::Gdk-Pixbuf) ++target_link_libraries(pixbufloader-jxl jxl jxl_threads skcms PkgConfig::Gdk-Pixbuf) + + pkg_get_variable(GDK_PIXBUF_MODULEDIR gdk-pixbuf-2.0 gdk_pixbuf_moduledir) + install(TARGETS pixbufloader-jxl LIBRARY DESTINATION "${GDK_PIXBUF_MODULEDIR}") +diff '--color=auto' -ru /var/tmp/portage/media-libs/libjxl-0.6/work/libjxl-0.6/third_party/CMakeLists.txt libjxl-0.6/third_party/CMakeLists.txt +--- /var/tmp/portage/media-libs/libjxl-0.6/work/libjxl-0.6/third_party/CMakeLists.txt 2021-10-26 15:59:28.123828010 +0200 ++++ libjxl-0.6/third_party/CMakeLists.txt 2021-10-26 16:13:51.758212796 +0200 +@@ -113,15 +113,6 @@ + endif() # JPEGXL_DEP_LICENSE_DIR + endif() + +-# lodepng +-if( NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/lodepng/lodepng.h" ) +- message(FATAL_ERROR "Please run ${PROJECT_SOURCE_DIR}/deps.sh to fetch the " +- "build dependencies.") +-endif() +-include(lodepng.cmake) +-configure_file("${CMAKE_CURRENT_SOURCE_DIR}/lodepng/LICENSE" +- ${PROJECT_BINARY_DIR}/LICENSE.lodepng COPYONLY) +- + # brotli + if (NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/brotli/c/include/brotli/decode.h" OR + JPEGXL_FORCE_SYSTEM_BROTLI) +@@ -190,34 +181,3 @@ + endforeach() + endif() # BROTLI_EMSCRIPTEN + endif() +- +-# *cms +-if (JPEGXL_ENABLE_SKCMS OR JPEGXL_ENABLE_PLUGINS) +- if( NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/skcms/skcms.h" ) +- message(FATAL_ERROR "Please run ${PROJECT_SOURCE_DIR}/deps.sh to fetch the " +- "build dependencies.") +- endif() +- include(skcms.cmake) +- configure_file("${CMAKE_CURRENT_SOURCE_DIR}/skcms/LICENSE" +- ${PROJECT_BINARY_DIR}/LICENSE.skcms COPYONLY) +-endif () +-if (JPEGXL_ENABLE_VIEWERS OR NOT JPEGXL_ENABLE_SKCMS) +- if( NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/lcms/.git" ) +- message(SEND_ERROR "Please run git submodule update --init") +- endif() +- include(lcms2.cmake) +- configure_file("${CMAKE_CURRENT_SOURCE_DIR}/lcms/COPYING" +- ${PROJECT_BINARY_DIR}/LICENSE.lcms COPYONLY) +-endif() +- +-# sjpeg +-if (JPEGXL_ENABLE_SJPEG) +- if (NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/sjpeg/CMakeLists.txt") +- message(FATAL_ERROR "Please run ${PROJECT_SOURCE_DIR}/deps.sh to fetch the " +- "build dependencies.") +- endif() +- include(sjpeg.cmake) +- configure_file("${CMAKE_CURRENT_SOURCE_DIR}/sjpeg/COPYING" +- ${PROJECT_BINARY_DIR}/LICENSE.sjpeg COPYONLY) +-endif () +- diff --git a/media-libs/libjxl/libjxl-0.6.ebuild b/media-libs/libjxl/libjxl-0.6.ebuild new file mode 100644 index 000000000..52c54ec86 --- /dev/null +++ b/media-libs/libjxl/libjxl-0.6.ebuild @@ -0,0 +1,87 @@ +# Copyright 2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit xdg cmake + +DESCRIPTION="JPEG XL image format reference implementation" +HOMEPAGE="https://github.com/libjxl/libjxl" +SRC_URI="https://github.com/libjxl/libjxl/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + +KEYWORDS="~amd64" +LICENSE="Apache-2.0" +SLOT="0" +IUSE="abi_x86_64 cpu_flags_arm_neon benchmark devtools examples man +openexr plugins profile +sjpeg +skcms tcmalloc tools viewers" + +RDEPEND=" + app-arch/brotli + dev-cpp/highway:= + media-libs/libpng + media-libs/lodepng:= + media-libs/giflib + sys-libs/zlib + virtual/jpeg + + !skcms? ( media-libs/lcms ) + openexr? ( media-libs/openexr:= ) + plugins? ( + dev-libs/glib:2 + media-gfx/gimp + media-libs/babl + media-libs/gegl + media-libs/skcms:= + x11-libs/gdk-pixbuf + x11-misc/shared-mime-info + ) + sjpeg? ( media-libs/sjpeg:= ) + skcms? ( media-libs/skcms:= ) + tcmalloc? ( dev-util/google-perftools ) + viewers? ( media-libs/lcms ) +" +DEPEND=" + ${RDEPEND} + dev-cpp/gtest + plugins? ( x11-misc/xdg-utils ) +" +BDEPEND="man? ( app-text/asciidoc )" + +PATCHES=( "${FILESDIR}/${P}-system-libs.patch" ) +REQUIRED_USE="tcmalloc? ( abi_x86_64 )" + +src_prepare() { + # remove bundled libs cmake + rm third_party/*.cmake || die + cmake_src_prepare +} + +src_configure() { + local mycmakeargs=( + -DJPEGXL_ENABLE_BENCHMARK=$(usex benchmark) + -DJPEGXL_ENABLE_DEVTOOLS=$(usex devtools) + -DJPEGXL_ENABLE_EXAMPLES=$(usex examples) + -DJPEGXL_ENABLE_MANPAGES=$(usex man) + -DJPEGXL_ENABLE_OPENEXR=$(usex openexr) + -DJPEGXL_ENABLE_PLUGINS=$(usex plugins) + -DJPEGXL_ENABLE_PROFILER=$(usex profile) + -DJPEGXL_ENABLE_SJPEG=$(usex sjpeg) + -DJPEGXL_ENABLE_SKCMS=$(usex skcms) + -DJPEGXL_ENABLE_TCMALLOC=$(usex tcmalloc) + -DJPEGXL_ENABLE_TOOLS=$(usex tools) + -DJPEGXL_ENABLE_VIEWERS=$(usex viewers) + -DJPEGXL_FORCE_NEON=$(usex cpu_flags_arm_neon) + + -DBUILD_SHARED_LIBS=ON + -DJPEGXL_BUNDLE_SKCMS=OFF + -DJPEGXL_ENABLE_COVERAGE=OFF + -DJPEGXL_ENABLE_FUZZERS=OFF + -DJPEGXL_ENABLE_TRANSCODE_JPEG=ON + -DJPEGXL_FORCE_SYSTEM_BROTLI=ON + -DJPEGXL_FORCE_SYSTEM_GTEST=ON + -DJPEGXL_FORCE_SYSTEM_HWY=ON + -DJPEGXL_STATIC=OFF + -DJPEGXL_WARNINGS_AS_ERRORS=OFF + ) + + cmake_src_configure +} diff --git a/media-libs/libjxl/metadata.xml b/media-libs/libjxl/metadata.xml index d9a1e3c6e..ac9483923 100644 --- a/media-libs/libjxl/metadata.xml +++ b/media-libs/libjxl/metadata.xml @@ -5,4 +5,15 @@ <email>dnovome...@gmail.com</email> <name>Daniel Novomesky</name> </maintainer> + <use> + <flag name="benchmark">Build JPEGXL benchmark tools</flag> + <flag name="devtools">Build JPEGXL developer tools</flag> + <flag name="openexr">Build JPEGXL with support for OpenEXR</flag> + <flag name="plugins">Build third-party plugins to support JPEG XL in other applications</flag> + <flag name="sjpeg">Build JPEGXL with support for encoding with sjpeg</flag> + <flag name="skcms">Build with skcms instead of lcms2</flag> + <flag name="tcmalloc">Build JPEGXL using gperftools (tcmalloc) allocator</flag> + <flag name="tools">Build JPEGXL user tools: cjxl and djxl</flag> + <flag name="viewers">Build JPEGXL viewer tools for evaluation</flag> + </use> </pkgmetadata>