Unverified Commit 46bbb147 authored by Guillaume Girol's avatar Guillaume Girol Committed by GitHub
Browse files

libultrahdr: init at 1.4.0 (#451276)

parents afdea098 45190990
Loading
Loading
Loading
Loading
+39 −0
Original line number Diff line number Diff line
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()
+97 −0
Original line number Diff line number Diff line
{
  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";
  };
})
+2 −0
Original line number Diff line number Diff line
@@ -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