Merge pull request #2940 from haslinghuis/bump-arm-build

Bump Arm build to ARMv8
10.9-maintenance
J Blackman 2022-07-05 13:46:25 +10:00 committed by GitHub
commit f9ac9f80df
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 24 deletions

View File

@ -117,7 +117,7 @@ If no platform is provided, the build for the host platform is run.
**Note:** Support for cross-platform building is very limited due to the requirement for platform specific build tools. If in doubt, build on the target platform. **Note:** Support for cross-platform building is very limited due to the requirement for platform specific build tools. If in doubt, build on the target platform.
You can also use multiple platforms e.g. `yarn gulp <taskname> --osx64 --linux64`. Other platforms like `--win32`, `--linux32` and `--armv7` can be used too, but they are not officially supported, so use them at your own risk. You can also use multiple platforms e.g. `yarn gulp <taskname> --osx64 --linux64`. Other platforms like `--win32`, `--linux32` and `--armv8` can be used too, but they are not officially supported, so use them at your own risk.
## Support ## Support

View File

@ -58,7 +58,7 @@ const nwBuilderOptions = {
zip: false, zip: false,
}; };
const nwArmVersion = '0.27.6'; const nwArmVersion = 'nw60-arm64_2022-01-08';
let metadata = {}; let metadata = {};
@ -139,10 +139,10 @@ gulp.task('default', debugBuild);
// Get platform from commandline args // Get platform from commandline args
// # // #
// # gulp <task> [<platform>]+ Run only for platform(s) (with <platform> one of --linux64, --linux32, --armv7, --osx64, --win32, --win64, or --android) // # gulp <task> [<platform>]+ Run only for platform(s) (with <platform> one of --linux64, --linux32, --armv8, --osx64, --win32, --win64, or --android)
// # // #
function getInputPlatforms() { function getInputPlatforms() {
const supportedPlatforms = ['linux64', 'linux32', 'armv7', 'osx64', 'win32', 'win64', 'android']; const supportedPlatforms = ['linux64', 'linux32', 'armv8', 'osx64', 'win32', 'win64', 'android'];
const platforms = []; const platforms = [];
const regEx = /--(\w+)/; const regEx = /--(\w+)/;
@ -232,7 +232,7 @@ function getRunDebugAppCommand(arch) {
case 'linux64': case 'linux64':
case 'linux32': case 'linux32':
case 'armv7': case 'armv8':
command = path.join(DEBUG_DIR, metadata.name, arch, metadata.name); command = path.join(DEBUG_DIR, metadata.name, arch, metadata.name);
break; break;
@ -466,9 +466,9 @@ function listPostBuildTasks(folder) {
}); });
} }
if (platforms.indexOf('armv7') !== -1) { if (platforms.indexOf('armv8') !== -1) {
postBuildTasks.push(function post_build_armv7(done) { postBuildTasks.push(function post_build_armv8(done) {
return post_build('armv7', folder, done); return post_build('armv8', folder, done);
}); });
} }
@ -491,9 +491,9 @@ function post_build(arch, folder, done) {
.pipe(gulp.dest(launcherDir)); .pipe(gulp.dest(launcherDir));
} }
if (arch === 'armv7') { if (arch === 'armv8') {
console.log('Moving ARMv7 build from "linux32" to "armv7" directory...'); console.log('Moving armv8 build from "linux32" to "armv8" directory...');
fse.moveSync(path.join(folder, metadata.name, 'linux32'), path.join(folder, metadata.name, 'armv7')); fse.moveSync(path.join(folder, metadata.name, 'linux32'), path.join(folder, metadata.name, 'armv8'));
} }
return done(); return done();
@ -514,7 +514,7 @@ function injectARMCache(flavor, done) {
if (!fs.existsSync('./cache')) { if (!fs.existsSync('./cache')) {
fs.mkdirSync('./cache'); fs.mkdirSync('./cache');
} }
fs.closeSync(fs.openSync('./cache/_ARMv7_IS_CACHED', 'w')); fs.closeSync(fs.openSync('./cache/_ARMv8_IS_CACHED', 'w'));
const versionFolder = `./cache/${nwBuilderOptions.version}${flavorPostfix}`; const versionFolder = `./cache/${nwBuilderOptions.version}${flavorPostfix}`;
if (!fs.existsSync(versionFolder)) { if (!fs.existsSync(versionFolder)) {
fs.mkdirSync(versionFolder); fs.mkdirSync(versionFolder);
@ -524,12 +524,12 @@ function injectARMCache(flavor, done) {
fs.mkdirSync(linux32Folder); fs.mkdirSync(linux32Folder);
} }
const downloadedArchivePath = `${versionFolder}/nwjs${flavorPostfix}-v${nwArmVersion}-linux-arm.tar.gz`; const downloadedArchivePath = `${versionFolder}/nwjs${flavorPostfix}-v${nwArmVersion}-linux-arm.tar.gz`;
const downloadUrl = `https://github.com/LeonardLaszlo/nw.js-armv7-binaries/releases/download/v${nwArmVersion}/nwjs${flavorDownloadPostfix}-v${nwArmVersion}-linux-arm.tar.gz`; const downloadUrl = `https://github.com/LeonardLaszlo/nw.js-armv7-binaries/releases/download/${nwArmVersion}/${nwArmVersion}.tar.gz`;
if (fs.existsSync(downloadedArchivePath)) { if (fs.existsSync(downloadedArchivePath)) {
console.log('Prebuilt ARMv7 binaries found in /tmp'); console.log('Prebuilt ARMv8 binaries found in /tmp');
downloadDone(flavorDownloadPostfix, downloadedArchivePath, versionFolder); downloadDone(flavorDownloadPostfix, downloadedArchivePath, versionFolder);
} else { } else {
console.log(`Downloading prebuilt ARMv7 binaries from "${downloadUrl}"...`); console.log(`Downloading prebuilt ARMv8 binaries from "${downloadUrl}"...`);
process.stdout.write('> Starting download...\r'); process.stdout.write('> Starting download...\r');
const armBuildBinary = fs.createWriteStream(downloadedArchivePath); const armBuildBinary = fs.createWriteStream(downloadedArchivePath);
https.get(downloadUrl, function(res) { https.get(downloadUrl, function(res) {
@ -551,7 +551,7 @@ function injectARMCache(flavor, done) {
}); });
function downloadDone(flavorDownload, downloadedArchivePath, versionFolder) { function downloadDone(flavorDownload, downloadedArchivePath, versionFolder) {
console.log('Injecting prebuilt ARMv7 binaries into Linux32 cache...'); console.log('Injecting prebuilt ARMv8 binaries into Linux32 cache...');
targz.decompress({ targz.decompress({
src: downloadedArchivePath, src: downloadedArchivePath,
dest: versionFolder, dest: versionFolder,
@ -583,16 +583,16 @@ function buildNWAppsWrapper(platforms, flavor, dir, done) {
buildNWApps(platforms, flavor, dir, done); buildNWApps(platforms, flavor, dir, done);
} }
if (platforms.indexOf('armv7') !== -1) { if (platforms.indexOf('armv8') !== -1) {
if (platforms.indexOf('linux32') !== -1) { if (platforms.indexOf('linux32') !== -1) {
console.log('Cannot build ARMv7 and Linux32 versions at the same time!'); console.log('Cannot build ARMv8 and Linux32 versions at the same time!');
clean_debug(); clean_debug();
process.exit(1); process.exit(1);
} }
removeItem(platforms, 'armv7'); removeItem(platforms, 'armv8');
platforms.push('linux32'); platforms.push('linux32');
if (!fs.existsSync('./cache/_ARMv7_IS_CACHED', 'w')) { if (!fs.existsSync('./cache/_ARMv8_IS_CACHED', 'w')) {
console.log('Purging cache because it needs to be overwritten...'); console.log('Purging cache because it needs to be overwritten...');
clean_cache().then(() => { clean_cache().then(() => {
injectARMCache(flavor, buildNWAppsCallback); injectARMCache(flavor, buildNWAppsCallback);
@ -601,7 +601,7 @@ function buildNWAppsWrapper(platforms, flavor, dir, done) {
buildNWAppsCallback(); buildNWAppsCallback();
} }
} else { } else {
if (platforms.indexOf('linux32') !== -1 && fs.existsSync('./cache/_ARMv7_IS_CACHED')) { if (platforms.indexOf('linux32') !== -1 && fs.existsSync('./cache/_ARMv8_IS_CACHED')) {
console.log('Purging cache because it was previously overwritten...'); console.log('Purging cache because it was previously overwritten...');
clean_cache().then(buildNWAppsCallback); clean_cache().then(buildNWAppsCallback);
} else { } else {
@ -886,9 +886,9 @@ function listReleaseTasks(isReleaseBuild, appDirectory) {
}); });
} }
if (platforms.indexOf('armv7') !== -1) { if (platforms.indexOf('armv8') !== -1) {
releaseTasks.push(function release_armv7_zip() { releaseTasks.push(function release_armv8_zip() {
return release_zip('armv7', appDirectory); return release_zip('armv8', appDirectory);
}); });
} }