Files
js-scripts/scripts/konanc.js
2025-06-20 22:13:06 +08:00

72 lines
2.6 KiB
JavaScript

#! /usr/bin/env runjs
var OSUtil = Packages.me.hatter.tools.commons.os.OSUtil;
//var argsjs = require('component-args.js');
var osjs = require('component-os.js');
var packagejs = require('component-package.js');
var javahomejs = require('component-javahome.js');
var filesystemjs = require('component-filesystem.js');
var KONANC_PACKAGE_INFO = {
'macOS': {
'package': 'https://publicbucket-1251781687.coscd.myqcloud.com/kotlin-native-macos-0.5.tar.gz',
//'package': 'https://play.hatter.me/getdoc/1745_9CAC8D9CD48CE2362D7910AA09627555/kotlin-native-macos-0.5.tar.gz',
'sha256': '73dcaebb924b8597e71561e2b9027e64355fd08a0c3b28e055e550550f03cad2',
'basePath': '~/.jssp/builder/kotlin-native-macos-0.5',
'subPath': 'kotlin-native-macos-0.5',
'bin': 'bin/konanc'
},
'Linux': {
'package': 'https://publicbucket-1251781687.coscd.myqcloud.com/kotlin-native-linux-0.5.tar.gz',
//'package': 'https://play.hatter.me/getdoc/1744_BA86D28143757D90507E80BD823392AB/kotlin-native-linux-0.5.tar.gz',
'sha256': '6c5630c3ba6104d263e3947f12bf975efaf54fd95d74db4bd2df1d211cead9e4',
'basePath': '~/.jssp/builder/kotlin-native-linux-0.5',
'subPath': 'kotlin-native-linux-0.5',
'bin': 'bin/konanc'
}
};
var main = () => {
if (osjs.getOS().arch != 'x86_64') {
xprintln('[ERROR] Only suports x86_64!');
return;
}
var javaHome = javahomejs.getJavaHome('1.8');
if (javaHome == null) { javaHome = javahomejs.getJavaHome('9.0'); }
if (javaHome == null) {
xprintln('[WARN] Cannot find java, use system Java.');
}
var packageInfo;
if (OSUtil.isMacOS()) {
packageInfo = KONANC_PACKAGE_INFO.macOS;
} else if (OSUtil.isLinux()) {
packageInfo = KONANC_PACKAGE_INFO.Linux;
} else {
xprintln('[ERROR] Only supports macOS and Linux.');
return;
}
xprintln('[INFO] Get konanc local package info.');
var konancLocalPackage = packagejs.getLocalPackage(packageInfo, true);
var commandArgs = [];
var buildCommands = [];
buildCommands.push(konancLocalPackage.binFile);
$ARR($ARGS).forEach((a) => { buildCommands.push(a); commandArgs.push(a); });
xprintln('[INFO] JAVA_HOME = ' + (javaHome || crender('[GREEN]@system')));
xprintln('[INFO] KONANC_HOME = ' + konancLocalPackage.packageHome);
xprintln('[INFO] ARGUMENTS = ' + $ARR(commandArgs).toJavaList());
var sh = $$.shell(true);
if (javaHome != null) {
sh.env('JAVA_HOME', javaHome).env('PATH', javaHome + '/bin:' + $$.env('PATH'));
}
sh.commands(buildCommands).run();
};
main();