diff --git a/pkgs/by-name/li/libultrahdr/gtest.patch b/pkgs/by-name/li/libultrahdr/gtest.patch new file mode 100644 index 000000000000..50f70c38a5b5 --- /dev/null +++ b/pkgs/by-name/li/libultrahdr/gtest.patch @@ -0,0 +1,39 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 5128335..bacf495 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -536,16 +536,6 @@ if(UHDR_BUILD_TESTS) + set(GTEST_LIB_PREFIX ${GTEST_BINARY_DIR}/lib/) + endif() + set(GTEST_BOTH_LIBRARIES ${GTEST_LIB_PREFIX}${GTEST_LIB} ${GTEST_LIB_PREFIX}${GTEST_LIB_MAIN}) +- ExternalProject_Add(${GTEST_TARGET_NAME} +- GIT_REPOSITORY https://github.com/google/googletest +- GIT_TAG v1.14.0 +- PREFIX ${GTEST_PREFIX_DIR} +- SOURCE_DIR ${GTEST_SOURCE_DIR} +- BINARY_DIR ${GTEST_BINARY_DIR} +- CMAKE_ARGS ${UHDR_CMAKE_ARGS} +- BUILD_BYPRODUCTS ${GTEST_BOTH_LIBRARIES} +- INSTALL_COMMAND "" +- ) + endif() + + if(UHDR_BUILD_BENCHMARK) +@@ -675,16 +665,15 @@ endif() + + if(UHDR_BUILD_TESTS) + add_executable(ultrahdr_unit_test ${UHDR_TEST_SRCS_LIST}) +- add_dependencies(ultrahdr_unit_test ${GTEST_TARGET_NAME} ${UHDR_CORE_LIB_NAME}) + target_compile_options(ultrahdr_unit_test PRIVATE ${UHDR_WERROR_FLAGS}) + target_include_directories(ultrahdr_unit_test PRIVATE + ${PRIVATE_INCLUDE_DIR} +- ${GTEST_INCLUDE_DIRS} ++ @GTEST_INCLUDE_DIRS@ + ) + if(UHDR_BUILD_FUZZERS) + target_link_options(ultrahdr_unit_test PRIVATE -fsanitize=fuzzer-no-link) + endif() +- target_link_libraries(ultrahdr_unit_test ${UHDR_CORE_LIB_NAME} ${GTEST_BOTH_LIBRARIES}) ++ target_link_libraries(ultrahdr_unit_test ${UHDR_CORE_LIB_NAME} -lgtest -lgtest_main) + add_test(NAME UHDRUnitTests, COMMAND ultrahdr_unit_test) + endif() diff --git a/pkgs/by-name/li/libultrahdr/package.nix b/pkgs/by-name/li/libultrahdr/package.nix new file mode 100644 index 000000000000..4bf5fa1563a9 --- /dev/null +++ b/pkgs/by-name/li/libultrahdr/package.nix @@ -0,0 +1,97 @@ +{ + stdenv, + lib, + fetchFromGitHub, + replaceVars, + cmake, + ninja, + pkg-config, + libjpeg, + gtest, + ctestCheckHook, + versionCheckHook, + testers, +}: + +stdenv.mkDerivation (finalAttrs: { + version = "1.4.0"; + pname = "libultrahdr"; + + src = fetchFromGitHub { + owner = "google"; + repo = "libultrahdr"; + rev = "v${finalAttrs.version}"; + hash = "sha256-SLhHiwuyHzVx/Kv+eBy8LzHTnShKXlJoszxZNPATbhs="; + }; + + outputs = [ + "out" + "dev" + ]; + + patches = [ + (replaceVars ./gtest.patch { + GTEST_INCLUDE_DIRS = "${lib.getDev gtest}/include"; + }) + ]; + + # CMake incorrect absolute include/lib paths: https://github.com/NixOS/nixpkgs/issues/144170 + postPatch = '' + substituteInPlace cmake/libuhdr.pc.in \ + --replace-fail \ + 'libdir=''${prefix}/@CMAKE_INSTALL_LIBDIR@' \ + 'libdir=@CMAKE_INSTALL_FULL_LIBDIR@' \ + --replace-fail \ + 'includedir=''${prefix}/@CMAKE_INSTALL_INCLUDEDIR@' \ + 'includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@' + ''; + + cmakeFlags = [ + (lib.cmakeBool "UHDR_BUILD_TESTS" true) + ]; + + nativeBuildInputs = [ + cmake + ninja + pkg-config + libjpeg + gtest + ]; + + nativeCheckInputs = [ + ctestCheckHook + ]; + + doCheck = true; + + nativeInstallCheckInputs = [ + versionCheckHook + ]; + + doInstallCheck = true; + + passthru.tests = { + pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage; + }; + + meta = { + description = "Reference codec for the Ultra HDR format"; + longDescription = '' + Ultra HDR is a true HDR image format, and is backcompatible. libultrahdr + is the reference codec for the Ultra HDR format. The codecs that support + the format can render the HDR intent of the image on HDR displays; other + codecs can still decode and display the SDR intent of the image. + ''; + homepage = "https://developer.android.com/media/platform/hdr-image-format"; + changelog = "https://github.com/google/libultrahdr/releases/tag/v${finalAttrs.version}"; + pkgConfigModules = [ "libuhdr" ]; + maintainers = with lib.maintainers; [ + yzx9 + ]; + platforms = lib.platforms.all; + license = with lib.licenses; [ + asl20 + ]; + mainProgram = "ultrahdr_app"; + }; +}) diff --git a/pkgs/by-name/op/openimageio/package.nix b/pkgs/by-name/op/openimageio/package.nix index ce8842e2bcb1..f8ff843e92bb 100644 --- a/pkgs/by-name/op/openimageio/package.nix +++ b/pkgs/by-name/op/openimageio/package.nix @@ -11,6 +11,7 @@ libwebp, libjxl, libheif, + libultrahdr, opencolorio, openexr, openjph, @@ -53,6 +54,7 @@ stdenv.mkDerivation (finalAttrs: { libpng libtiff libwebp + libultrahdr opencolorio openexr openjph