depot/third_party/nixpkgs/pkgs/development/libraries/opensubdiv/default.nix
Default email 5e7c2d6cef Project import generated by Copybara.
GitOrigin-RevId: f99e5f03cc0aa231ab5950a15ed02afec45ed51a
2023-10-09 21:29:22 +02:00

60 lines
1.9 KiB
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{ config, lib, stdenv, fetchFromGitHub, cmake, pkg-config, xorg, libGLU
, libGL, glew, ocl-icd, python3
, cudaSupport ? config.cudaSupport, cudatoolkit
# For visibility mostly. The whole approach to cuda architectures and capabilities
# will be reworked soon.
, cudaArch ? "compute_37"
, openclSupport ? !cudaSupport
, darwin
}:
stdenv.mkDerivation rec {
pname = "opensubdiv";
version = "3.5.1";
src = fetchFromGitHub {
owner = "PixarAnimationStudios";
repo = "OpenSubdiv";
rev = "v${lib.replaceStrings ["."] ["_"] version}";
sha256 = "sha256-uDKCT0Uoa5WQekMUFm2iZmzm+oWAZ6IWMwfpchkUZY0=";
};
outputs = [ "out" "dev" ];
nativeBuildInputs = [ cmake pkg-config ];
buildInputs =
[ libGLU libGL python3
# FIXME: these are not actually needed, but the configure script wants them.
glew xorg.libX11 xorg.libXrandr xorg.libXxf86vm xorg.libXcursor
xorg.libXinerama xorg.libXi
]
++ lib.optional (openclSupport && !stdenv.isDarwin) ocl-icd
++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [OpenCL Cocoa CoreVideo IOKit AppKit AGL ])
++ lib.optional cudaSupport cudatoolkit;
cmakeFlags =
[ "-DNO_TUTORIALS=1"
"-DNO_REGRESSION=1"
"-DNO_EXAMPLES=1"
"-DNO_METAL=1" # dont have metal in apple sdk
] ++ lib.optionals (!stdenv.isDarwin) [
"-DGLEW_INCLUDE_DIR=${glew.dev}/include"
"-DGLEW_LIBRARY=${glew.dev}/lib"
] ++ lib.optionals cudaSupport [
"-DOSD_CUDA_NVCC_FLAGS=--gpu-architecture=${cudaArch}"
"-DCUDA_HOST_COMPILER=${cudatoolkit.cc}/bin/cc"
] ++ lib.optionals (!openclSupport) [
"-DNO_OPENCL=1"
];
postInstall = "rm $out/lib/*.a";
meta = {
description = "An Open-Source subdivision surface library";
homepage = "http://graphics.pixar.com/opensubdiv";
broken = openclSupport && cudaSupport;
platforms = lib.platforms.unix;
maintainers = [ lib.maintainers.eelco ];
license = lib.licenses.asl20;
};
}