sci-physics/geant: version bumps for Geant4 10.6
authorGuilherme Amadio <amadio@gentoo.org>
Mon, 16 Mar 2020 16:22:13 +0000 (17:22 +0100)
committerGuilherme Amadio <amadio@gentoo.org>
Mon, 16 Mar 2020 16:58:49 +0000 (17:58 +0100)
This set of new ebuilds for Geant4 have been updated to offer more
functionality and be easier to maintain in the future. Here is a
list of the improvements made:

- Moved to EAPI=7
- Same ebuild can be used for regular, beta, and patch releases
- Dropped extra zeros from version numbers to follow upstream more closely
- SRC_URI has been updated to the new upstream location
- Fixed dependency on CLHEP to require matching USE=threads
- Added USE=c++XX flags to allow users to choose C++ standard (this is
  useful for packages that depend on both sci-physics/root and geant
  to ensure that they have been compiled with matching C++ standards).
- New USE=hdf5 and USE=freetype have been added
- Removed obsolete scripts and unnecessary dependency on app-shells/tcsh
- Always use system's zlib instead of bundled one
- Removed usage of PDEPEND by updating geant-docs and geant-data
- Added patch to allow customization of CMAKE_INSTALL_DATADIR
- Added ${EXTRA_ECONF} to allow users to customize installation further
  without patching ebuild itself or using an overlay

Package-Manager: Portage-2.3.94, Repoman-2.3.21
Signed-off-by: Guilherme Amadio <amadio@gentoo.org>
sci-physics/geant/Manifest
sci-physics/geant/files/geant-4.10.6-datadir.patch [new file with mode: 0644]
sci-physics/geant/geant-4.10.6.ebuild [new file with mode: 0644]
sci-physics/geant/geant-4.10.6_beta1.ebuild [new file with mode: 0644]
sci-physics/geant/geant-4.10.6_p1.ebuild [new file with mode: 0644]
sci-physics/geant/metadata.xml

index 7fde0b416a816fc4149b6683ef81b70e3cc51bd8..7b80e8044913753a99fc15b6a02957fdb15845ef 100644 (file)
@@ -1,2 +1,5 @@
 DIST geant4.10.03.tar.gz 33143770 BLAKE2B f84c4dc680c45bc5728485e3e38852de90ae0f89dfe4cf65677aa86f6d90b4cbe5d2ffec812b08d05c88f8abb73f006f3a5319bcfd48c20872299ccfd91c7e39 SHA512 61d67e57f1576ab10562f2309995897008b4be1aa60f7e471b4f5efc2d852788d5faf60e64ea7024a4af4035d98c04c0be23df8593a4ed3a510af6b476013c56
 DIST geant4.10.05.p01.tar.gz 34413415 BLAKE2B d98a9308e37f166dccf8f9640a54ee74ab2b1d07275609666aec6d929b0193269a18075762cebaa154abcad5c8359a128b6629ff973cb6cdc8f54535151997a3 SHA512 ace2097251ee4cdda3511c3dd8191c97e1001f73d421797e3cd517ed41fa5adc73efcddfb2c8b6fb75231e5af8ddb4bd63a402ccb99b40ce2c140588d328b582
+DIST geant4.10.06.b01.tar.gz 34511064 BLAKE2B d20bd338ea0ac47b11464b581aa0dec3725da56902dbaab233fcaad28ba6b3ce302a8d7e2c27f4532bed2db991467b4bde837675f3837f066c9e7e3d78c7acd6 SHA512 3916a0ad13891fc5a189c0be6c2e57abe29281696c9d16c0c54fd11940146586feb550a61403ab6451e6575d2ad1f4349590d9c564d7b5d7fc5ab9e9b2356ccb
+DIST geant4.10.06.p01.tar.gz 34869969 BLAKE2B 0a27f34df213a0dcc2d87c6001c100269be7496519c614fa5b51cd6502d98232d09de0f3c44216c34b6788ec8a1f626d22a53cb7329027006c614a10777b6896 SHA512 d9bca66b086a309a577dcf018c0ca52f5d786b1ebe5ce9d30c29c579c342399816c34efbcb34af60871145b6713cb8151f5517c5a0aa9d24d00e4257a5c1c6c0
+DIST geant4.10.06.tar.gz 34834510 BLAKE2B 48f50c734186e444f5ef2fd02b013565db7f404b7fbaeb3127d7dd67ede76196fd5fa4512a5482cceb7696305eb72dbe819fe43fa26ac63ded49259d804f5ccf SHA512 e03d69cb66947ddc71d20b9065fd5db384dfc8b2b8e905ddab9ebb992c642dc33f369d7eba5f2338487da5d9d28f20f3078917f222d187c65e5af1a0112ee044
diff --git a/sci-physics/geant/files/geant-4.10.6-datadir.patch b/sci-physics/geant/files/geant-4.10.6-datadir.patch
new file mode 100644 (file)
index 0000000..c26bf89
--- /dev/null
@@ -0,0 +1,159 @@
+From 44966c44635debaddd859c788b008cd4e6c7fab6 Mon Sep 17 00:00:00 2001
+From: Guilherme Amadio <amadio@cern.ch>
+Date: Fri, 13 Mar 2020 15:36:27 +0100
+Subject: [PATCH] Allow customization of CMAKE_INSTALL_DATADIR
+
+---
+ cmake/Modules/G4CMakeMain.cmake               |  2 +-
+ cmake/Modules/G4ConfigureGNUMakeHelpers.cmake | 20 +++++++++----------
+ cmake/Modules/Geant4InstallData.cmake         |  4 ++--
+ source/analysis/CMakeLists.txt                |  2 +-
+ source/analysis/g4tools/CMakeLists.txt        |  2 +-
+ 5 files changed, 15 insertions(+), 15 deletions(-)
+
+diff --git a/cmake/Modules/G4CMakeMain.cmake b/cmake/Modules/G4CMakeMain.cmake
+index a6b984fcad..5ab63202ca 100644
+--- a/cmake/Modules/G4CMakeMain.cmake
++++ b/cmake/Modules/G4CMakeMain.cmake
+@@ -121,7 +121,7 @@ mark_as_advanced(GEANT4_INSTALL_EXAMPLES)
+ if(GEANT4_INSTALL_EXAMPLES)
+   install(DIRECTORY examples
+-    DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/Geant4-${Geant4_VERSION}
++    DESTINATION ${CMAKE_INSTALL_DATADIR}
+     COMPONENT Examples
+     PATTERN "CVS" EXCLUDE
+     PATTERN ".svn" EXCLUDE
+diff --git a/cmake/Modules/G4ConfigureGNUMakeHelpers.cmake b/cmake/Modules/G4ConfigureGNUMakeHelpers.cmake
+index c2aeefee59..1052f43a45 100644
+--- a/cmake/Modules/G4ConfigureGNUMakeHelpers.cmake
++++ b/cmake/Modules/G4ConfigureGNUMakeHelpers.cmake
+@@ -729,7 +729,7 @@ _g4tc_configure_build_tree_scripts(geant4make)
+ # +- CMAKE_INSTALL_PREFIX
+ #    +- LIBDIR/Geant4-VERSION (G4LIB)
+ #    +- INCLUDEDIR/Geant4     (G4INCLUDE)
+-#    +- DATAROOTDIR/Geant4-VERSION/
++#    +- DATADIR/
+ #       +- geant4make              (THIS IS G4INSTALL!)
+ #          +- geant4make.(c)sh
+ #          +- config/
+@@ -742,7 +742,7 @@ set(G4INSTALL "\"\$geant4make_root\"")
+ # - Include dir
+ file(RELATIVE_PATH
+   G4MAKE_TO_INCLUDEDIR
+-  ${CMAKE_INSTALL_FULL_DATAROOTDIR}/Geant4-${Geant4_VERSION}/geant4make
++  ${CMAKE_INSTALL_FULL_DATADIR}/geant4make
+   ${CMAKE_INSTALL_FULL_INCLUDEDIR}/${PROJECT_NAME}
+   )
+ set(G4INCLUDE "\"`cd \$geant4make_root/${G4MAKE_TO_INCLUDEDIR} > /dev/null \; pwd`\"")
+@@ -750,7 +750,7 @@ set(G4INCLUDE "\"`cd \$geant4make_root/${G4MAKE_TO_INCLUDEDIR} > /dev/null \; pw
+ # - Bin dir
+ file(RELATIVE_PATH
+   G4MAKE_TO_BINDIR
+-  ${CMAKE_INSTALL_FULL_DATAROOTDIR}/Geant4-${Geant4_VERSION}/geant4make
++  ${CMAKE_INSTALL_FULL_DATADIR}/geant4make
+   ${CMAKE_INSTALL_FULL_BINDIR}
+   )
+ set(G4BIN_DIR "\"`cd \$geant4make_root/${G4MAKE_TO_BINDIR} > /dev/null \; pwd`\"")
+@@ -758,7 +758,7 @@ set(G4BIN_DIR "\"`cd \$geant4make_root/${G4MAKE_TO_BINDIR} > /dev/null \; pwd`\"
+ # - Lib dir
+ file(RELATIVE_PATH
+   G4MAKE_TO_LIBDIR
+-  ${CMAKE_INSTALL_FULL_DATAROOTDIR}/Geant4-${Geant4_VERSION}/geant4make
++  ${CMAKE_INSTALL_FULL_DATADIR}/geant4make
+   ${CMAKE_INSTALL_FULL_LIBDIR}
+   )
+ set(G4LIB "\"`cd \$geant4make_root/${G4MAKE_TO_LIBDIR}/Geant4-${Geant4_VERSION} > /dev/null \; pwd`\"")
+@@ -775,7 +775,7 @@ foreach(_ds ${GEANT4_EXPORTED_DATASETS})
+   file(RELATIVE_PATH
+     G4MAKE_TO_DATADIR
+-    ${CMAKE_INSTALL_FULL_DATAROOTDIR}/Geant4-${Geant4_VERSION}/geant4make
++    ${CMAKE_INSTALL_FULL_DATADIR}/geant4make
+     ${${_ds}_PATH}
+     )
+   set(${_ds}_PATH "\"`cd \$geant4make_root/${G4MAKE_TO_DATADIR} > /dev/null \; pwd`\"")
+@@ -788,7 +788,7 @@ set(TOOLS_FONT_PATH "\"`cd \$geant4make_root/../fonts > /dev/null ; pwd`\"")
+ _g4tc_configure_install_tree_scripts(
+     ${CMAKE_BINARY_DIR}/InstallTreeFiles
+     geant4make
+-    ${CMAKE_INSTALL_DATAROOTDIR}/Geant4-${Geant4_VERSION}/geant4make
++    ${CMAKE_INSTALL_DATADIR}/geant4make
+     )
+@@ -797,7 +797,7 @@ _g4tc_configure_install_tree_scripts(
+ #   softlink to the G4SYSTEM directory.
+ #
+ install(DIRECTORY config
+-    DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/Geant4-${Geant4_VERSION}/geant4make
++    DESTINATION ${CMAKE_INSTALL_DATADIR}/geant4make
+     COMPONENT Development
+     FILES_MATCHING PATTERN "*.gmk"
+     PATTERN "CVS" EXCLUDE
+@@ -845,11 +845,11 @@ endforeach()
+ # - Fonts
+ file(RELATIVE_PATH
+-  G4ENV_BINDIR_TO_DATAROOTDIR
++  G4ENV_BINDIR_TO_DATADIR
+   "${CMAKE_INSTALL_FULL_BINDIR}"
+-  "${CMAKE_INSTALL_FULL_DATAROOTDIR}/Geant4-${Geant4_VERSION}"
++  "${CMAKE_INSTALL_FULL_DATADIR}"
+   )
+-set(TOOLS_FONT_PATH "\"`cd \$geant4_envbindir/${G4ENV_BINDIR_TO_DATAROOTDIR}/fonts > /dev/null ; pwd`\"")
++set(TOOLS_FONT_PATH "\"`cd \$geant4_envbindir/${G4ENV_BINDIR_TO_DATADIR}/fonts > /dev/null ; pwd`\"")
+ # - Configure for each shell
+diff --git a/cmake/Modules/Geant4InstallData.cmake b/cmake/Modules/Geant4InstallData.cmake
+index 496b0fc4df..55536e51d4 100644
+--- a/cmake/Modules/Geant4InstallData.cmake
++++ b/cmake/Modules/Geant4InstallData.cmake
+@@ -105,7 +105,7 @@ set(GEANT4_DATASETS_URL "https://cern.ch/geant4-data/datasets")
+ set(GEANT4_BUILD_FULL_DATADIR ${PROJECT_BINARY_DIR}/data)
+ # Where to install data in the install tree (a Default)
+-set(GEANT4_INSTALL_DATADIR_DEFAULT "${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}-${${PROJECT_NAME}_VERSION}/data")
++set(GEANT4_INSTALL_DATADIR_DEFAULT "${CMAKE_INSTALL_DATADIR}/data")
+ # File containing dataset list
+ set(GEANT4_DATASETS_DEFINITIONS "Geant4DatasetDefinitions")
+@@ -596,7 +596,7 @@ endfunction()
+ # Choose Physics Data Install Dir
+ # This follows the pattern for interface and setting as in GNUInstallDirs
+ if(NOT GEANT4_INSTALL_DATADIR)
+-  set(GEANT4_INSTALL_DATADIR "" CACHE PATH "read-only architecture independent Geant4 physics data (DATAROOTDIR/${GEANT4_INSTALL_DATADIR_DEFAULT}")
++  set(GEANT4_INSTALL_DATADIR "" CACHE PATH "read-only architecture independent Geant4 physics data (DATADIR/data")
+   set(GEANT4_INSTALL_DATADIR "${GEANT4_INSTALL_DATADIR_DEFAULT}")
+ endif()
+diff --git a/source/analysis/CMakeLists.txt b/source/analysis/CMakeLists.txt
+index 44fa4a97be..4c40c704be 100644
+--- a/source/analysis/CMakeLists.txt
++++ b/source/analysis/CMakeLists.txt
+@@ -67,7 +67,7 @@ endif()
+ #
+ if (GEANT4_USE_FREETYPE)
+   install(DIRECTORY fonts/
+-    DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/Geant4-${Geant4_VERSION}/fonts
++    DESTINATION ${CMAKE_INSTALL_DATADIR}/fonts
+     PATTERN ".svn" EXCLUDE
+   )
+ endif()
+diff --git a/source/analysis/g4tools/CMakeLists.txt b/source/analysis/g4tools/CMakeLists.txt
+index 54c72f1297..df87582bc1 100644
+--- a/source/analysis/g4tools/CMakeLists.txt
++++ b/source/analysis/g4tools/CMakeLists.txt
+@@ -43,7 +43,7 @@ install(DIRECTORY include/
+ # We also need to install the tools license
+ #
+ install(FILES tools.license
+-  DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/Geant4-${Geant4_VERSION}
++  DESTINATION ${CMAKE_INSTALL_DATADIR}
+   )
+ #------------------------------------------------------------------------------
+-- 
+2.25.1
+
diff --git a/sci-physics/geant/geant-4.10.6.ebuild b/sci-physics/geant/geant-4.10.6.ebuild
new file mode 100644 (file)
index 0000000..d7e342e
--- /dev/null
@@ -0,0 +1,107 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake-utils
+
+MY_P=${PN}$(ver_cut 1-2).$(printf %02d $(ver_cut 3))
+
+case ${PV} in
+*_beta*)
+       MY_P+=.b$(printf %02d $(ver_cut 5))
+       DOCS="ReleaseNotes/Beta$(ver_cut 1-3)-*.txt"
+       ;;
+*_p*)
+       MY_P+=.p$(printf %02d $(ver_cut 5))
+       DOCS="ReleaseNotes/Patch$(ver_cut 1-3)-*.txt"
+       HTML_DOCS="ReleaseNotes/ReleaseNotes$(ver_cut 1-3).html"
+       ;;
+*)
+       HTML_DOCS="ReleaseNotes/ReleaseNotes$(ver_cut 1-3).html"
+       ;;
+esac
+
+DESCRIPTION="Toolkit for simulation of passage of particles through matter"
+HOMEPAGE="https://geant4.cern.ch/"
+SRC_URI="https://geant4-data.web.cern.ch/geant4-data/releases/${MY_P}.tar.gz"
+
+LICENSE="geant4"
+SLOT="4"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="+c++11 c++14 c++17 +data dawn doc examples freetype gdml geant3 hdf5
+       inventor motif opengl qt5 raytracerx static-libs threads vrml"
+
+REQUIRED_USE="^^ ( c++11 c++14 c++17 )"
+
+RDEPEND="
+       dev-libs/expat
+       >=sci-physics/clhep-2.4.1.3:2=[threads?]
+       data? ( ~sci-physics/geant-data-${PV} )
+       dawn? ( media-gfx/dawn )
+       doc? ( ~app-doc/geant-docs-$(ver_cut 1-3) )
+       gdml? ( dev-libs/xerces-c )
+       hdf5? ( sci-libs/hdf5[threads?] )
+       inventor? ( media-libs/SoXt )
+       motif? ( x11-libs/motif:0 )
+       opengl? ( virtual/opengl )
+       qt5? (
+               dev-qt/qtcore:5
+               dev-qt/qtgui:5
+               dev-qt/qtprintsupport:5
+               dev-qt/qtwidgets:5
+               opengl? ( dev-qt/qtopengl:5 )
+       )
+       raytracerx? (
+               x11-libs/libX11
+               x11-libs/libXmu
+       )"
+
+PATCHES=( "${FILESDIR}"/geant-4.10.6-datadir.patch )
+
+S="${WORKDIR}/${MY_P}"
+
+src_configure() {
+       local mycmakeargs=(
+               -DCMAKE_INSTALL_DATADIR="${EPREFIX}/usr/share/geant4"
+               -DGEANT4_BUILD_CXXSTD=$((usev c++11 || usev c++14 || usev c++17) | cut -c4-)
+               -DGEANT4_BUILD_MULTITHREADED=$(usex threads)
+               -DGEANT4_BUILD_TLS_MODEL=$(usex threads global-dynamic initial-exec)
+               -DGEANT4_INSTALL_DATA=OFF
+               -DGEANT4_INSTALL_DATADIR="${EPREFIX}/usr/share/geant4/data"
+               -DGEANT4_INSTALL_EXAMPLES=$(usex examples)
+               -DGEANT4_USE_FREETYPE=$(usex freetype)
+               -DGEANT4_USE_G3TOG4=$(usex geant3)
+               -DGEANT4_USE_GDML=$(usex gdml)
+               -DGEANT4_USE_INVENTOR=$(usex inventor)
+               -DGEANT4_USE_NETWORKDAWN=$(usex dawn)
+               -DGEANT4_USE_NETWORKVRML=$(usex vrml)
+               -DGEANT4_USE_OPENGL_X11=$(usex opengl)
+               -DGEANT4_USE_QT=$(usex qt5)
+               -DGEANT4_USE_RAYTRACER_X11=$(usex raytracerx)
+               -DGEANT4_USE_SYSTEM_CLHEP=ON
+               -DGEANT4_USE_SYSTEM_EXPAT=ON
+               -DGEANT4_USE_SYSTEM_ZLIB=ON
+               -DGEANT4_USE_WT=OFF
+               -DGEANT4_USE_XM=$(usex motif)
+               -DBUILD_STATIC_LIBS=$(usex static-libs)
+               ${EXTRA_ECONF}
+       )
+       if use inventor; then
+               mycmakeargs+=(
+                       -DINVENTOR_INCLUDE_DIR="$(coin-config --includedir)"
+                       -DINVENTOR_SOXT_INCLUDE_DIR="$(coin-config --includedir)"
+               )
+       fi
+       cmake-utils_src_configure
+}
+
+src_install() {
+       # adjust clhep linking flags for system clhep
+       # binmake.gmk is only useful for legacy build systems
+       sed -i -e 's/-lG4clhep/-lCLHEP/' config/binmake.gmk || die
+       cmake-utils_src_install
+       rm "${ED}"/usr/bin/*.{sh,csh} || die "failed to remove obsolete shell scripts"
+
+       einstalldocs
+}
diff --git a/sci-physics/geant/geant-4.10.6_beta1.ebuild b/sci-physics/geant/geant-4.10.6_beta1.ebuild
new file mode 100644 (file)
index 0000000..d7e342e
--- /dev/null
@@ -0,0 +1,107 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake-utils
+
+MY_P=${PN}$(ver_cut 1-2).$(printf %02d $(ver_cut 3))
+
+case ${PV} in
+*_beta*)
+       MY_P+=.b$(printf %02d $(ver_cut 5))
+       DOCS="ReleaseNotes/Beta$(ver_cut 1-3)-*.txt"
+       ;;
+*_p*)
+       MY_P+=.p$(printf %02d $(ver_cut 5))
+       DOCS="ReleaseNotes/Patch$(ver_cut 1-3)-*.txt"
+       HTML_DOCS="ReleaseNotes/ReleaseNotes$(ver_cut 1-3).html"
+       ;;
+*)
+       HTML_DOCS="ReleaseNotes/ReleaseNotes$(ver_cut 1-3).html"
+       ;;
+esac
+
+DESCRIPTION="Toolkit for simulation of passage of particles through matter"
+HOMEPAGE="https://geant4.cern.ch/"
+SRC_URI="https://geant4-data.web.cern.ch/geant4-data/releases/${MY_P}.tar.gz"
+
+LICENSE="geant4"
+SLOT="4"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="+c++11 c++14 c++17 +data dawn doc examples freetype gdml geant3 hdf5
+       inventor motif opengl qt5 raytracerx static-libs threads vrml"
+
+REQUIRED_USE="^^ ( c++11 c++14 c++17 )"
+
+RDEPEND="
+       dev-libs/expat
+       >=sci-physics/clhep-2.4.1.3:2=[threads?]
+       data? ( ~sci-physics/geant-data-${PV} )
+       dawn? ( media-gfx/dawn )
+       doc? ( ~app-doc/geant-docs-$(ver_cut 1-3) )
+       gdml? ( dev-libs/xerces-c )
+       hdf5? ( sci-libs/hdf5[threads?] )
+       inventor? ( media-libs/SoXt )
+       motif? ( x11-libs/motif:0 )
+       opengl? ( virtual/opengl )
+       qt5? (
+               dev-qt/qtcore:5
+               dev-qt/qtgui:5
+               dev-qt/qtprintsupport:5
+               dev-qt/qtwidgets:5
+               opengl? ( dev-qt/qtopengl:5 )
+       )
+       raytracerx? (
+               x11-libs/libX11
+               x11-libs/libXmu
+       )"
+
+PATCHES=( "${FILESDIR}"/geant-4.10.6-datadir.patch )
+
+S="${WORKDIR}/${MY_P}"
+
+src_configure() {
+       local mycmakeargs=(
+               -DCMAKE_INSTALL_DATADIR="${EPREFIX}/usr/share/geant4"
+               -DGEANT4_BUILD_CXXSTD=$((usev c++11 || usev c++14 || usev c++17) | cut -c4-)
+               -DGEANT4_BUILD_MULTITHREADED=$(usex threads)
+               -DGEANT4_BUILD_TLS_MODEL=$(usex threads global-dynamic initial-exec)
+               -DGEANT4_INSTALL_DATA=OFF
+               -DGEANT4_INSTALL_DATADIR="${EPREFIX}/usr/share/geant4/data"
+               -DGEANT4_INSTALL_EXAMPLES=$(usex examples)
+               -DGEANT4_USE_FREETYPE=$(usex freetype)
+               -DGEANT4_USE_G3TOG4=$(usex geant3)
+               -DGEANT4_USE_GDML=$(usex gdml)
+               -DGEANT4_USE_INVENTOR=$(usex inventor)
+               -DGEANT4_USE_NETWORKDAWN=$(usex dawn)
+               -DGEANT4_USE_NETWORKVRML=$(usex vrml)
+               -DGEANT4_USE_OPENGL_X11=$(usex opengl)
+               -DGEANT4_USE_QT=$(usex qt5)
+               -DGEANT4_USE_RAYTRACER_X11=$(usex raytracerx)
+               -DGEANT4_USE_SYSTEM_CLHEP=ON
+               -DGEANT4_USE_SYSTEM_EXPAT=ON
+               -DGEANT4_USE_SYSTEM_ZLIB=ON
+               -DGEANT4_USE_WT=OFF
+               -DGEANT4_USE_XM=$(usex motif)
+               -DBUILD_STATIC_LIBS=$(usex static-libs)
+               ${EXTRA_ECONF}
+       )
+       if use inventor; then
+               mycmakeargs+=(
+                       -DINVENTOR_INCLUDE_DIR="$(coin-config --includedir)"
+                       -DINVENTOR_SOXT_INCLUDE_DIR="$(coin-config --includedir)"
+               )
+       fi
+       cmake-utils_src_configure
+}
+
+src_install() {
+       # adjust clhep linking flags for system clhep
+       # binmake.gmk is only useful for legacy build systems
+       sed -i -e 's/-lG4clhep/-lCLHEP/' config/binmake.gmk || die
+       cmake-utils_src_install
+       rm "${ED}"/usr/bin/*.{sh,csh} || die "failed to remove obsolete shell scripts"
+
+       einstalldocs
+}
diff --git a/sci-physics/geant/geant-4.10.6_p1.ebuild b/sci-physics/geant/geant-4.10.6_p1.ebuild
new file mode 100644 (file)
index 0000000..d7e342e
--- /dev/null
@@ -0,0 +1,107 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake-utils
+
+MY_P=${PN}$(ver_cut 1-2).$(printf %02d $(ver_cut 3))
+
+case ${PV} in
+*_beta*)
+       MY_P+=.b$(printf %02d $(ver_cut 5))
+       DOCS="ReleaseNotes/Beta$(ver_cut 1-3)-*.txt"
+       ;;
+*_p*)
+       MY_P+=.p$(printf %02d $(ver_cut 5))
+       DOCS="ReleaseNotes/Patch$(ver_cut 1-3)-*.txt"
+       HTML_DOCS="ReleaseNotes/ReleaseNotes$(ver_cut 1-3).html"
+       ;;
+*)
+       HTML_DOCS="ReleaseNotes/ReleaseNotes$(ver_cut 1-3).html"
+       ;;
+esac
+
+DESCRIPTION="Toolkit for simulation of passage of particles through matter"
+HOMEPAGE="https://geant4.cern.ch/"
+SRC_URI="https://geant4-data.web.cern.ch/geant4-data/releases/${MY_P}.tar.gz"
+
+LICENSE="geant4"
+SLOT="4"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="+c++11 c++14 c++17 +data dawn doc examples freetype gdml geant3 hdf5
+       inventor motif opengl qt5 raytracerx static-libs threads vrml"
+
+REQUIRED_USE="^^ ( c++11 c++14 c++17 )"
+
+RDEPEND="
+       dev-libs/expat
+       >=sci-physics/clhep-2.4.1.3:2=[threads?]
+       data? ( ~sci-physics/geant-data-${PV} )
+       dawn? ( media-gfx/dawn )
+       doc? ( ~app-doc/geant-docs-$(ver_cut 1-3) )
+       gdml? ( dev-libs/xerces-c )
+       hdf5? ( sci-libs/hdf5[threads?] )
+       inventor? ( media-libs/SoXt )
+       motif? ( x11-libs/motif:0 )
+       opengl? ( virtual/opengl )
+       qt5? (
+               dev-qt/qtcore:5
+               dev-qt/qtgui:5
+               dev-qt/qtprintsupport:5
+               dev-qt/qtwidgets:5
+               opengl? ( dev-qt/qtopengl:5 )
+       )
+       raytracerx? (
+               x11-libs/libX11
+               x11-libs/libXmu
+       )"
+
+PATCHES=( "${FILESDIR}"/geant-4.10.6-datadir.patch )
+
+S="${WORKDIR}/${MY_P}"
+
+src_configure() {
+       local mycmakeargs=(
+               -DCMAKE_INSTALL_DATADIR="${EPREFIX}/usr/share/geant4"
+               -DGEANT4_BUILD_CXXSTD=$((usev c++11 || usev c++14 || usev c++17) | cut -c4-)
+               -DGEANT4_BUILD_MULTITHREADED=$(usex threads)
+               -DGEANT4_BUILD_TLS_MODEL=$(usex threads global-dynamic initial-exec)
+               -DGEANT4_INSTALL_DATA=OFF
+               -DGEANT4_INSTALL_DATADIR="${EPREFIX}/usr/share/geant4/data"
+               -DGEANT4_INSTALL_EXAMPLES=$(usex examples)
+               -DGEANT4_USE_FREETYPE=$(usex freetype)
+               -DGEANT4_USE_G3TOG4=$(usex geant3)
+               -DGEANT4_USE_GDML=$(usex gdml)
+               -DGEANT4_USE_INVENTOR=$(usex inventor)
+               -DGEANT4_USE_NETWORKDAWN=$(usex dawn)
+               -DGEANT4_USE_NETWORKVRML=$(usex vrml)
+               -DGEANT4_USE_OPENGL_X11=$(usex opengl)
+               -DGEANT4_USE_QT=$(usex qt5)
+               -DGEANT4_USE_RAYTRACER_X11=$(usex raytracerx)
+               -DGEANT4_USE_SYSTEM_CLHEP=ON
+               -DGEANT4_USE_SYSTEM_EXPAT=ON
+               -DGEANT4_USE_SYSTEM_ZLIB=ON
+               -DGEANT4_USE_WT=OFF
+               -DGEANT4_USE_XM=$(usex motif)
+               -DBUILD_STATIC_LIBS=$(usex static-libs)
+               ${EXTRA_ECONF}
+       )
+       if use inventor; then
+               mycmakeargs+=(
+                       -DINVENTOR_INCLUDE_DIR="$(coin-config --includedir)"
+                       -DINVENTOR_SOXT_INCLUDE_DIR="$(coin-config --includedir)"
+               )
+       fi
+       cmake-utils_src_configure
+}
+
+src_install() {
+       # adjust clhep linking flags for system clhep
+       # binmake.gmk is only useful for legacy build systems
+       sed -i -e 's/-lG4clhep/-lCLHEP/' config/binmake.gmk || die
+       cmake-utils_src_install
+       rm "${ED}"/usr/bin/*.{sh,csh} || die "failed to remove obsolete shell scripts"
+
+       einstalldocs
+}
index 179b2770b8129dcb433eeee55b3a8cc92c369c34..e89993be5a39f1d8920163443f22efd6aabaf1b9 100644 (file)
   features and detectors.
 </longdescription>
   <use>
+    <flag name="c++11">Build using the C++11 standard</flag>
+    <flag name="c++14">Build using the C++14 standard</flag>
+    <flag name="c++17">Build using the C++17 standard</flag>
     <flag name="data">Add a lot of standard physics data files for geant4</flag>
-    <flag name="dawn">Add support for <pkg>media-gfx/dawn</pkg> (3D postscript
-  rendering)</flag>
+    <flag name="dawn">Add support for <pkg>media-gfx/dawn</pkg> (3D postscript rendering)</flag>
+    <flag name="freetype">Add support for <pkg>media-libs/freetype</pkg></flag>
     <flag name="gdml">Enable geometry markup language for xml</flag>
     <flag name="geant3">Add compatibility for geant321 to geant4</flag>
     <flag name="inventor">Add support for Open Inventor SGI toolkit via Coin3D</flag>