72 lines
2.6 KiB
JavaScript
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();
|