summary refs log tree commit diff
path: root/pkgs/development/libraries
diff options
context:
space:
mode:
authorArtturi <Artturin@artturin.com>2023-11-11 17:17:42 +0200
committerGitHub <noreply@github.com>2023-11-11 17:17:42 +0200
commit4b8824f6910e504bccde833a2c5d6fbc81e1cd75 (patch)
treeb462815a3fe0541b878fba63c8efcc357bd1b46e /pkgs/development/libraries
parentfb93bf2ad88241a9ac83006b24e0bbd2a939d89d (diff)
parenta6128dea0c6b6da6edbd02c9692b78cf924deac4 (diff)
downloadnixpkgs-4b8824f6910e504bccde833a2c5d6fbc81e1cd75.tar
nixpkgs-4b8824f6910e504bccde833a2c5d6fbc81e1cd75.tar.gz
nixpkgs-4b8824f6910e504bccde833a2c5d6fbc81e1cd75.tar.bz2
nixpkgs-4b8824f6910e504bccde833a2c5d6fbc81e1cd75.tar.lz
nixpkgs-4b8824f6910e504bccde833a2c5d6fbc81e1cd75.tar.xz
nixpkgs-4b8824f6910e504bccde833a2c5d6fbc81e1cd75.tar.zst
nixpkgs-4b8824f6910e504bccde833a2c5d6fbc81e1cd75.zip
Merge pull request #233470 from alyssais/x265-cross
Diffstat (limited to 'pkgs/development/libraries')
-rw-r--r--pkgs/development/libraries/x265/default.nix78
1 files changed, 40 insertions, 38 deletions
diff --git a/pkgs/development/libraries/x265/default.nix b/pkgs/development/libraries/x265/default.nix
index 2fb4f995fe4..7e62812df89 100644
--- a/pkgs/development/libraries/x265/default.nix
+++ b/pkgs/development/libraries/x265/default.nix
@@ -26,26 +26,6 @@ let
   mkFlag = optSet: flag: if optSet then "-D${flag}=ON" else "-D${flag}=OFF";
 
   isCross = stdenv.buildPlatform != stdenv.hostPlatform;
-
-  cmakeCommonFlags = [
-    "-Wno-dev"
-    (mkFlag custatsSupport "DETAILED_CU_STATS")
-    (mkFlag debugSupport "CHECKED_BUILD")
-    (mkFlag ppaSupport "ENABLE_PPA")
-    (mkFlag vtuneSupport "ENABLE_VTUNE")
-    (mkFlag werrorSupport "WARNINGS_AS_ERRORS")
-    # Potentially riscv cross could be fixed by providing the correct CMAKE_SYSTEM_PROCESSOR flag
-  ] ++ lib.optional (isCross && stdenv.hostPlatform.isRiscV) "-DENABLE_ASSEMBLY=OFF";
-
-  cmakeStaticLibFlags = [
-    "-DHIGH_BIT_DEPTH=ON"
-    "-DENABLE_CLI=OFF"
-    "-DENABLE_SHARED=OFF"
-    "-DEXPORT_C_API=OFF"
-  ] ++ lib.optionals stdenv.hostPlatform.isPower [
-    "-DENABLE_ALTIVEC=OFF" # https://bitbucket.org/multicoreware/x265_git/issues/320/fail-to-build-on-power8-le
-  ];
-
 in
 
 stdenv.mkDerivation rec {
@@ -96,32 +76,54 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake nasm ] ++ lib.optionals (numaSupport) [ numactl ];
 
+  cmakeFlags = [
+    "-Wno-dev"
+    (mkFlag custatsSupport "DETAILED_CU_STATS")
+    (mkFlag debugSupport "CHECKED_BUILD")
+    (mkFlag ppaSupport "ENABLE_PPA")
+    (mkFlag vtuneSupport "ENABLE_VTUNE")
+    (mkFlag werrorSupport "WARNINGS_AS_ERRORS")
+  ];
+
+  cmakeStaticLibFlags = [
+    "-DHIGH_BIT_DEPTH=ON"
+    "-DENABLE_CLI=OFF"
+    "-DENABLE_SHARED=OFF"
+    "-DEXPORT_C_API=OFF"
+  ] ++ lib.optionals stdenv.hostPlatform.isPower [
+    "-DENABLE_ALTIVEC=OFF" # https://bitbucket.org/multicoreware/x265_git/issues/320/fail-to-build-on-power8-le
+  ];
+
+  preConfigure = lib.optionalString multibitdepthSupport ''
+    cmake -B build-10bits $cmakeFlags "''${cmakeFlagsArray[@]}" $cmakeStaticLibFlags
+    cmake -B build-12bits $cmakeFlags "''${cmakeFlagsArray[@]}" $cmakeStaticLibFlags -DMAIN12=ON
+    cmakeFlagsArray+=(
+      -DEXTRA_LIB="x265-10.a;x265-12.a"
+      -DEXTRA_LINK_FLAGS=-L.
+      -DLINKED_10BIT=ON
+      -DLINKED_12BIT=ON
+    )
+  '' + ''
+    cmakeFlagsArray+=(
+      -DGIT_ARCHETYPE=1 # https://bugs.gentoo.org/814116
+      ${mkFlag (!stdenv.hostPlatform.isStatic) "ENABLE_SHARED"}
+      -DHIGH_BIT_DEPTH=OFF
+      -DENABLE_HDR10_PLUS=ON
+      ${mkFlag (isCross && stdenv.hostPlatform.isAarch) "CROSS_COMPILE_ARM"}
+      ${mkFlag cliSupport "ENABLE_CLI"}
+      ${mkFlag unittestsSupport "ENABLE_TESTS"}
+    )
+  '';
+
   # Builds 10bits and 12bits static libs on the side if multi bit-depth is wanted
   # (we are in x265_<version>/source/build)
-  preBuild = lib.optionalString (multibitdepthSupport) ''
-    cmake -S ../ -B ../build-10bits ${toString cmakeCommonFlags} ${toString cmakeStaticLibFlags}
+  preBuild = lib.optionalString multibitdepthSupport ''
     make -C ../build-10bits -j $NIX_BUILD_CORES
-    cmake -S ../ -B ../build-12bits ${toString cmakeCommonFlags} ${toString cmakeStaticLibFlags} -DMAIN12=ON
     make -C ../build-12bits -j $NIX_BUILD_CORES
     ln -s ../build-10bits/libx265.a ./libx265-10.a
     ln -s ../build-12bits/libx265.a ./libx265-12.a
   '';
 
-  cmakeFlags = cmakeCommonFlags ++ [
-    "-DGIT_ARCHETYPE=1" # https://bugs.gentoo.org/814116
-    "-DENABLE_SHARED=${if stdenv.hostPlatform.isStatic then "OFF" else "ON"}"
-    "-DHIGH_BIT_DEPTH=OFF"
-    "-DENABLE_HDR10_PLUS=ON"
-    (mkFlag (isCross && stdenv.hostPlatform.isAarch) "CROSS_COMPILE_ARM")
-    (mkFlag cliSupport "ENABLE_CLI")
-    (mkFlag unittestsSupport "ENABLE_TESTS")
-  ] ++ lib.optionals (multibitdepthSupport) [
-    "-DEXTRA_LIB=x265-10.a;x265-12.a"
-    "-DEXTRA_LINK_FLAGS=-L."
-    "-DLINKED_10BIT=ON"
-    "-DLINKED_12BIT=ON"
-  ];
-
   doCheck = unittestsSupport;
   checkPhase = ''
     runHook preCheck