commit:     811bb613d2bf8a45e9dbbbb689308fdf04a3d390
Author:     Benda Xu <heroxbd <AT> gentoo <DOT> org>
AuthorDate: Sun Dec  1 04:07:27 2019 +0000
Commit:     Benda XU <heroxbd <AT> gentoo <DOT> org>
CommitDate: Sun Dec  1 04:35:27 2019 +0000
URL:        https://gitweb.gentoo.org/proj/sci.git/commit/?id=811bb613

sci-physics/opticks: initial commit of 0.0.1_p20191110.

Package-Manager: Portage-2.3.79, Repoman-2.3.18
Signed-off-by: Benda Xu <heroxbd <AT> gentoo.org>

 .../opticks/files/opticks-0.0.1_cuda-helper.patch  | 13 +++
 .../opticks/files/opticks-0.0.1_extG4-CLHEP.patch  | 20 +++++
 .../opticks/files/opticks-0.0.1_nvcc-flags.patch   | 12 +++
 .../opticks/files/opticks-0.0.1_okconf.patch       | 45 ++++++++++
 .../files/opticks-0.0.1_python-helper.patch        | 48 +++++++++++
 .../opticks/files/opticks-0.0.1_split-cmake.patch  | 29 +++++++
 sci-physics/opticks/metadata.xml                   |  7 ++
 sci-physics/opticks/opticks-0.0.1_p20191110.ebuild | 98 ++++++++++++++++++++++
 8 files changed, 272 insertions(+)

diff --git a/sci-physics/opticks/files/opticks-0.0.1_cuda-helper.patch 
b/sci-physics/opticks/files/opticks-0.0.1_cuda-helper.patch
new file mode 100644
index 000000000..8893fb279
--- /dev/null
+++ b/sci-physics/opticks/files/opticks-0.0.1_cuda-helper.patch
@@ -0,0 +1,13 @@
+Index: opticks-0.0.1_p20191110/cmake/Modules/FindOpticksCUDA.cmake
+===================================================================
+--- opticks-0.0.1_p20191110.orig/cmake/Modules/FindOpticksCUDA.cmake
++++ opticks-0.0.1_p20191110/cmake/Modules/FindOpticksCUDA.cmake
+@@ -52,7 +52,7 @@ if(OpticksCUDA_FOUND)
+        HELPER_CUDA_INCLUDE_DIR
+        NAMES "helper_cuda.h"
+        PATHS
+-           "${CUDA_TOOLKIT_ROOT_DIR}/samples/common/inc"
++           "${CUDA_TOOLKIT_ROOT_DIR}/sdk/common/inc"
+            
"${CMAKE_CURRENT_LIST_DIR}/include/helper_cuda_fallback/${CUDA_VERSION}"
+     )
+     if(HELPER_CUDA_INCLUDE_DIR)

diff --git a/sci-physics/opticks/files/opticks-0.0.1_extG4-CLHEP.patch 
b/sci-physics/opticks/files/opticks-0.0.1_extG4-CLHEP.patch
new file mode 100644
index 000000000..9df5373d4
--- /dev/null
+++ b/sci-physics/opticks/files/opticks-0.0.1_extG4-CLHEP.patch
@@ -0,0 +1,20 @@
+Index: opticks-0.0.1_p20191110/extg4/CMakeLists.txt
+===================================================================
+--- opticks-0.0.1_p20191110.orig/extg4/CMakeLists.txt
++++ opticks-0.0.1_p20191110/extg4/CMakeLists.txt
+@@ -27,6 +27,7 @@ very focussed converter classes.
+ 
+ set(G4_VERBOSE ON)
+ find_package(G4         REQUIRED MODULE)
++find_package(CLHEP      REQUIRED)
+ find_package(GGeo       REQUIRED CONFIG)   
+ 
+ # just for X4GDMLWrite
+@@ -143,6 +144,7 @@ set(HEADERS
+ add_library( ${name}  SHARED ${SOURCES} ${HEADERS} )
+ target_link_libraries( ${name} PUBLIC 
+     Opticks::G4
++    CLHEP
+     Opticks::GGeo
+     Opticks::OpticksXercesC
+ )

diff --git a/sci-physics/opticks/files/opticks-0.0.1_nvcc-flags.patch 
b/sci-physics/opticks/files/opticks-0.0.1_nvcc-flags.patch
new file mode 100644
index 000000000..4360da18b
--- /dev/null
+++ b/sci-physics/opticks/files/opticks-0.0.1_nvcc-flags.patch
@@ -0,0 +1,12 @@
+Index: opticks-0.0.1_p20191110/cmake/Modules/OpticksCUDAFlags.cmake
+===================================================================
+--- opticks-0.0.1_p20191110.orig/cmake/Modules/OpticksCUDAFlags.cmake
++++ opticks-0.0.1_p20191110/cmake/Modules/OpticksCUDAFlags.cmake
+@@ -18,6 +18,7 @@ if(NOT (COMPUTE_CAPABILITY LESS 30))
+    list(APPEND CUDA_NVCC_FLAGS "-O2")
+    #list(APPEND CUDA_NVCC_FLAGS "-DVERBOSE")
+    list(APPEND CUDA_NVCC_FLAGS "--use_fast_math")
++   list(APPEND CUDA_NVCC_FLAGS $ENV{NVCCFLAGS})
+ 
+    #list(APPEND CUDA_NVCC_FLAGS "-m64")
+    #list(APPEND CUDA_NVCC_FLAGS "--disable-warnings")

diff --git a/sci-physics/opticks/files/opticks-0.0.1_okconf.patch 
b/sci-physics/opticks/files/opticks-0.0.1_okconf.patch
new file mode 100644
index 000000000..58cedbf06
--- /dev/null
+++ b/sci-physics/opticks/files/opticks-0.0.1_okconf.patch
@@ -0,0 +1,45 @@
+Index: opticks-0.0.1_p20191110/cmake/Modules/OpticksBuildOptions.cmake
+===================================================================
+--- opticks-0.0.1_p20191110.orig/cmake/Modules/OpticksBuildOptions.cmake
++++ opticks-0.0.1_p20191110/cmake/Modules/OpticksBuildOptions.cmake
+@@ -26,7 +26,7 @@ RPATH setup docs
+ 
+ #]=]
+ 
+-
++find_package(okconf REQUIRED CONFIG)
+ #message(STATUS "OpticksBuildOptions.cmake Configuring ${name}")
+ message(STATUS "Configuring ${name}")
+ 
+@@ -92,31 +92,6 @@ set(BUILD_SHARED_LIBS ON)
+ # to check the RPATH of a library or executable use chrpath on it, eg: 
chrpath $(which OKTest) 
+ #
+ 
+-
+-if(UNIX AND NOT APPLE)
+-    if(CMAKE_INSTALL_PREFIX STREQUAL ${OPTICKS_PREFIX})
+-       set(CMAKE_INSTALL_RPATH 
"$ORIGIN/../lib64:$ORIGIN/../externals/lib:$ORIGIN/../externals/lib64:$ORIGIN/../externals/OptiX/lib64")
+-    else()
+-       message(STATUS " Below two strings differ : forced to use absolute 
RPATH ")
+-       message(STATUS " CMAKE_INSTALL_PREFIX : ${CMAKE_INSTALL_PREFIX} ")
+-       message(STATUS " OPTICKS_PREFIX       : ${OPTICKS_PREFIX} ")
+-       set(ABSOLUTE_INSTALL_RPATH
+-                     ${OPTICKS_PREFIX}/lib64  
+-                     ${OPTICKS_PREFIX}/externals/lib  
+-                     ${OPTICKS_PREFIX}/externals/lib64  
+-                     ${OPTICKS_PREFIX}/externals/OptiX/lib64  
+-          ) 
+-       set(CMAKE_INSTALL_RPATH  "${ABSOLUTE_INSTALL_RPATH}")
+-    endif()
+-
+-elseif(APPLE)
+-set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
+-endif()
+-
+-
+-
+-
+-
+ include(OpticksCXXFlags)   
+ 
+ 

diff --git a/sci-physics/opticks/files/opticks-0.0.1_python-helper.patch 
b/sci-physics/opticks/files/opticks-0.0.1_python-helper.patch
new file mode 100644
index 000000000..255e0ee1a
--- /dev/null
+++ b/sci-physics/opticks/files/opticks-0.0.1_python-helper.patch
@@ -0,0 +1,48 @@
+Index: opticks-0.0.1_p20191110/ana/base.py
+===================================================================
+--- opticks-0.0.1_p20191110.orig/ana/base.py
++++ opticks-0.0.1_p20191110/ana/base.py
+@@ -27,7 +27,7 @@ Mostly Non-numpy basics, just numpy conf
+ import numpy as np
+ import os, logging, json, ctypes, subprocess, datetime, re
+ from collections import OrderedDict as odict 
+-from opticks.ana.enum import Enum 
++from enum import Enum
+ 
+ log = logging.getLogger(__name__) 
+ 
+Index: opticks-0.0.1_p20191110/ana/OpticksFlags.py
+===================================================================
+--- opticks-0.0.1_p20191110.orig/ana/OpticksFlags.py
++++ opticks-0.0.1_p20191110/ana/OpticksFlags.py
+@@ -7,7 +7,7 @@ Used from optickscore/CMakeLists.txt
+ 
+ """
+ import os, re, logging, argparse
+-from opticks.ana.base import json_save_
++from base import json_save_
+ 
+ log = logging.getLogger(__name__) 
+ 
+Index: opticks-0.0.1_p20191110/optickscore/CMakeLists.txt
+===================================================================
+--- opticks-0.0.1_p20191110.orig/optickscore/CMakeLists.txt
++++ opticks-0.0.1_p20191110/optickscore/CMakeLists.txt
+@@ -153,7 +153,7 @@ add_custom_command(
+    OUTPUT 
+          ${PYINI}
+    COMMAND 
+-          enum.py ${HDR} --quiet --inipath ${PYINI}
++         python2 ${CMAKE_CURRENT_SOURCE_DIR}/../ana/enum.py ${HDR} --quiet 
--inipath ${PYINI}
+    DEPENDS 
+          ${HDR}
+ )
+@@ -167,7 +167,7 @@ add_custom_command(
+    OUTPUT 
+          ${PYJS}
+    COMMAND 
+-          OpticksFlags.py ${CCFL} --quiet --jsonpath ${PYJS}
++         python2 ${CMAKE_CURRENT_SOURCE_DIR}/../ana/OpticksFlags.py ${CCFL} 
--quiet --jsonpath ${PYJS}
+    DEPENDS 
+          ${CCFL}
+ )

diff --git a/sci-physics/opticks/files/opticks-0.0.1_split-cmake.patch 
b/sci-physics/opticks/files/opticks-0.0.1_split-cmake.patch
new file mode 100644
index 000000000..213c6bd3b
--- /dev/null
+++ b/sci-physics/opticks/files/opticks-0.0.1_split-cmake.patch
@@ -0,0 +1,29 @@
+Index: opticks-0.0.1_p20191110/CMakeLists.txt
+===================================================================
+--- opticks-0.0.1_p20191110.orig/CMakeLists.txt
++++ opticks-0.0.1_p20191110/CMakeLists.txt
+@@ -56,12 +56,11 @@ project(${name} VERSION 0.1.0)
+ include(OpticksBuildOptions)   
+ 
+ set(INTEGRATED_SUBDIRS
+-  okconf
+   sysrap
+-#[=[
+   boostrap
+   npy
+   optickscore
++  yoctoglrap
+   ggeo 
+   assimprap
+   openmeshrap 
+@@ -73,9 +72,9 @@ set(INTEGRATED_SUBDIRS
+   oglrap  
+   opticksgl
+   ok
++  extg4
+   cfg4
+   okg4
+-#]=]
+ )
+ 
+ 

diff --git a/sci-physics/opticks/metadata.xml b/sci-physics/opticks/metadata.xml
new file mode 100644
index 000000000..7203fb853
--- /dev/null
+++ b/sci-physics/opticks/metadata.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+       <maintainer type="person">
+               <email>[email protected]</email>
+       </maintainer>
+</pkgmetadata>

diff --git a/sci-physics/opticks/opticks-0.0.1_p20191110.ebuild 
b/sci-physics/opticks/opticks-0.0.1_p20191110.ebuild
new file mode 100644
index 000000000..2553f571c
--- /dev/null
+++ b/sci-physics/opticks/opticks-0.0.1_p20191110.ebuild
@@ -0,0 +1,98 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python2_7 )
+inherit mercurial cmake-utils cuda flag-o-matic python-any-r1
+
+EHG_REPO_URI="https://bitbucket.org/simoncblyth/${PN}";
+EHG_REVISION="a580e704afe9d2c138072835e986542c835c29fc"
+
+DESCRIPTION="GPU Optical Photon Simulation for Particle Physics"
+HOMEPAGE="https://simoncblyth.bitbucket.io";
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="dev-util/nvidia-cuda-sdk
+       dev-libs/optix
+       media-gfx/openmesh
+       media-libs/DualContouringSample
+       media-libs/implicitmesher
+       media-libs/assimp
+       media-libs/glfw
+       media-libs/glew:0
+       media-libs/glm"
+DEPEND="dev-libs/boost
+       dev-util/bcm
+       dev-util/plog
+       ${PYTHON_DEPS}
+       ${RDEPEND}"
+PATCHES=( "${FILESDIR}"/opticks-0.0.1_split-cmake.patch
+       "${FILESDIR}"/opticks-0.0.1_okconf.patch
+       "${FILESDIR}"/opticks-0.0.1_cuda-helper.patch
+       "${FILESDIR}"/opticks-0.0.1_extG4-CLHEP.patch
+       "${FILESDIR}"/opticks-0.0.1_python-helper.patch )
+CMAKE_REMOVE_MODULES_LIST="${CMAKE_REMOVE_MODULES_LIST} FindBoost"
+
+pkg_setup() {
+       # opticks combined build is not parallel.
+       export MAKEOPTS="-j1"
+
+       python-any-r1_pkg_setup
+}
+
+src_prepare() {
+       cmake-utils_src_prepare
+
+       # do not add the default '-O2' that results in nvcc error of
+       # nvcc fatal   : redefinition of argument 'optimize'
+       export NVCCFLAGS=
+       cuda_src_prepare
+
+       # do not install the tests
+       for f in $(find -path '*/tests/CMakeLists.txt'); do
+               ebegin "Removing installation phrase from ${f}"
+               sed '/install(TARGETS/d' -i ${f}
+               eend $?
+       done
+       # do not install test scripts
+       ebegin "Removing test scripts installation from 
optixrap/{,tests/}CMakeLists.txt"
+       sed -e '/install(PROGRAMS/d' \
+               -e '/installcache/d' \
+               -i optixrap/CMakeLists.txt \
+               -i optixrap/tests/CMakeLists.txt || die
+       eend $?
+       ebegin "Removing test scripts installation from 
ggeo/tests/CMakeLists.txt"
+       sed -e '/install(FILES/,/)/d' -i ggeo/tests/CMakeLists.txt
+       eend $?
+       ebegin "Moving glsl into share in oglrap/CMakeLists.txt"
+       sed -e "s,gl),share/${PN}/gl)," -i oglrap/CMakeLists.txt
+       eend $?
+
+       ebegin "Removing python bindings from sysrap/CMakeLists.txt"
+       sed -e "/py\/opticks\/sysrap/d" -i sysrap/CMakeLists.txt
+       eend $?
+
+       # integrated build OpticksBuildOptions is included at the top
+       for f in */CMakeLists.txt; do
+               ebegin "Removing OpticksBuildOptions include from ${f}"
+               sed '/OpticksBuildOptions/d' -i ${f}
+               eend $?
+       done
+}
+
+# om-make-one
+src_configure() {
+       local mycmakeargs=(
+               -DCMAKE_MODULE_PATH="${S}"/cmake/Modules
+               -DOptiX_INSTALL_DIR="${EPREFIX}/opt/optix"
+               -DCUDA_SDK_ROOT_DIR="${EPREFIX}/opt/cuda/sdk"
+               -DCOMPUTE_CAPABILITY=61
+               -DCUDA_NVCC_FLAGS="${NVCCFLAGS}"
+               --target all
+       )
+       cmake-utils_src_configure
+}

Reply via email to