Commit 811e2488 authored by Adkins, Cameron's avatar Adkins, Cameron
Browse files

opencascade-occt: add module configurations

Allows basic selection of modules in opencascade from callPackage parameters.
This also fixes the compilation on darwin since we can selectively not compile
the DRAW module on that platform.
parent 99d67cd8
Loading
Loading
Loading
Loading
+4 −42
Original line number Diff line number Diff line
<<<<<<< HEAD:pkgs/by-name/op/opencascade-occt/package.nix
{
  lib,
  stdenv,
@@ -15,37 +14,7 @@
  libXmu,
  libXi,
  darwin,
||||||| parent of bb49bdaa64f0 (init: opencascade-occt-vtk-qt):pkgs/development/libraries/opencascade-occt/default.nix
{ lib
, stdenv
, fetchurl
, cmake
, ninja
, tcl
, tk
, libGL
, libGLU
, libXext
, libXmu
, libXi
, darwin
=======
{ lib
, stdenv
, fetchurl
, cmake
, ninja
, tcl
, tk
, libGL
, libGLU
, libXext
, libXmu
, libXi
, vtk
, darwin
, withVtk ? false
>>>>>>> bb49bdaa64f0 (init: opencascade-occt-vtk-qt):pkgs/development/libraries/opencascade-occt/default.nix
  withVtk ? false
}:

stdenv.mkDerivation rec {
@@ -81,12 +50,6 @@ stdenv.mkDerivation rec {
    libXext
    libXmu
    libXi
<<<<<<< HEAD:pkgs/by-name/op/opencascade-occt/package.nix
    rapidjson
  ] ++ lib.optional stdenv.hostPlatform.isDarwin darwin.apple_sdk.frameworks.Cocoa;
||||||| parent of bb49bdaa64f0 (init: opencascade-occt-vtk-qt):pkgs/development/libraries/opencascade-occt/default.nix
  ] ++ lib.optional stdenv.hostPlatform.isDarwin darwin.apple_sdk.frameworks.Cocoa;
=======
  ] ++ lib.optionals withVtk [
    vtk
  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
@@ -104,7 +67,6 @@ stdenv.mkDerivation rec {
    "-D3RDPARTY_VTK_INCLUDE_DIR=${vtk}/include/vtk"
    "-DBUILD_MODULE_VISUALIZATION=ON"
  ];
>>>>>>> bb49bdaa64f0 (init: opencascade-occt-vtk-qt):pkgs/development/libraries/opencascade-occt/default.nix

  NIX_CFLAGS_COMPILE = [ "-fpermissive" ];
  cmakeFlags = [ "-DUSE_RAPIDJSON=ON" ];
+78 −0
Original line number Diff line number Diff line
{ lib
, stdenv
, fetchurl
, cmake
, ninja
, tcl
, tk
, fontconfig
, freetype
, libGL
, libGLU
, libXext
, libXmu
, libXi
, vtk
, mesa
, darwin
, withVtk ? false
, moduleVisualization ? false
, moduleDraw ? false
}:

stdenv.mkDerivation rec {
  pname = "opencascade-occt";
  version = "7.8.1";
  commit = "V${builtins.replaceStrings ["."] ["_"] version}";

  src = fetchurl {
    name = "occt-${commit}.tar.gz";
    url = "https://git.dev.opencascade.org/gitweb/?p=occt.git;a=snapshot;h=${commit};sf=tgz";
    hash = "sha256-AGMZqTLLjXbzJFW/RSTsohAGV8sMxlUmdU/Y2oOzkk8=";
  };

  nativeBuildInputs = [
    cmake
    ninja
  ];

  propagatedBuildInputs = [
    libGL
    libGLU
    libXext
    libXmu
    libXi
    freetype
    fontconfig
  ] ++ lib.optionals moduleDraw [
    tcl
    tk
  ] ++ lib.optionals withVtk [
    vtk
  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
    darwin.apple_sdk.frameworks.Cocoa
  ];

  buildInputs = [
    # NOP
  ];

  cmakeFlags = [
    "-DBUILD_MODULE_Draw=${if (moduleDraw) then "ON" else "OFF"}"
    "-DBUILD_MODULE_Visualization=${if (moduleVisualization || withVtk) then "ON" else "OFF"}"
  ] ++ lib.optionals withVtk [
    "-DUSE_VTK=ON"
    "-D3RDPARTY_VTK_INCLUDE_DIR=${vtk}/include/vtk"
  ];

  meta = with lib; {
    description = "Open CASCADE Technology, libraries for 3D modeling and numerical simulation";
    homepage = "https://www.opencascade.org/";
    license = licenses.lgpl21;  # essentially...
    # The special exception defined in the file OCCT_LGPL_EXCEPTION.txt
    # are basically about making the license a little less share-alike.
    maintainers = with maintainers; [ amiloradovsky gebner ];
    broken = (stdenv.hostPlatform.isDarwin && moduleDraw);
    platforms = platforms.all;
  };
}