Skip to content

Commit

Permalink
v0.1.23
Browse files Browse the repository at this point in the history
  • Loading branch information
abbr committed Aug 24, 2021
1 parent 668127f commit f96f413
Show file tree
Hide file tree
Showing 4 changed files with 113 additions and 109 deletions.
16 changes: 9 additions & 7 deletions app.code-workspace
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
{
"folders": [
{
"path": "."
}
],
"settings": {}
}
"folders": [
{
"path": "."
}
],
"settings": {
"cSpell.words": ["loongarch"]
}
}
200 changes: 101 additions & 99 deletions build.js
Original file line number Diff line number Diff line change
@@ -1,122 +1,124 @@
#!/usr/bin/env node

var cp = require('child_process'),
fs = require('fs'),
path = require('path');
fs = require('fs'),
path = require('path');

// Parse args
var force = false,
debug = false;
var
arch = process.arch,
platform = process.platform,
nodeV = /[0-9]+\.[0-9]+/.exec(process.versions.node)[0],
nodeVM = /[0-9]+/.exec(process.versions.node)[0];
var args = process.argv.slice(2).filter(function(arg) {
if (arg === '-f') {
force = true;
return false;
}
else if (arg.substring(0, 13) === '--target_arch') {
arch = arg.substring(14);
}
else if (arg === '--debug') {
debug = true;
}
return true;
debug = false;
var arch = process.arch,
platform = process.platform,
nodeV = /[0-9]+\.[0-9]+/.exec(process.versions.node)[0],
nodeVM = /[0-9]+/.exec(process.versions.node)[0];
var args = process.argv.slice(2).filter(function (arg) {
if (arg === '-f') {
force = true;
return false;
} else if (arg.substring(0, 13) === '--target_arch') {
arch = arg.substring(14);
} else if (arg === '--debug') {
debug = true;
}
return true;
});
if (!{
ia32: true,
x64: true,
arm: true,
arm64: true,
ppc64: true,
ppc: true,
s390x: true,
mips64el: true,
loongarch64: true
}.hasOwnProperty(arch)) {
console.error('Unsupported (?) architecture: `' + arch + '`');
process.exit(1);
if (
!{
ia32: true,
x64: true,
arm: true,
arm64: true,
ppc64: true,
ppc: true,
s390x: true,
mips64el: true,
loongarch64: true,
}.hasOwnProperty(arch)
) {
console.error('Unsupported (?) architecture: `' + arch + '`');
process.exit(1);
}

// Test for pre-built library
var modPath = platform + '-' + arch + '-node-' + nodeV;
if (!force) {
try {
try{
fs.statSync(path.join(__dirname, 'bin', modPath, 'deasync.node'));
}
catch(ex){
modPath = platform + '-' + arch + '-node-' + nodeVM;
fs.statSync(path.join(__dirname, 'bin', modPath, 'deasync.node'));
}
console.log('`' + modPath + '` exists; testing');
cp.execFile(process.execPath, ['quick-test.js'], function(err, stdout, stderr) {
if (err || stderr) {
console.log('Problem with the binary; manual build incoming');
console.log('stdout=' + stdout);
console.log('err=' + err);
build();
}
else {
console.log('Binary is fine; exiting');
}
});
}
catch (ex) {
// Stat failed
build();
}
}
else {
build();
try {
try {
fs.statSync(path.join(__dirname, 'bin', modPath, 'deasync.node'));
} catch (ex) {
modPath = platform + '-' + arch + '-node-' + nodeVM;
fs.statSync(path.join(__dirname, 'bin', modPath, 'deasync.node'));
}
console.log('`' + modPath + '` exists; testing');
cp.execFile(
process.execPath,
['quick-test.js'],
function (err, stdout, stderr) {
if (err || stderr) {
console.log('Problem with the binary; manual build incoming');
console.log('stdout=' + stdout);
console.log('err=' + err);
build();
} else {
console.log('Binary is fine; exiting');
}
}
);
} catch (ex) {
// Stat failed
build();
}
} else {
build();
}

// Build it
function build() {
cp.spawn(
process.platform === 'win32' ? 'node-gyp.cmd' : 'node-gyp', ['rebuild'].concat(args), {
stdio: 'inherit'
})
.on('exit', function(err) {
if (err) {
if (err === 127) {
console.error(
'node-gyp not found! Please upgrade your install of npm! You need at least 1.1.5 (I think) ' +
'and preferably 1.1.30.'
);
}
else {
console.error('Build failed');
}
return process.exit(err);
}
afterBuild();
});
cp.spawn(
process.platform === 'win32' ? 'node-gyp.cmd' : 'node-gyp',
['rebuild'].concat(args),
{
stdio: 'inherit',
}
).on('exit', function (err) {
if (err) {
if (err === 127) {
console.error(
'node-gyp not found! Please upgrade your install of npm! You need at least 1.1.5 (I think) ' +
'and preferably 1.1.30.'
);
} else {
console.error('Build failed');
}
return process.exit(err);
}
afterBuild();
});
}

// Move it to expected location
function afterBuild() {
var targetPath = path.join(__dirname, 'build', debug ? 'Debug' : 'Release', 'deasync.node');
var installPath = path.join(__dirname, 'bin', modPath, 'deasync.node');
var targetPath = path.join(
__dirname,
'build',
debug ? 'Debug' : 'Release',
'deasync.node'
);
var installPath = path.join(__dirname, 'bin', modPath, 'deasync.node');

try {
fs.mkdirSync(path.join(__dirname, 'bin'));
}
catch (ex) {}
try {
fs.mkdirSync(path.join(__dirname, 'bin', modPath));
}
catch (ex) {}
try {
fs.mkdirSync(path.join(__dirname, 'bin'));
} catch (ex) {}
try {
fs.mkdirSync(path.join(__dirname, 'bin', modPath));
} catch (ex) {}

try {
fs.statSync(targetPath);
}
catch (ex) {
console.error('Build succeeded but target not found');
process.exit(1);
}
fs.renameSync(targetPath, installPath);
console.log('Installed in `' + installPath + '`');
try {
fs.statSync(targetPath);
} catch (ex) {
console.error('Build succeeded but target not found');
process.exit(1);
}
fs.renameSync(targetPath, installPath);
console.log('Installed in `' + installPath + '`');
}
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "deasync",
"version": "0.1.22",
"version": "0.1.23",
"description": "Turns async function into sync via JavaScript wrapper of Node event loop",
"main": "index.js",
"author": "Vladimir Kurchatkin <vladimir.kurchatkin@gmail.com>",
Expand Down

0 comments on commit f96f413

Please sign in to comment.