depot/third_party/nixpkgs/pkgs/development/libraries/opensubdiv/default.nix
Default email 75ca762b89 Project import generated by Copybara.
GitOrigin-RevId: 29b0d4d0b600f8f5dd0b86e3362a33d4181938f9
2021-03-09 11:18:52 +08:00

53 lines
1.7 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 or false, cudatoolkit
, darwin
}:
stdenv.mkDerivation rec {
pname = "opensubdiv";
version = "3.4.4";
src = fetchFromGitHub {
owner = "PixarAnimationStudios";
repo = "OpenSubdiv";
rev = "v${lib.replaceChars ["."] ["_"] version}";
sha256 = "sha256-ejxQ5mGIIrEa/rAfkTrRbIRerrAvEPoWn7e0lIqS1JQ=";
};
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 (!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=compute_30"
"-DCUDA_HOST_COMPILER=${cudatoolkit.cc}/bin/cc"
];
postInstall = "rm $out/lib/*.a";
meta = {
description = "An Open-Source subdivision surface library";
homepage = "http://graphics.pixar.com/opensubdiv";
platforms = lib.platforms.unix;
maintainers = [ lib.maintainers.eelco ];
license = lib.licenses.asl20;
};
}