diff options
author | Dmitry Kalinkin <dmitry.kalinkin@gmail.com> | 2020-06-13 19:53:17 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-13 19:53:17 -0400 |
commit | fa942617bc0d68ae6dadf0c2a65f9215fd69c71c (patch) | |
tree | 54b8dba1396d5d23c9f861e77533521e1cd409da | |
parent | a53a6565afa505b6ad9e4c0915b5e5a1dd545674 (diff) | |
parent | 6fa6decdedfd65d5423b2299920dc83e66bdb89c (diff) | |
download | nixlib-fa942617bc0d68ae6dadf0c2a65f9215fd69c71c.tar nixlib-fa942617bc0d68ae6dadf0c2a65f9215fd69c71c.tar.gz nixlib-fa942617bc0d68ae6dadf0c2a65f9215fd69c71c.tar.bz2 nixlib-fa942617bc0d68ae6dadf0c2a65f9215fd69c71c.tar.lz nixlib-fa942617bc0d68ae6dadf0c2a65f9215fd69c71c.tar.xz nixlib-fa942617bc0d68ae6dadf0c2a65f9215fd69c71c.tar.zst nixlib-fa942617bc0d68ae6dadf0c2a65f9215fd69c71c.zip |
Merge pull request #89688 from veprbl/pr/g4py_rework
pythonPackages.geant4: init at 10.6.2
-rw-r--r-- | pkgs/development/libraries/physics/geant4/default.nix | 25 | ||||
-rw-r--r-- | pkgs/development/libraries/physics/geant4/g4py/default.nix | 65 | ||||
-rw-r--r-- | pkgs/development/libraries/physics/geant4/g4py/setup-hook.sh | 1 | ||||
-rw-r--r-- | pkgs/top-level/aliases.nix | 1 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 2 | ||||
-rw-r--r-- | pkgs/top-level/python-packages.nix | 5 |
6 files changed, 30 insertions, 69 deletions
diff --git a/pkgs/development/libraries/physics/geant4/default.nix b/pkgs/development/libraries/physics/geant4/default.nix index 2e44a7136df8..97822d769dd5 100644 --- a/pkgs/development/libraries/physics/geant4/default.nix +++ b/pkgs/development/libraries/physics/geant4/default.nix @@ -5,6 +5,7 @@ , enableQT ? false , enableXM ? false , enableOpenGLX11 ? true +, enablePython ? false , enableRaytracerX11 ? false # Standard build environment with cmake. @@ -33,8 +34,16 @@ , libGLU, libGL , xlibsWrapper , libXmu + +# For enablePython +, boost +, python3 }: +let + boost_python = boost.override { enablePython = true; python = python3; }; +in + stdenv.mkDerivation rec { version = "10.6.2"; pname = "geant4"; @@ -44,6 +53,16 @@ stdenv.mkDerivation rec { sha256 = "0vznm3pjlbihjy1wsxc4gj229k0dzc283wvil2xghyl08vwdpnpc"; }; + boost_python_lib = "python${builtins.replaceStrings ["."] [""] python3.pythonVersion}"; + postPatch = '' + # Fix for boost 1.67+ + substituteInPlace environments/g4py/CMakeLists.txt \ + --replace "find_package(Boost REQUIRED python)" \ + "find_package(Boost REQUIRED COMPONENTS $boost_python_lib)" + substituteInPlace environments/g4py/G4PythonHelpers.cmake \ + --replace "Boost::python" "Boost::$boost_python_lib" + ''; + cmakeFlags = [ "-DGEANT4_INSTALL_DATA=OFF" "-DGEANT4_USE_GDML=${if enableGDML then "ON" else "OFF"}" @@ -52,11 +71,14 @@ stdenv.mkDerivation rec { "-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_PYTHON=${if enablePython 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 (enableMultiThreading && enablePython) [ + "-DGEANT4_BUILD_TLS_MODEL=global-dynamic" ] ++ stdenv.lib.optionals enableInventor [ "-DINVENTOR_INCLUDE_DIR=${coin3d}/include" "-DINVENTOR_LIBRARY_RELEASE=${coin3d}/lib/libCoin.so" @@ -66,7 +88,8 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake ]; buildInputs = [ libGLU xlibsWrapper libXmu ] - ++ stdenv.lib.optionals enableInventor [ libXpm coin3d soxt motif ]; + ++ stdenv.lib.optionals enableInventor [ libXpm coin3d soxt motif ] + ++ stdenv.lib.optionals enablePython [ boost_python python3 ]; propagatedBuildInputs = [ clhep expat zlib libGL ] ++ stdenv.lib.optionals enableGDML [ xercesc ] diff --git a/pkgs/development/libraries/physics/geant4/g4py/default.nix b/pkgs/development/libraries/physics/geant4/g4py/default.nix deleted file mode 100644 index 4937cc0eca93..000000000000 --- a/pkgs/development/libraries/physics/geant4/g4py/default.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ stdenv, cmake, xercesc - -# The target version of Geant4 -, geant4 - -# Python (obviously) and boost::python for wrapping. -, python -, boost -}: - -let - # g4py does not support MT and will fail to build against MT geant - geant4_nomt = geant4.override { enableMultiThreading = false; }; - boost_python = boost.override { enablePython = true; inherit python; }; -in - -stdenv.mkDerivation { - inherit (geant4_nomt) version src; - pname = "g4py"; - - nativeBuildInputs = [ cmake ]; - buildInputs = [ geant4_nomt xercesc boost_python python ]; - - GEANT4_INSTALL = geant4_nomt; - - postPatch = '' - cd environments/g4py - ''; - - preConfigure = '' - # Fix for boost 1.67+ - substituteInPlace CMakeLists.txt \ - --replace "find_package(Boost)" "find_package(Boost 1.40 REQUIRED COMPONENTS python${builtins.replaceStrings ["."] [""] python.pythonVersion})" - for f in `find . -name CMakeLists.txt`; do - substituteInPlace "$f" \ - --replace "boost_python" "\''${Boost_LIBRARIES}" - done - ''; - - enableParallelBuilding = true; - - setupHook = ./setup-hook.sh; - - # Make sure we set PYTHONPATH - shellHook = '' - source $out/nix-support/setup-hook - ''; - - meta = { - description = "Python bindings and utilities for Geant4"; - 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 = stdenv.lib.licenses.g4sl; - maintainers = [ ]; - platforms = stdenv.lib.platforms.all; - }; -} diff --git a/pkgs/development/libraries/physics/geant4/g4py/setup-hook.sh b/pkgs/development/libraries/physics/geant4/g4py/setup-hook.sh deleted file mode 100644 index 8abfb461fc0f..000000000000 --- a/pkgs/development/libraries/physics/geant4/g4py/setup-hook.sh +++ /dev/null @@ -1 +0,0 @@ -export PYTHONPATH=$PYTHONPATH:@out@/lib diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 33b2c84f327a..03efd40d2714 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -154,6 +154,7 @@ mapAliases ({ fuseki = apache-jena-fuseki; # added 2018-04-25 fusesmb = throw "fusesmb is abandoned by upstream"; # added 2019-10-15 fwupdate = throw "fwupdate was merged into fwupd"; # added 2020-05-19 + g4py = python3Packages.geant4; # added 2020-06-06 gccApple = throw "gccApple is no longer supported"; # added 2018-04-25 gdb-multitarget = gdb; # added 2017-11-13 gdk_pixbuf = gdk-pixbuf; # added 2019-05-22 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 26a5e269629a..05f58b3a246f 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -25410,8 +25410,6 @@ in cernlib = callPackage ../development/libraries/physics/cernlib { }; - g4py = callPackage ../development/libraries/physics/geant4/g4py { }; - hepmc2 = callPackage ../development/libraries/physics/hepmc2 { }; hepmc3 = callPackage ../development/libraries/physics/hepmc3 { diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index a91912b36bfa..ed1127ba0462 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -3896,6 +3896,11 @@ in { gdrivefs = callPackage ../development/python-modules/gdrivefs { }; + geant4 = disabledIf (!isPy3k) (toPythonModule (pkgs.geant4.override { + enablePython = true; + python3 = python; + })); + genshi = callPackage ../development/python-modules/genshi { }; gentools = callPackage ../development/python-modules/gentools { }; |