# 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 ScorecCore(CMakePackage):
    """The SCOREC Core is a set of C/C++ libraries for unstructured mesh
    simulations on supercomputers.
    """

    homepage = 'https://www.scorec.rpi.edu/'
    git      = 'https://github.com/SCOREC/core.git'

    version('develop')

    depends_on('mpi')
    depends_on('zoltan')
    depends_on('cmake@3.0:', type='build')

    @property
    def std_cmake_args(self):
        # Default cmake RPATH options causes build failure on bg-q
        if self.spec.satisfies('platform=bgq'):
            return ['-DCMAKE_INSTALL_PREFIX:PATH={0}'.format(self.prefix)]
        else:
            return self._std_args(self)

    def cmake_args(self):
        options = []
        options.append('-DCMAKE_C_COMPILER=%s' % self.spec['mpi'].mpicc)
        options.append('-DCMAKE_CXX_COMPILER=%s' % self.spec['mpi'].mpicxx)
        options.append('-DENABLE_ZOLTAN=ON')

        if self.compiler.name == 'xl':
            options.append('-DSCOREC_EXTRA_CXX_FLAGS=%s' % '-qminimaltoc')

        return options
