summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Rood <jon.rood@nrel.gov>2017-12-14 19:11:47 -0700
committerscheibelp <scheibel1@llnl.gov>2017-12-14 18:11:47 -0800
commit7369ba21bf436025780a5bc6676a9fbe173e3cbb (patch)
tree003cba04a1117579f54a36e6cc36fe085553d6a5
parent020ce7735d5b2b8873b36278ce476035c20ce024 (diff)
downloadspack-7369ba21bf436025780a5bc6676a9fbe173e3cbb.tar.gz
spack-7369ba21bf436025780a5bc6676a9fbe173e3cbb.tar.bz2
spack-7369ba21bf436025780a5bc6676a9fbe173e3cbb.tar.xz
spack-7369ba21bf436025780a5bc6676a9fbe173e3cbb.zip
new package: Percept (#6636)
This also adds the 'exception' boost library to the set of default libraries built by boost.
-rw-r--r--var/spack/repos/builtin/packages/boost/package.py3
-rw-r--r--var/spack/repos/builtin/packages/percept/fix_cmakelists.patch54
-rw-r--r--var/spack/repos/builtin/packages/percept/fix_header.patch19
-rw-r--r--var/spack/repos/builtin/packages/percept/package.py75
4 files changed, 151 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/boost/package.py b/var/spack/repos/builtin/packages/boost/package.py
index df8628ccfa..91b83ac0b4 100644
--- a/var/spack/repos/builtin/packages/boost/package.py
+++ b/var/spack/repos/builtin/packages/boost/package.py
@@ -91,6 +91,7 @@ class Boost(Package):
default_install_libs = set(['atomic',
'chrono',
'date_time',
+ 'exception',
'filesystem',
'graph',
'iostreams',
@@ -339,6 +340,8 @@ class Boost(Package):
withLibs.remove('chrono')
if not spec.satisfies('@1.43.0:'):
withLibs.remove('random')
+ if not spec.satisfies('@1.39.0:'):
+ withLibs.remove('exception')
if '+graph' in spec and '+mpi' in spec:
withLibs.append('graph_parallel')
diff --git a/var/spack/repos/builtin/packages/percept/fix_cmakelists.patch b/var/spack/repos/builtin/packages/percept/fix_cmakelists.patch
new file mode 100644
index 0000000000..a3ce6b1d95
--- /dev/null
+++ b/var/spack/repos/builtin/packages/percept/fix_cmakelists.patch
@@ -0,0 +1,54 @@
+--- percept.orig/CMakeLists.txt 2017-12-08 09:16:41.572819000 -0700
++++ percept/CMakeLists.txt 2017-12-08 09:17:25.028818000 -0700
+@@ -97,13 +97,6 @@
+ SET (INSTALL_PERCEPT TRUE)
+ ENDIF()
+
+-IF (INSTALL_PERCEPT)
+- set(BINARY_INSTALL_DIR bin)
+- set(INCLUDE_INSTALL_DIR include)
+- set(LIB_INSTALL_DIR lib)
+- INCLUDE(CMakePackageConfigHelpers)
+-ENDIF ()
+-
+ MESSAGE("Setting and checking of compilers:")
+ SET(CMAKE_CXX_COMPILER ${Trilinos_CXX_COMPILER} )
+ SET(CMAKE_C_COMPILER ${Trilinos_C_COMPILER} )
+@@ -269,6 +262,8 @@
+ FILE (GLOB ADAPT_SOURCE src/adapt/main/*.cpp)
+ MESSAGE("-- ADAPT_SOURCE = ${ADAPT_SOURCE}")
+
++file(GLOB TRANSFER_SOURCE src/percept/mesh_transfer/*.cpp)
++
+ FILE (GLOB PERCEPT_UTEST_SOURCE test/unit_tests/*.cpp)
+ MESSAGE("-- PERCEPT_UTEST_SOURCE = ${PERCEPT_UTEST_SOURCE}")
+
+@@ -330,8 +325,11 @@
+ TARGET_LINK_LIBRARIES(${percept_lib_name} ${Trilinos_LIBRARIES} ${YAML_LIBRARY} ${OPENNURBS_LIBRARY} ${BOOST_LIBRARIES})
+ # TARGET_LINK_LIBRARIES(${percept_lib_name} ${GTEST_LIBRARY})
+
++ add_executable(mesh_transfer ${TRANSFER_SOURCE})
++ target_link_libraries(mesh_transfer ${percept_lib_name})
++
+ SET_PROPERTY(
+- TARGET ${percept_lib_name} ${adapt_ex_name} ${percept_utest_name} ${percept_rtest_name}
++ TARGET ${percept_lib_name} mesh_transfer ${adapt_ex_name} ${percept_utest_name} ${percept_rtest_name}
+ PROPERTY COMPILE_DEFINITIONS STK_PERCEPT_LITE=0 STK_PERCEPT_HAS_GEOMETRY STK_PERCEPT_USE_INTREPID
+ )
+
+@@ -342,5 +340,15 @@
+
+ ENDIF()
+
++IF (INSTALL_PERCEPT)
++ install(TARGETS ${percept_ex_name} ${adapt_ex_name}
++ ${percept_htest_name} ${percept_rtest_name} ${percept_utest_name}
++ mesh_transfer percept
++ RUNTIME DESTINATION bin
++ ARCHIVE DESTINATION lib
++ LIBRARY DESTINATION lib)
++ #install(DIRECTORY include/ DESTINATION include)
++ include(CMakePackageConfigHelpers)
++ENDIF ()
+
+ MESSAGE("\nAnd CMake says...:")
diff --git a/var/spack/repos/builtin/packages/percept/fix_header.patch b/var/spack/repos/builtin/packages/percept/fix_header.patch
new file mode 100644
index 0000000000..feca6d022c
--- /dev/null
+++ b/var/spack/repos/builtin/packages/percept/fix_header.patch
@@ -0,0 +1,19 @@
+--- percept.orig/src/percept/MeshType.hpp 2017-12-08 09:16:42.080818000 -0700
++++ percept/src/percept/MeshType.hpp 2017-12-08 09:17:25.568819000 -0700
+@@ -11,6 +11,7 @@
+ #include <percept/Percept.hpp>
+
+ #include <array>
++#include <memory>
+ #include <stk_mesh/base/Field.hpp>
+ #include <stk_mesh/base/Entity.hpp>
+ #include <stk_mesh/base/Bucket.hpp>
+@@ -62,7 +63,7 @@
+ typedef Kokkos::LayoutRight SecondaryDataLayout;
+ #endif
+
+- #elif KOKKOS_HAVE_OPENMP
++ #elif defined(KOKKOS_HAVE_OPENMP)
+ typedef Kokkos::OpenMP ExecSpace;
+ typedef Kokkos::OpenMP MemSpace;
+ typedef Kokkos::LayoutLeft DataLayout;
diff --git a/var/spack/repos/builtin/packages/percept/package.py b/var/spack/repos/builtin/packages/percept/package.py
new file mode 100644
index 0000000000..1719a7c1fe
--- /dev/null
+++ b/var/spack/repos/builtin/packages/percept/package.py
@@ -0,0 +1,75 @@
+##############################################################################
+# Copyright (c) 2013-2017, Lawrence Livermore National Security, LLC.
+# Produced at the Lawrence Livermore National Laboratory.
+#
+# This file is part of Spack.
+# Created by Todd Gamblin, tgamblin@llnl.gov, All rights reserved.
+# LLNL-CODE-647188
+#
+# For details, see https://github.com/spack/spack
+# Please also see the NOTICE and LICENSE files for our notice and the LGPL.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License (as
+# published by the Free Software Foundation) version 2.1, February 1999.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and
+# conditions of the GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+##############################################################################
+from spack import *
+
+
+class Percept(CMakePackage):
+ """Parallel mesh refinement and adaptivity tools for the finite
+ element method.
+ """
+
+ homepage = "https://github.com/PerceptTools/percept"
+ url = "https://github.com/PerceptTools/percept.git"
+
+ # This package file was created at percept
+ # commit dc1c8ec0175213146ac139946beca185a84c22e8
+ version('develop',
+ git='https://github.com/PerceptTools/percept.git', branch='master')
+
+ depends_on('googletest')
+ depends_on('opennurbs@percept')
+ depends_on('boost+graph+mpi')
+ depends_on('yaml-cpp+pic~shared@0.5.3:')
+ # Percept was initially tested against Trilinos 12.12.1
+ depends_on('trilinos~shared+exodus+tpetra+epetra+muelu+belos+ifpack2+amesos2+zoltan+stk+boost~superlu-dist+superlu+hdf5+zlib+pnetcdf+aztec+sacado~openmp+shards+intrepid+cgns@master,12.12.1:')
+
+ patch('fix_cmakelists.patch')
+ patch('fix_header.patch')
+
+ def cmake_args(self):
+ spec = self.spec
+ options = []
+
+ options.extend([
+ '-DSTK_PERCEPT_LITE:BOOL=OFF',
+ '-DSTK_ADAPT_HAVE_YAML_CPP:BOOL=ON',
+ '-DTrilinos_DIR:PATH=%s' %
+ spec['trilinos'].prefix,
+ '-DYAML_DIR:PATH=%s' %
+ spec['yaml-cpp'].prefix,
+ '-DBOOST_DIR:PATH=%s' %
+ spec['boost'].prefix,
+ '-DOPENNURBS_DIR:PATH=%s' %
+ spec['opennurbs'].prefix,
+ '-DOPENNURBS_INCLUDE_DIR:PATH=%s' %
+ spec['opennurbs'].prefix.include,
+ '-DOPENNURBS_LIBRARY_DIR:PATH=%s' %
+ spec['opennurbs'].prefix.lib,
+ '-DPERCEPT_TPLS_INSTALL_DIR:PATH=%s' %
+ spec['googletest'].prefix,
+ '-DENABLE_INSTALL:BOOL=ON'
+ ])
+
+ return options