From 80a6743c37e12c6d58a2cb2f7c10e4c1682306af Mon Sep 17 00:00:00 2001 From: Hannes Weisbach Date: Thu, 10 Sep 2020 15:21:06 +0200 Subject: [PATCH] opencascade: enable macOS build and add features enable/fix macOS build and add options for TBB and GL2PS dependencies VTK integration needed a patch because implicit conversions in initializer lists are an error in C++11, which is the default in clang 7 used by nix. --- .../libraries/opencascade/default.nix | 25 +++++++++++++++---- pkgs/top-level/all-packages.nix | 4 ++- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/pkgs/development/libraries/opencascade/default.nix b/pkgs/development/libraries/opencascade/default.nix index 8334bf195f7b..c0b2366ab7fc 100644 --- a/pkgs/development/libraries/opencascade/default.nix +++ b/pkgs/development/libraries/opencascade/default.nix @@ -1,6 +1,9 @@ { stdenv, fetchFromGitHub, fetchpatch, libGL, libGLU, libXmu, cmake, ninja, - pkgconfig, fontconfig, freetype, expat, freeimage, vtk }: + pkgconfig, fontconfig, freetype, expat, freeimage, vtk, gl2ps, tbb, + OpenCL, Cocoa +}: +with stdenv.lib; stdenv.mkDerivation rec { pname = "opencascade-oce"; version = "0.18.3"; @@ -13,13 +16,21 @@ stdenv.mkDerivation rec { }; nativeBuildInputs = [ cmake ninja pkgconfig ]; - buildInputs = [ libGL libGLU libXmu freetype fontconfig expat freeimage vtk ]; + buildInputs = [ + libGL libGLU libXmu freetype fontconfig expat freeimage vtk + gl2ps tbb + ] + ++ optionals stdenv.isDarwin [OpenCL Cocoa] + ; cmakeFlags = [ "-DOCE_INSTALL_PREFIX=${placeholder "out"}" "-DOCE_WITH_FREEIMAGE=ON" "-DOCE_WITH_VTK=ON" - ]; + "-DOCE_WITH_GL2PS=ON" + "-DOCE_MULTITHREAD_LIBRARY=TBB" + ] + ++ optionals stdenv.isDarwin ["-DOCE_OSX_USE_COCOA=ON" "-DOCE_WITH_OPENCL=ON"]; patches = [ # Use fontconfig instead of hardcoded directory list @@ -33,6 +44,10 @@ stdenv.mkDerivation rec { url = "https://github.com/tpaviot/oce/commit/3b44656e93270d782009b06ec4be84d2a13f8126.patch"; sha256 = "1ccakkcwy5g0184m23x0mnh22i0lk45xm8kgiv5z3pl7nh35dh8k"; }) + (fetchpatch { + url = "https://github.com/tpaviot/oce/commit/cf50d078cd5fac03a48fd204938bd240930a08dc.patch"; + sha256 = "1xv94hcvggmb1c8vqwic1aiw9jw1sxk8mqbaak9xs9ycfqdvgdyc"; + }) ]; postPatch = '' @@ -41,11 +56,11 @@ stdenv.mkDerivation rec { --replace FONTCONFIG_LIBRARIES FONTCONFIG_LINK_LIBRARIES ''; - meta = with stdenv.lib; { + meta = { description = "Open CASCADE Technology, libraries for 3D modeling and numerical simulation"; homepage = "https://github.com/tpaviot/oce"; maintainers = [ maintainers.viric ]; - platforms = platforms.linux; + platforms = platforms.unix; license = licenses.lgpl21; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ae19e77cadb8..9987d9ee7e1e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -14533,7 +14533,9 @@ in openbabel = callPackage ../development/libraries/openbabel { }; - opencascade = callPackage ../development/libraries/opencascade { }; + opencascade = callPackage ../development/libraries/opencascade { + inherit (darwin.apple_sdk.frameworks) OpenCL Cocoa; + }; opencascade-occt = callPackage ../development/libraries/opencascade-occt { }; opencl-headers = callPackage ../development/libraries/opencl-headers { };