AOCC: add v4.0.0 (#33833)

This commit is contained in:
AMD Toolchain Support 2022-12-29 09:30:35 +00:00 committed by GitHub
parent 36d87a4783
commit 3a4b96e61c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -3,36 +3,41 @@
# #
# SPDX-License-Identifier: (Apache-2.0 OR MIT) # SPDX-License-Identifier: (Apache-2.0 OR MIT)
from llnl.util import tty
from spack.package import * from spack.package import *
class Aocc(Package): class Aocc(Package):
""" """
The AOCC compiler system is a high performance, The AOCC compiler system is a high performance, production quality code
production quality code generation tool. generation tool. The AOCC environment provides various options to developers
The AOCC environment provides various options to developers when when building and optimizing C, C++, and Fortran applications targeting 32-bit
building and optimizing C, C++, and Fortran applications and 64-bit Linux platforms. The AOCC compiler system offers a high level of
targeting 32-bit and 64-bit Linux platforms. advanced optimizations, multi-threading and processor support that includes
The AOCC compiler system offers a high level of advanced optimizations, global optimization, vectorization, inter-procedural analyses, loop
multi-threading and processor support that includes global optimization, transformations, and code generation. AMD also provides highly optimized
vectorization, inter-procedural analyses, loop transformations, libraries, which extract the optimal performance from each x86 processor core
and code generation. when utilized. The AOCC Compiler Suite simplifies and accelerates development
AMD also provides highly optimized libraries, and tuning for x86 applications.
which extract the optimal performance from
each x86 processor core when utilized. Installation requires acceptance of the EULA by setting the +license-agreed variant.
The AOCC Compiler Suite simplifies and accelerates development and https://developer.amd.com/wordpress/media/files/AOCC_EULA.pdf
tuning for x86 applications.
Please install only if you agree to terms and conditions depicted
under : https://developer.amd.com/wordpress/media/files/AOCC_EULA.pdf
Example for installation: \'spack install aocc +license-agreed\' Example for installation: \'spack install aocc +license-agreed\'
""" """
_name = "aocc"
family = "compiler" family = "compiler"
homepage = "https://developer.amd.com/amd-aocc/" homepage = "https://developer.amd.com/amd-aocc/"
maintainers = ["amd-toolchain-support"] maintainers = ["amd-toolchain-support"]
version(
ver="4.0.0",
sha256="2729ec524cbc927618e479994330eeb72df5947e90cfcc49434009eee29bf7d4",
url="https://developer.amd.com/wordpress/media/files/aocc-compiler-4.0.0.tar",
)
version( version(
ver="3.2.0", ver="3.2.0",
sha256="8493525b3df77f48ee16f3395a68ad4c42e18233a44b4d9282b25dbb95b113ec", sha256="8493525b3df77f48ee16f3395a68ad4c42e18233a44b4d9282b25dbb95b113ec",
@ -60,11 +65,7 @@ class Aocc(Package):
) )
# Licensing # Licensing
license_required = True
license_comment = "#"
license_files = ["AOCC_EULA.pdf"]
license_url = "https://developer.amd.com/wordpress/media/files/AOCC_EULA.pdf" license_url = "https://developer.amd.com/wordpress/media/files/AOCC_EULA.pdf"
install_example = "spack install aocc +license-agreed"
depends_on("libxml2") depends_on("libxml2")
depends_on("zlib") depends_on("zlib")
@ -75,22 +76,32 @@ class Aocc(Package):
variant( variant(
"license-agreed", "license-agreed",
default=False, default=False,
description="Agree to terms and conditions depicted under : {0}".format(license_url), sticky=True,
description="Confirm acceptance of the EULA ({0})".format(license_url),
)
conflicts(
"~license-agreed",
msg=(
"Installation of {0} requires acceptance of the EULA (found at {1}). Set the "
"+license-agreed variant to confirm acceptance of the EULA"
).format(_name, license_url),
) )
@run_before("install") @run_before("install")
def abort_without_license_agreed(self): def license_reminder(self):
license_url = "https://developer.amd.com/wordpress/media/files/AOCC_EULA.pdf" if "+license-agreed" in self.spec:
install_example = "spack install aocc +license-agreed" tty.msg(
if not self.spec.variants["license-agreed"].value: "Reminder: by setting +license-agreed you are confirming you agree to the terms "
raise InstallError( "of the {0} EULA (found at {1})".format(self.spec.name, self.license_url)
"\n\n\nNOTE:\nUse +license-agreed "
+ "during installation "
+ "to accept terms and conditions "
+ "depicted under following link \n"
+ " {0}\n".format(license_url)
+ "Example: '{0}' \n".format(install_example)
) )
else:
# Conflict means we should never get here...
msg = (
"Installation of {0} requires acceptance of the EULA (found at {1}). Set the "
"+license-agreed variant to confirm acceptance of the EULA"
).format(self.spec.name, self.license_url)
raise InstallError(msg)
def install(self, spec, prefix): def install(self, spec, prefix):
print("Installing AOCC Compiler ... ") print("Installing AOCC Compiler ... ")