Skip to content
Snippets Groups Projects
Unverified Commit 00e9e1b3 authored by Adam J. Stewart's avatar Adam J. Stewart Committed by GitHub
Browse files

Java: add spack external find support (#18006)

parent 1ed70d0e
No related branches found
No related tags found
No related merge requests found
......@@ -3,11 +3,11 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.util.prefix import Prefix
from spack import *
import os
import re
import llnl.util.tty as tty
import os
from spack.util.prefix import Prefix
class Jdk(Package):
......@@ -79,6 +79,19 @@ class Jdk(Package):
# can symlink all *.jar files to `prefix.lib.ext`
extendable = True
executables = ['^java$']
@classmethod
def determine_version(cls, exe):
output = Executable(exe)('-version', output=str, error=str)
# Make sure this is actually Oracle JDK, not OpenJDK
if 'openjdk' in output:
return None
match = re.search(r'\(build (\S+)\)', output)
return match.group(1).replace('+', '_') if match else None
@property
def home(self):
"""Most of the time, ``JAVA_HOME`` is simply ``spec['java'].prefix``.
......
......@@ -3,9 +3,9 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
import os
import platform
import re
# If you need to add a new version, please be aware that:
......@@ -60,6 +60,19 @@ class Openjdk(Package):
# can symlink all *.jar files to `prefix.lib.ext`
extendable = True
executables = ['^java$']
@classmethod
def determine_version(cls, exe):
output = Executable(exe)('-version', output=str, error=str)
# Make sure this is actually OpenJDK, not Oracle JDK
if 'openjdk' not in output:
return None
match = re.search(r'\(build (\S+)\)', output)
return match.group(1).replace('+', '_') if match else None
@property
def home(self):
"""Most of the time, ``JAVA_HOME`` is simply ``spec['java'].prefix``.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment