name = 'intel-compilers'
version = '2024.2.0'

homepage = 'https://software.intel.com/content/www/us/en/develop/tools/oneapi/hpc-toolkit.html'
description = "Intel C, C++ & Fortran compilers (classic and oneAPI)"

toolchain = SYSTEM

# see https://software.intel.com/content/www/us/en/develop/articles/oneapi-standalone-components.html
sources = [
    {
        'source_urls': [
            'https://registrationcenter-download.intel.com/akdlm/IRC_NAS/6780ac84-6256-4b59-a647-330eb65f32b6/'
        ],
        'filename': 'l_dpcpp-cpp-compiler_p_%(version)s.495_offline.sh',
    },
    {
        'source_urls': [
            'https://registrationcenter-download.intel.com/akdlm/IRC_NAS/801143de-6c01-4181-9911-57e00fe40181/'
        ],
        'filename': 'l_fortran-compiler_p_%(version)s.426_offline.sh',
    },
]
checksums = [
    {'l_dpcpp-cpp-compiler_p_2024.2.0.495_offline.sh':
     '9463aa979314d2acc51472d414ffcee032e9869ca85ac6ff4c71d39500e5173d'},
    {'l_fortran-compiler_p_2024.2.0.426_offline.sh':
     'fd19a302662b2f86f76fc115ef53a69f16488080278dba4c573cc705f3a52ffa'},
]

local_gccver = '13.3.0'
dependencies = [
    ('GCCcore', local_gccver),
    ('binutils', '2.42', '', ('GCCcore', local_gccver)),
]


accept_eula = True

import os
if os.environ.get("CLUSTERNAME") in ["KAROLINA"]:
        modextravars = {
                "DEBUGFLAGS": "-O0 -g",
                "CC": "icc",
                "CXX": "icpc",
                "F77": "ifort",
                "F90": "ifort",
                "FC": "ifort",
                "OPTFLAGS": "-O3 -fPIC -march=core-avx2",
                "CXXFLAGS": "-O3 -fPIC -march=core-avx2",
                "CFLAGS": "-O3 -fPIC -march=core-avx2",
                "FCFLAGS": "-O3 -fPIC -march=core-avx2",
                "FFLAGS": "-O3 -fPIC -march=core-avx2",
                "EASYBUILD_OPTARCH": "march=core-avx2",
        }
elif os.environ.get("CLUSTERNAME") in ["BARBORA"]:
        modextravars = {
                "CC": "icc",
                "CXX": "icpc",
                "F77": "ifort",
                "F90": "ifort",
                "FC": "ifort",
                "OPTFLAGS": "-O3 -xHost -ip",
        }
elif os.environ.get("CLUSTERNAME") in ["CS"]:
        if os.environ.get("MFLAGS") in ["avx2"]:
                modextravars = {
                        "DEBUGFLAGS": "-O0 -g",
                        "CC": "icc",
                        "CXX": "icpc",
                        "F77": "ifort",
                        "F90": "ifort",
                        "FC": "ifort",
                        "OPTFLAGS": "-O3 -fPIC -march=core-avx2",
                        "CXXFLAGS": "-O3 -fPIC -march=core-avx2",
                        "CFLAGS": "-O3 -fPIC -march=core-avx2",
                        "FCFLAGS": "-O3 -fPIC -march=core-avx2",
                        "FFLAGS": "-O3 -fPIC -march=core-avx2",
                        "EASYBUILD_OPTARCH": "march=core-avx2",
        }
        elif os.environ.get("MFLAGS") in ["avx512"]:
                modextravars = {
                        "DEBUGFLAGS": "-O0 -g",
                        "CC": "icc",
                        "CXX": "icpc",
                        "F77": "ifort",
                        "F90": "ifort",
                        "FC": "ifort",
                        "OPTFLAGS": "-O3 -fPIC -march=core-avx512",
                        "CXXFLAGS": "-O3 -fPIC -march=core-avx512",
                        "CFLAGS": "-O3 -fPIC -march=core-avx512",
                        "FCFLAGS": "-O3 -fPIC -march=core-avx512",
                        "FFLAGS": "-O3 -fPIC -march=core-avx512",
                        "EASYBUILD_OPTARCH": "march=core-avx512",
                }

moduleclass = 'compiler'
