def intellij_read_sdks(): sdks = dict() if mx.is_linux() or mx.is_openbsd() or mx.is_sunos() or mx.is_windows(): xmlSdks = glob.glob(os.path.expanduser("~/.IdeaIC*/config/options/jdk.table.xml")) + \ glob.glob(os.path.expanduser("~/.IntelliJIdea*/config/options/jdk.table.xml")) + \ glob.glob(os.path.expanduser("~/.config/JetBrains/IdeaIC*/options/jdk.table.xml")) + \ glob.glob(os.path.expanduser("~/.config/JetBrains/IntelliJIdea*/options/jdk.table.xml")) elif mx.is_darwin(): xmlSdks = \ glob.glob(os.path.expanduser("~/Library/Application Support/JetBrains/IdeaIC*/options/jdk.table.xml")) + \ glob.glob(os.path.expanduser("~/Library/Application Support/JetBrains/IntelliJIdea*/options/jdk.table.xml")) + \ glob.glob(os.path.expanduser("~/Library/Preferences/IdeaIC*/options/jdk.table.xml")) + \ glob.glob(os.path.expanduser("~/Library/Preferences/IntelliJIdea*/options/jdk.table.xml")) else: mx.warn("Location of IntelliJ SDK definitions on {} is unknown".format(mx.get_os())) return sdks if len(xmlSdks) == 0: mx.warn("IntelliJ SDK definitions not found") return sdks verRE = re.compile(r'^.*[/\\]\.?(IntelliJIdea|IdeaIC)([^/\\]+)[/\\].*$') def verSort(path): match = verRE.match(path) return match.group(2) + (".a" if match.group(1) == "IntellijIC" else ".b") xmlSdks.sort(key=verSort) xmlSdk = xmlSdks[-1] # Pick the most recent IntelliJ version, preferring Ultimate over Community edition. mx.log("Using SDK definitions from {}".format(xmlSdk)) versionRegexes = {} versionRegexes[intellij_java_sdk_type] = re.compile(r'^java\s+version\s+"([^"]+)"$|^version\s+(.+)$|^([\d._]+)$') versionRegexes[intellij_python_sdk_type] = re.compile(r'^Python\s+(.+)$') # Examples: # truffleruby 19.2.0-dev-2b2a7f81, like ruby 2.6.2, Interpreted JVM [x86_64-linux] # ver.2.2.4p230 ( revision 53155) p230 versionRegexes[intellij_ruby_sdk_type] = re.compile(r'^\D*(\d[^ ,]+)') for sdk in etreeParse(xmlSdk).getroot().findall("component[@name='ProjectJdkTable']/jdk[@version='2']"): name = sdk.find("name").get("value") kind = sdk.find("type").get("value") home = realpath(os.path.expanduser(sdk.find("homePath").get("value").replace('$USER_HOME$', '~'))) if home.find('$APPLICATION_HOME_DIR$') != -1: # Don't know how to convert this into a real path so ignore it continue versionRE = versionRegexes.get(kind) if not versionRE or sdk.find("version") is None: # ignore unknown kinds continue match = versionRE.match(sdk.find("version").get("value")) if match: version = match.group(1) sdks[home] = {'name': name, 'type': kind, 'version': version} mx.logv("Found SDK {} with values {}".format(home, sdks[home])) else: mx.warn(u"Couldn't understand Java version specification \"{}\" for {} in {}".format(sdk.find("version").get("value"), home, xmlSdk)) return sdks
def _lib_versioned(arg): name, version = arg.split('.') if mx.is_darwin(): return "lib" + name + "." + version + ".dylib" elif mx.is_linux() or mx.is_openbsd() or mx.is_sunos(): return "lib" + name + ".so." + version elif mx.is_windows(): return name + ".dll" else: mx.abort('unsupported os')
def cflags(self): default_cflags = [] if self._kind == self._kinds['shared_lib']: default_cflags += dict(windows=['-MD' ], ).get(mx.get_os(), ['-fPIC']) if mx.is_linux() or mx.is_darwin(): # Do not leak host paths via dwarf debuginfo def add_debug_prefix(prefix_dir): return '-fdebug-prefix-map={}={}'.format( prefix_dir, mx.basename(prefix_dir)) default_cflags += [add_debug_prefix(self.suite.vc_dir)] default_cflags += [add_debug_prefix(NinjaProject.get_jdk().home)] default_cflags += ['-gno-record-gcc-switches'] return default_cflags + super(DefaultNativeProject, self).cflags
def cflags(self): default_cflags = [] if mx.is_windows() and mx.get_jdk( tag=mx.DEFAULT_JDK_TAG).javaCompliance >= '11': default_cflags += ['-FS'] # necessary until GR-16572 is resolved if self._kind == self._kinds['shared_lib']: default_cflags += dict(windows=['-MD' ], ).get(mx.get_os(), ['-fPIC']) if mx.is_linux() or mx.is_darwin(): # Do not leak host paths via dwarf debuginfo def add_debug_prefix(prefix_dir): return '-fdebug-prefix-map={}={}'.format( prefix_dir, mx.basename(prefix_dir)) default_cflags += [add_debug_prefix(self.suite.vc_dir)] default_cflags += [add_debug_prefix(NinjaProject.get_jdk().home)] default_cflags += ['-gno-record-gcc-switches'] return default_cflags + super(DefaultNativeProject, self).cflags
suite=_suite, name='GraalVM license files', short_name='gvm', dir_name='.', license_files=['LICENSE.txt'], third_party_license_files=['THIRD_PARTY_LICENSE.txt'], dependencies=[], support_distributions=['vm:VM_GRAALVM_SUPPORT'], )) # pylint: disable=line-too-long ce_components = ['cmp', 'cov', 'gu', 'gvm', 'ins', 'ats', 'js', 'lg', 'lsp', 'nfi', 'njs', 'polynative', 'pro', 'rgx', 'sdk', 'slg', 'svm', 'svml', 'tfl', 'tflm', 'libpoly', 'poly', 'bpolyglot', 'vvm'] ce_complete_components = ['cmp', 'cov', 'gu', 'gvm', 'gwa', 'ins', 'ats', 'js', 'lg', 'llp', 'lsp', 'nfi', 'ni', 'nil', 'njs', 'polynative', 'pro', 'pyn', 'pynl', 'rby', 'rbyl', 'rgx', 'sdk', 'slg', 'svm', 'svml', 'tfl', 'tflm', 'libpoly', 'poly', 'bpolyglot', 'vvm'] ce_python_components = ['cmp', 'cov', 'gu', 'gvm', 'ins', 'ats', 'js', 'lg', 'llp', 'lsp', 'nfi', 'ni', 'nil', 'njs', 'nju', 'nic', 'polynative', 'pyn', 'pynl', 'pro', 'rgx', 'sdk', 'slg', 'svm', 'svml', 'tfl', 'tflm', 'libpoly', 'poly', 'bpolyglot', 'vvm'] ce_no_native_components = ['bgu', 'bjs', 'blli', 'bgraalvm-native-clang', 'bgraalvm-native-clang++', 'bgraalvm-native-ld', 'bgraalvm-native-binutil', 'bnative-image', 'bpolyglot', 'cmp', 'cov', 'gu', 'gvm', 'ins', 'ats', 'js', 'lsp', 'nfi', 'ni', 'nil', 'njs', 'polynative', 'pro', 'rgx', 'sdk', 'slg', 'snative-image-agent', 'svm', 'svml', 'tfl', 'tflm', 'libpoly', 'poly', 'vvm'] if mx.is_linux() and mx.get_arch() == 'amd64' and mx.get_jdk(tag='default').javaCompliance == '11': ce_components.append('mjdksl') ce_complete_components.append('mjdksl') ce_python_components.append('mjdksl') ce_no_native_components.append('mjdksl') mx_sdk_vm.register_vm_config('ce', ['ats', 'cmp', 'cov', 'gu', 'gvm', 'ins', 'js', 'lg', 'libpoly', 'lsp', 'nfi', 'poly', 'bpolyglot', 'polynative', 'pro', 'rgx', 'sdk', 'svm', 'tfl', 'tflm', 'vvm'], _suite, env_file='ce-win') mx_sdk_vm.register_vm_config('ce', ce_components, _suite) mx_sdk_vm.register_vm_config('ce', ce_complete_components, _suite, dist_name='ce-complete') mx_sdk_vm.register_vm_config('ce-python', ce_python_components, _suite) mx_sdk_vm.register_vm_config('ce-no_native', ce_no_native_components, _suite) mx_sdk_vm.register_vm_config('libgraal', ['bgu', 'cmp', 'gu', 'gvm', 'lg', 'nfi', 'poly', 'polynative', 'sdk', 'svm', 'svml', 'tfl', 'tflm', 'bpolyglot'], _suite) mx_sdk_vm.register_vm_config('toolchain-only', ['sdk', 'tfl', 'tflm', 'nfi', 'cmp', 'svm', 'llp', 'slg', 'blli'], _suite) mx_sdk_vm.register_vm_config('libgraal-bash', ['bgraalvm-native-clang', 'bgraalvm-native-clang++', 'bgraalvm-native-ld', 'bgraalvm-native-binutil', 'bgu', 'cmp', 'gu', 'gvm', 'lg', 'nfi', 'poly', 'polynative', 'sdk', 'svm', 'svml', 'tfl', 'tflm', 'bpolyglot'], _suite, env_file=False) mx_sdk_vm.register_vm_config('toolchain-only-bash', ['bgraalvm-native-clang', 'bgraalvm-native-clang++', 'bgraalvm-native-ld', 'bgraalvm-native-binutil', 'tfl', 'tflm', 'gu', 'svm', 'gvm', 'polynative', 'llp', 'nfi', 'svml', 'bgu', 'blli', 'sdk', 'slg', 'cmp'], _suite, env_file=False) # pylint: enable=line-too-long
] ce_python_components = [ 'cmp', 'cov', 'gu', 'gvm', 'ins', 'ats', 'js', 'lg', 'llp', 'lsp', 'nfi', 'ni', 'nil', 'njs', 'nju', 'nic', 'polynative', 'pyn', 'pynl', 'pro', 'rgx', 'sdk', 'slg', 'svm', 'svml', 'tfl', 'tflm', 'libpoly', 'poly', 'bpolyglot', 'vvm' ] ce_no_native_components = [ 'bgu', 'bjs', 'blli', 'bgraalvm-native-clang', 'bgraalvm-native-clang++', 'bgraalvm-native-ld', 'bgraalvm-native-binutil', 'bnative-image', 'bpolyglot', 'cmp', 'cov', 'gu', 'gvm', 'ins', 'ats', 'js', 'lsp', 'nfi', 'ni', 'nil', 'njs', 'polynative', 'pro', 'rgx', 'sdk', 'slg', 'snative-image-agent', 'spolyglot', 'svm', 'svml', 'tfl', 'tflm', 'libpoly', 'poly', 'vvm' ] if mx.is_linux() and mx.get_arch() == 'amd64' and mx.get_jdk( tag='default').javaCompliance == '11': ce_components.append('mjdksl') ce_complete_components.append('mjdksl') ce_python_components.append('mjdksl') ce_no_native_components.append('mjdksl') mx_sdk_vm.register_vm_config('ce', [ 'ats', 'cmp', 'cov', 'gu', 'gvm', 'ins', 'js', 'lg', 'libpoly', 'lsp', 'nfi', 'njs', 'poly', 'bpolyglot', 'polynative', 'pro', 'rgx', 'sdk', 'svm', 'tfl', 'tflm', 'vvm' ], _suite, env_file='ce-win') mx_sdk_vm.register_vm_config('ce', ce_components, _suite) mx_sdk_vm.register_vm_config('ce',