Unverified Commit 62e97383 authored by Dmitry Kalinkin's avatar Dmitry Kalinkin Committed by GitHub
Browse files

geant4: move to by-name, drop deprecated enableQT argument (#358781)

parent fd55f187
Loading
Loading
Loading
Loading
+137 −0
Original line number Diff line number Diff line
{
  lib,
  stdenv,
  fetchurl,
  geant4,
}:

let
  mkDataset =
    {
      pname,
      version,
      sha256,
      envvar,
    }:
    stdenv.mkDerivation {
      inherit pname version;
      geant_version = geant4.version;

      src = fetchurl {
        url = "https://cern.ch/geant4-data/datasets/${pname}.${version}.tar.gz";
        inherit sha256;
      };

      preferLocalBuild = true;
      dontBuild = true;
      dontConfigure = true;

      datadir = "${placeholder "out"}/share/Geant4-${geant4.version}/data/${pname}${version}";
      installPhase = ''
        mkdir -p $datadir
        mv ./* $datadir
      '';

      inherit envvar;
      setupHook = ./datasets-hook.sh;

      meta = with lib; {
        description = "Data files for the Geant4 toolkit";
        homepage = "https://geant4.web.cern.ch/support/download";
        license = licenses.g4sl;
        platforms = platforms.all;
      };
    };
in
builtins.listToAttrs (
  map
    (a: {
      name = a.pname;
      value = mkDataset a;
    })
    [
      {
        pname = "G4NDL";
        version = "4.7.1";
        sha256 = "sha256-06yuSGIhGNJXneJKVNUz+yQWvw2p3SiPFyTfFIWkbHw=";
        envvar = "NEUTRONHP";
      }

      {
        pname = "G4EMLOW";
        version = "8.5";
        sha256 = "sha256-ZrrKSaxdReKsEMEltPsmYiXlEYA+ZpgZCc6c0+m873M=";
        envvar = "LE";
      }

      {
        pname = "G4PhotonEvaporation";
        version = "5.7";
        sha256 = "sha256-dh5C5W/93j2YOfn52BAmB8a0wDKRUe5Rggb07p535+U=";
        envvar = "LEVELGAMMA";
      }

      {
        pname = "G4RadioactiveDecay";
        version = "5.6";
        sha256 = "sha256-OIYHfJyOWph4PmcY4cMlZ4me6y27M+QC1Edrwv5PDfE=";
        envvar = "RADIOACTIVE";
      }

      {
        pname = "G4SAIDDATA";
        version = "2.0";
        sha256 = "sha256-HSao55uqceRNV1m59Vpn6Lft4xdRMWqekDfYAJDHLpE=";
        envvar = "SAIDXS";
      }

      {
        pname = "G4PARTICLEXS";
        version = "4.0";
        sha256 = "sha256-k4EDlwPD8rD9NqtJmTYqLItP+QgMMi+QtOMZKBEzypU=";
        envvar = "PARTICLEXS";
      }

      {
        pname = "G4ABLA";
        version = "3.3";
        sha256 = "sha256-HgQbMlLunO+IbWJPdT5pMwOqMtfl7zu6h7NPNtkuorE=";
        envvar = "ABLA";
      }

      {
        pname = "G4INCL";
        version = "1.2";
        sha256 = "sha256-+ICxYHPuCpLXSU8ydqbVLU3h02d6DUx8WHADlu0OGn4=";
        envvar = "INCL";
      }

      {
        pname = "G4PII";
        version = "1.3";
        sha256 = "sha256-YiWtkCZ19DgcmMa6JfxaBs6HVJqpeWNNPQNJHWYW6SY=";
        envvar = "PII";
      }

      {
        pname = "G4ENSDFSTATE";
        version = "2.3";
        sha256 = "sha256-lETF4IIHkavTzKrOEFsOR3kPrc4obhEUmDTnnEqOkgM=";
        envvar = "ENSDFSTATE";
      }

      {
        pname = "G4RealSurface";
        version = "2.2";
        sha256 = "sha256-mVTe4AEvUzEmf3g2kOkS5y21v1Lqm6vs0S6iIoIXaCA=";
        envvar = "REALSURFACE";
      }

      {
        pname = "G4TENDL";
        version = "1.4";
        sha256 = "sha256-S3J0AgzItO1Wm4ku8YwuCI7c22tm850lWFzO4l2XIeA=";
        envvar = "PARTICLEHP";
      }
    ]
)
+155 −0
Original line number Diff line number Diff line
{ enableMultiThreading ? true
, enableInventor       ? false
, enableQT             ? false # deprecated name
, enableQt             ? enableQT
, enableXM             ? false
, libGLX
, enableOpenGLX11      ? !stdenv.hostPlatform.isDarwin
, enablePython         ? false
, enableRaytracerX11   ? false

# Standard build environment with cmake.
, lib, stdenv, fetchurl, cmake

, clhep
, expat
, xercesc
, zlib

# For enableQt.
, qtbase
, wrapQtAppsHook

# For enableXM.
, motif

# For enableInventor
, coin3d
, soxt
, libXpm

# For enableQt, enableXM, enableOpenGLX11, enableRaytracerX11.
, libGLU, libGL
, libXext
, libXmu

# For enablePython
, boost
, python3

# For tests
, callPackage
{
  lib,
  stdenv,
  fetchurl,
  callPackage,
  boost,
  clhep,
  cmake,
  coin3d,
  expat,
  libGL,
  libGLU,
  libGLX,
  libXext,
  libXmu,
  libXpm,
  motif,
  python3,
  qt5,
  soxt,
  xercesc,
  zlib,
  enableMultiThreading ? true,
  enableInventor ? false,
  enableQt ? false,
  enableXM ? false,
  enableOpenGLX11 ? !stdenv.hostPlatform.isDarwin,
  enablePython ? false,
  enableRaytracerX11 ? false,
}:

let
  boost_python = boost.override { enablePython = true; python = python3; };
  boost_python = boost.override {
    enablePython = true;
    python = python3;
  };
in

lib.warnIf (enableQT != false) "geant4: enableQT is deprecated, please use enableQt"

stdenv.mkDerivation rec {
  version = "11.2.2";
  pname = "geant4";
@@ -62,7 +51,8 @@ stdenv.mkDerivation rec {
      --replace '${"$"}{prefix}/${"$"}{PTL_INSTALL_' '${"$"}{PTL_INSTALL_'
  '';

  cmakeFlags = [
  cmakeFlags =
    [
      "-DGEANT4_INSTALL_DATA=OFF"
      "-DGEANT4_USE_GDML=ON"
      "-DGEANT4_USE_G3TOG4=ON"
@@ -76,39 +66,58 @@ stdenv.mkDerivation rec {
      "-DGEANT4_USE_SYSTEM_EXPAT=ON"
      "-DGEANT4_USE_SYSTEM_ZLIB=ON"
      "-DGEANT4_BUILD_MULTITHREADED=${if enableMultiThreading then "ON" else "OFF"}"
  ] ++ lib.optionals (enableOpenGLX11 && stdenv.hostPlatform.isDarwin) [
    ]
    ++ lib.optionals (enableOpenGLX11 && stdenv.hostPlatform.isDarwin) [
      "-DXQuartzGL_INCLUDE_DIR=${libGLX.dev}/include"
      "-DXQuartzGL_gl_LIBRARY=${libGLX}/lib/libGL.dylib"
  ] ++ lib.optionals (enableMultiThreading && enablePython) [
    ]
    ++ lib.optionals (enableMultiThreading && enablePython) [
      "-DGEANT4_BUILD_TLS_MODEL=global-dynamic"
  ] ++ lib.optionals enableInventor [
    ]
    ++ lib.optionals enableInventor [
      "-DINVENTOR_INCLUDE_DIR=${coin3d}/include"
      "-DINVENTOR_LIBRARY_RELEASE=${coin3d}/lib/libCoin.so"
    ];

  nativeBuildInputs =  [
    cmake
  ];
  nativeBuildInputs = [ cmake ];

  propagatedNativeBuildInputs = lib.optionals enableQt [
    wrapQtAppsHook
  ];
  propagatedNativeBuildInputs = lib.optionals enableQt [ qt5.wrapQtAppsHook ];
  dontWrapQtApps = true; # no binaries

  buildInputs =
    lib.optionals enableOpenGLX11 [ libGLU libXext libXmu ]
    ++ lib.optionals enableInventor [ libXpm coin3d soxt motif ]
    ++ lib.optionals enablePython [ boost_python python3 ];
    lib.optionals enableOpenGLX11 [
      libGLU
      libXext
      libXmu
    ]
    ++ lib.optionals enableInventor [
      libXpm
      coin3d
      soxt
      motif
    ]
    ++ lib.optionals enablePython [
      boost_python
      python3
    ];

  propagatedBuildInputs = [ clhep expat xercesc zlib ]
  propagatedBuildInputs =
    [
      clhep
      expat
      xercesc
      zlib
    ]
    ++ lib.optionals enableOpenGLX11 [ libGL ]
    ++ lib.optionals enableXM [ motif ]
    ++ lib.optionals enableQt [ qtbase ];
    ++ lib.optionals enableQt [ qt5.qtbase ];

  postFixup = ''
  postFixup =
    ''
      # Don't try to export invalid environment variables.
      sed -i 's/export G4\([A-Z]*\)DATA/#export G4\1DATA/' "$out"/bin/geant4.sh
  '' + lib.optionalString enableQt ''
    ''
    + lib.optionalString enableQt ''
      wrapQtAppsHook
    '';

@@ -137,7 +146,10 @@ stdenv.mkDerivation rec {
    '';
    homepage = "http://www.geant4.org";
    license = licenses.g4sl;
    maintainers = with maintainers; [ omnipotententity veprbl ];
    maintainers = with maintainers; [
      omnipotententity
      veprbl
    ];
    platforms = platforms.unix;
  };
}
+5 −1
Original line number Diff line number Diff line
{ stdenv, cmake, geant4 }:
{
  stdenv,
  cmake,
  geant4,
}:

{
  example_B1 = stdenv.mkDerivation {
Loading