diff options
author | Jan Malakhovski <oxij@oxij.org> | 2018-09-08 22:08:32 +0000 |
---|---|---|
committer | Jan Malakhovski <oxij@oxij.org> | 2018-09-08 22:08:32 +0000 |
commit | b7bd0561be4e95edd69a5b42d5aedc5e909db01f (patch) | |
tree | bd82469f1c93ce6d4d03c0b0e8ad0c32b0251e24 /pkgs/development/libraries/physics/geant4/default.nix | |
parent | 16650af8c34e468cee61d6826c72cbc79eb114c2 (diff) | |
parent | fb0e0dcbc65a7b54bcf98b37b16b06412f0b042f (diff) | |
download | nixlib-b7bd0561be4e95edd69a5b42d5aedc5e909db01f.tar nixlib-b7bd0561be4e95edd69a5b42d5aedc5e909db01f.tar.gz nixlib-b7bd0561be4e95edd69a5b42d5aedc5e909db01f.tar.bz2 nixlib-b7bd0561be4e95edd69a5b42d5aedc5e909db01f.tar.lz nixlib-b7bd0561be4e95edd69a5b42d5aedc5e909db01f.tar.xz nixlib-b7bd0561be4e95edd69a5b42d5aedc5e909db01f.tar.zst nixlib-b7bd0561be4e95edd69a5b42d5aedc5e909db01f.zip |
Merge branch 'master' into staging
Diffstat (limited to 'pkgs/development/libraries/physics/geant4/default.nix')
-rw-r--r-- | pkgs/development/libraries/physics/geant4/default.nix | 167 |
1 files changed, 70 insertions, 97 deletions
diff --git a/pkgs/development/libraries/physics/geant4/default.nix b/pkgs/development/libraries/physics/geant4/default.nix index 87af069c18a5..7123858b8edc 100644 --- a/pkgs/development/libraries/physics/geant4/default.nix +++ b/pkgs/development/libraries/physics/geant4/default.nix @@ -1,128 +1,101 @@ -{ enableMultiThreading ? false +{ enableMultiThreading ? true , enableG3toG4 ? false , enableInventor ? false , enableGDML ? false , enableQT ? false , enableXM ? false -, enableOpenGLX11 ? false +, enableOpenGLX11 ? true , enableRaytracerX11 ? false # Standard build environment with cmake. , stdenv, fetchurl, cmake # Optional system packages, otherwise internal GEANT4 packages are used. -, clhep ? null -, expat ? null -, zlib ? null +, clhep ? null # not packaged currently +, expat +, zlib # For enableGDML. -, xercesc ? null +, xercesc # For enableQT. -, qt ? null # qt4SDK or qt5SDK +, qtbase # For enableXM. -, motif ? null # motif or lesstif +, motif # For enableInventor , coin3d , soxt -, libXpm ? null +, libXpm # For enableQT, enableXM, enableOpenGLX11, enableRaytracerX11. -, libGLU_combined ? null -, xlibsWrapper ? null -, libXmu ? null +, libGLU_combined +, xlibsWrapper +, libXmu }: -# G4persistency library with support for GDML -assert enableGDML -> xercesc != null; - -# If enableQT, Qt4/5 User Interface and Visualization drivers. -assert enableQT -> qt != null; - -# Motif User Interface and Visualisation drivers. -assert enableXM -> motif != null; - -# OpenGL/X11 User Interface and Visualisation drivers. -assert enableQT || enableXM || enableOpenGLX11 || enableRaytracerX11 -> libGLU_combined != null; -assert enableQT || enableXM || enableOpenGLX11 || enableRaytracerX11 -> xlibsWrapper != null; -assert enableQT || enableXM || enableOpenGLX11 || enableRaytracerX11 -> libXmu != null; -assert enableInventor -> libXpm != null; - -let - buildGeant4 = - { version, src, multiThreadingCapable ? false }: - - stdenv.mkDerivation rec { - inherit version src; - name = "geant4-${version}"; - - multiThreadingFlag = if multiThreadingCapable then "-DGEANT4_BUILD_MULTITHREADED=${if enableMultiThreading then "ON" else "OFF"}" else ""; - - cmakeFlags = '' - ${multiThreadingFlag} - -DGEANT4_INSTALL_DATA=OFF - -DGEANT4_USE_GDML=${if enableGDML then "ON" else "OFF"} - -DGEANT4_USE_G3TOG4=${if enableG3toG4 then "ON" else "OFF"} - -DGEANT4_USE_QT=${if enableQT then "ON" else "OFF"} - -DGEANT4_USE_XM=${if enableXM then "ON" else "OFF"} - -DGEANT4_USE_OPENGL_X11=${if enableOpenGLX11 then "ON" else "OFF"} - -DGEANT4_USE_INVENTOR=${if enableInventor then "ON" else "OFF"} - -DGEANT4_USE_RAYTRACER_X11=${if enableRaytracerX11 then "ON" else "OFF"} - -DGEANT4_USE_SYSTEM_CLHEP=${if clhep != null then "ON" else "OFF"} - -DGEANT4_USE_SYSTEM_EXPAT=${if expat != null then "ON" else "OFF"} - -DGEANT4_USE_SYSTEM_ZLIB=${if zlib != null then "ON" else "OFF"} - -DINVENTOR_INCLUDE_DIR=${coin3d}/include - -DINVENTOR_LIBRARY_RELEASE=${coin3d}/lib/libCoin.so - ''; - - enableParallelBuilding = true; - buildInputs = [ cmake clhep expat zlib xercesc qt motif libGLU_combined xlibsWrapper libXmu libXpm coin3d soxt ]; - propagatedBuildInputs = [ clhep expat zlib xercesc qt motif libGLU_combined xlibsWrapper libXmu libXpm coin3d soxt ]; - - postFixup = '' - # Don't try to export invalid environment variables. - sed -i 's/export G4\([A-Z]*\)DATA/#export G4\1DATA/' "$out"/bin/geant4.sh - ''; - - setupHook = ./geant4-hook.sh; - - passthru = { - data = import ./datasets.nix { inherit stdenv fetchurl; }; - }; - - # Set the myriad of envars required by Geant4 if we use a nix-shell. - shellHook = '' - source $out/nix-support/setup-hook - ''; - - meta = with stdenv.lib; { - description = "A toolkit for the simulation of the passage of particles through matter"; - longDescription = '' - Geant4 is a toolkit for the simulation of the passage of particles through matter. - Its areas of application include high energy, nuclear and accelerator physics, as well as studies in medical and space science. - The two main reference papers for Geant4 are published in Nuclear Instruments and Methods in Physics Research A 506 (2003) 250-303, and IEEE Transactions on Nuclear Science 53 No. 1 (2006) 270-278. - ''; - homepage = http://www.geant4.org; - license = licenses.g4sl; - maintainers = with maintainers; [ tmplt ]; - platforms = platforms.all; - }; - }; - - fetchGeant4 = import ./fetch.nix { - inherit stdenv fetchurl; +stdenv.mkDerivation rec { + version = "10.4.1"; + name = "geant4-${version}"; + + src = fetchurl{ + url = "http://cern.ch/geant4-data/releases/geant4.10.04.p01.tar.gz"; + sha256 = "a3eb13e4f1217737b842d3869dc5b1fb978f761113e74bd4eaf6017307d234dd"; }; -in { - v10_0_2 = buildGeant4 { - inherit (fetchGeant4.v10_0_2) version src; - multiThreadingCapable = true; + cmakeFlags = [ + "-DGEANT4_INSTALL_DATA=OFF" + "-DGEANT4_USE_GDML=${if enableGDML then "ON" else "OFF"}" + "-DGEANT4_USE_G3TOG4=${if enableG3toG4 then "ON" else "OFF"}" + "-DGEANT4_USE_QT=${if enableQT then "ON" else "OFF"}" + "-DGEANT4_USE_XM=${if enableXM then "ON" else "OFF"}" + "-DGEANT4_USE_OPENGL_X11=${if enableOpenGLX11 then "ON" else "OFF"}" + "-DGEANT4_USE_INVENTOR=${if enableInventor then "ON" else "OFF"}" + "-DGEANT4_USE_RAYTRACER_X11=${if enableRaytracerX11 then "ON" else "OFF"}" + "-DGEANT4_USE_SYSTEM_CLHEP=${if clhep != null then "ON" else "OFF"}" + "-DGEANT4_USE_SYSTEM_EXPAT=${if expat != null then "ON" else "OFF"}" + "-DGEANT4_USE_SYSTEM_ZLIB=${if zlib != null then "ON" else "OFF"}" + "-DGEANT4_BUILD_MULTITHREADED=${if enableMultiThreading then "ON" else "OFF"}" + ] ++ stdenv.lib.optionals enableInventor [ + "-DINVENTOR_INCLUDE_DIR=${coin3d}/include" + "-DINVENTOR_LIBRARY_RELEASE=${coin3d}/lib/libCoin.so" + ]; + + enableParallelBuilding = true; + nativeBuildInputs = [ cmake ]; + buildInputs = [ clhep expat zlib libGLU_combined xlibsWrapper libXmu ] + ++ stdenv.lib.optionals enableGDML [ xercesc ] + ++ stdenv.lib.optionals enableXM [ motif ] + ++ stdenv.lib.optionals enableQT [ qtbase ] + ++ stdenv.lib.optionals enableInventor [ libXpm coin3d soxt ]; + + postFixup = '' + # Don't try to export invalid environment variables. + sed -i 's/export G4\([A-Z]*\)DATA/#export G4\1DATA/' "$out"/bin/geant4.sh + ''; + + setupHook = ./geant4-hook.sh; + + passthru = { + data = import ./datasets.nix { inherit stdenv fetchurl; }; }; - v10_4_1 = buildGeant4 { - inherit (fetchGeant4.v10_4_1) version src; - multiThreadingCapable = true; + # Set the myriad of envars required by Geant4 if we use a nix-shell. + shellHook = '' + source $out/nix-support/setup-hook + ''; + + meta = with stdenv.lib; { + description = "A toolkit for the simulation of the passage of particles through matter"; + longDescription = '' + Geant4 is a toolkit for the simulation of the passage of particles through matter. + Its areas of application include high energy, nuclear and accelerator physics, as well as studies in medical and space science. + The two main reference papers for Geant4 are published in Nuclear Instruments and Methods in Physics Research A 506 (2003) 250-303, and IEEE Transactions on Nuclear Science 53 No. 1 (2006) 270-278. + ''; + homepage = http://www.geant4.org; + license = licenses.g4sl; + maintainers = with maintainers; [ tmplt ]; + platforms = platforms.linux; }; } |