pmlib: new package (#12625)
* pmlib: new package * pmlib: fix options and add patch * pmlib: fix the patch file
This commit is contained in:
parent
6ea27cabd6
commit
9e1800d81c
2 changed files with 132 additions and 0 deletions
|
@ -0,0 +1,45 @@
|
|||
diff -ruN PMlib-org/cmake/CompileOptionSelector.cmake PMlib-fix/cmake/CompileOptionSelector.cmake
|
||||
--- PMlib-org/cmake/CompileOptionSelector.cmake 2019-06-09 15:15:08.000000000 +0900
|
||||
+++ PMlib-fix/cmake/CompileOptionSelector.cmake 2019-09-02 10:53:45.124905538 +0900
|
||||
@@ -36,8 +36,8 @@
|
||||
endif()
|
||||
|
||||
elseif (TARGET_ARCH STREQUAL "FX100")
|
||||
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Kfast -Nrt_notune -w -Xg")
|
||||
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Kfast -Nrt_notune -w -Xg")
|
||||
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Kfast -w -Nclang")
|
||||
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Kfast -w -Nclang")
|
||||
set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -Cpp -Kfast -Nrt_notune -Knooptmsg")
|
||||
if(enable_PreciseTimer)
|
||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Nfjcex")
|
||||
diff -ruN PMlib-org/cmake/Toolchain_fx100.cmake PMlib-fix/cmake/Toolchain_fx100.cmake
|
||||
--- PMlib-org/cmake/Toolchain_fx100.cmake 2019-06-09 15:15:08.000000000 +0900
|
||||
+++ PMlib-fix/cmake/Toolchain_fx100.cmake 2019-09-03 17:37:51.504857455 +0900
|
||||
@@ -18,18 +18,18 @@
|
||||
include(CMakeForceCompiler)
|
||||
|
||||
if(with_MPI)
|
||||
- CMAKE_FORCE_C_COMPILER(mpifccpx GNU)
|
||||
- CMAKE_FORCE_CXX_COMPILER(mpiFCCpx GNU)
|
||||
- CMAKE_FORCE_Fortran_COMPILER(mpifrtpx GNU)
|
||||
+ CMAKE_FORCE_C_COMPILER(mpicc GNU)
|
||||
+ CMAKE_FORCE_CXX_COMPILER(mpicxx GNU)
|
||||
+ CMAKE_FORCE_Fortran_COMPILER(mpifort GNU)
|
||||
else()
|
||||
- CMAKE_FORCE_C_COMPILER(fccpx GNU)
|
||||
- CMAKE_FORCE_CXX_COMPILER(FCCpx GNU)
|
||||
- CMAKE_FORCE_Fortran_COMPILER(frtpx GNU)
|
||||
+ CMAKE_FORCE_C_COMPILER(fcc GNU)
|
||||
+ CMAKE_FORCE_CXX_COMPILER(FCC GNU)
|
||||
+ CMAKE_FORCE_Fortran_COMPILER(frt GNU)
|
||||
endif()
|
||||
|
||||
-set(CMAKE_FIND_ROOT_PATH /opt/FJSVmxlang/GM-2.0.0-05)
|
||||
-set(CMAKE_INCLUDE_PATH /opt/FJSVmxlang/GM-2.0.0-05/include)
|
||||
-set(CMAKE_LIBRARY_PATH /opt/FJSVmxlang/GM-2.0.0-05/lib64)
|
||||
+#set(CMAKE_FIND_ROOT_PATH /opt/FJSVmxlang/GM-2.0.0-05)
|
||||
+#set(CMAKE_INCLUDE_PATH /opt/FJSVmxlang/GM-2.0.0-05/include)
|
||||
+#set(CMAKE_LIBRARY_PATH /opt/FJSVmxlang/GM-2.0.0-05/lib64)
|
||||
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
87
var/spack/repos/builtin/packages/pmlib/package.py
Normal file
87
var/spack/repos/builtin/packages/pmlib/package.py
Normal file
|
@ -0,0 +1,87 @@
|
|||
# Copyright 2013-2019 Lawrence Livermore National Security, LLC and other
|
||||
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||
#
|
||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||
|
||||
from spack import *
|
||||
|
||||
|
||||
class Pmlib(CMakePackage):
|
||||
"""This library records the statistics information of run-time performance
|
||||
and the trace information of a user code and reports its summary.
|
||||
The PMlib is able to use for both serial and parallel environments
|
||||
including hybrid(OpenMP & MPI) code. In addition, PAPI interface allows
|
||||
us to access the information of build-in hardware counter."""
|
||||
|
||||
homepage = "https://github.com/avr-aics-riken/PMlib"
|
||||
git = "https://github.com/avr-aics-riken/PMlib.git"
|
||||
|
||||
version('master', branch='master')
|
||||
version('6.4.1', commit='0a35f5bec8c12e532e5a1bdac8c32c659fd3ee11')
|
||||
|
||||
variant('mpi', default=True, description='Activate MPI support')
|
||||
variant('example', default=False,
|
||||
description='This option turns on compiling sample codes.')
|
||||
variant('fortran', default=False,
|
||||
description='This option tells a compiler to use a Fortran.')
|
||||
variant('openmp', default=False, description='Enable OpenMP directives')
|
||||
variant('papi', default=False, description='Use PAPI library')
|
||||
variant('otf', default=False, description='Use OTF library')
|
||||
variant('precisetimer', default=True,
|
||||
description='This option provides -DUSE_PRECISE_TIMER to C++' +
|
||||
' compiler option CMAKE_CXX_FLAGS when building' +
|
||||
' the PMlib library.')
|
||||
|
||||
patch('fix_compiler_options.patch')
|
||||
|
||||
depends_on('mpi', when='+mpi')
|
||||
|
||||
def cmake_args(self):
|
||||
spec = self.spec
|
||||
args = []
|
||||
args.append('-DINSTALL_DIR={0}'.format(self.prefix))
|
||||
|
||||
if '+mpi' in spec:
|
||||
args.append('-Dwith_MPI=yes')
|
||||
else:
|
||||
args.append('-Dwith_MPI=no')
|
||||
|
||||
if '+example' in spec:
|
||||
args.append('-Dwith_example=yes')
|
||||
else:
|
||||
args.append('-Dwith_example=no')
|
||||
|
||||
if '+fortran' in spec:
|
||||
args.append('-Denable_Fortran=yes')
|
||||
else:
|
||||
args.append('-Denable_Fortran=no')
|
||||
|
||||
if '+openmp' in spec:
|
||||
args.append('-Denable_OPENMP=yes')
|
||||
else:
|
||||
args.append('-Denable_OPENMP=no')
|
||||
|
||||
if '+papi' in spec:
|
||||
args.append('-Dwith_PAPI=yes')
|
||||
else:
|
||||
args.append('-Dwith_PAPI=no')
|
||||
|
||||
if '+otf' in spec:
|
||||
args.append('-Dwith_OTF=yes')
|
||||
else:
|
||||
args.append('-Dwith_OTF=no')
|
||||
|
||||
if '+precisetimer' in spec:
|
||||
args.append('-Denable_PreciseTimer=yes')
|
||||
else:
|
||||
args.append('-Denable_PreciseTimer=no')
|
||||
|
||||
if '%gcc' in spec:
|
||||
args.append('-DCMAKE_CXX_FLAGS=-fopenmp')
|
||||
args.append('-DCMAKE_Fortran_FLAGS=-fopenmp -cpp')
|
||||
|
||||
if '%fj' in spec:
|
||||
args.append(
|
||||
'-DCMAKE_TOOLCHAIN_FILE=./cmake/Toolchain_fx100.cmake')
|
||||
|
||||
return args
|
Loading…
Reference in a new issue