Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Aug 7, 2021. It is now read-only.

Commit b28236a

Browse files
author
Dimitar Tachev
authored
Merge pull request #1077 from NativeScript/tachev/macos-snapshot-docker
feat: snapshot in Docker on macOS with Android runtime 6.3.0 or higher
2 parents 66f97ab + 9e99683 commit b28236a

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

‎snapshot/android/project-snapshot-generator.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,8 @@ ProjectSnapshotGenerator.prototype.generate = function (generationOptions) {
179179
androidNdkPath: generationOptions.androidNdkPath,
180180
mksnapshotParams: mksnapshotParams,
181181
snapshotInDocker: generationOptions.snapshotInDocker,
182-
recommendedAndroidNdkRevision
182+
recommendedAndroidNdkRevision,
183+
runtimeVersion
183184
};
184185

185186
return generator.generate(options).then(() => {

‎snapshot/android/snapshot-generator.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ const child_process = require("child_process");
44
const { convertToUnixPath, warn } = require("../../lib/utils");
55
const { isWindows } = require("./utils");
66
const PropertiesReader = require('properties-reader');
7+
const semver = require("semver");
78
const shelljs = require("shelljs");
89

910
const { createDirectory, downloadFile, getHostOS, getHostOSArch, CONSTANTS, has32BitArch, isMacOSCatalinaOrHigher, isSubPath } = require("./utils");
@@ -37,12 +38,16 @@ module.exports = SnapshotGenerator;
3738

3839
SnapshotGenerator.SNAPSHOT_PACKAGE_NANE = "nativescript-android-snapshot";
3940

40-
SnapshotGenerator.prototype.shouldSnapshotInDocker = function (hostOS, targetArchs) {
41+
SnapshotGenerator.prototype.shouldSnapshotInDocker = function (hostOS, targetArchs,currentRuntimeVersion) {
4142
let shouldSnapshotInDocker = false;
43+
const minRuntimeWithoutMacOSSnapshotTools = "6.3.0";
4244
const generateInDockerMessage = "The snapshots will be generated in a docker container.";
43-
if (hostOS == CONSTANTS.WIN_OS_NAME) {
45+
if (hostOS === CONSTANTS.WIN_OS_NAME) {
4446
console.log(`The V8 snapshot tools are not supported on Windows. ${generateInDockerMessage}`);
4547
shouldSnapshotInDocker = true;
48+
} else if (hostOS === CONSTANTS.MAC_OS_NAME && semver.gte(currentRuntimeVersion, minRuntimeWithoutMacOSSnapshotTools)) {
49+
console.log(`Starting from Android Runtime 6.3.0, the Snapshot tools are no longer supported on macOS. ${generateInDockerMessage}`);
50+
shouldSnapshotInDocker = true;
4651
} else if (isMacOSCatalinaOrHigher() && has32BitArch(targetArchs)) {
4752
console.log(`Starting from macOS Catalina, the 32-bit processes are no longer supported. ${generateInDockerMessage}`);
4853
shouldSnapshotInDocker = true;
@@ -296,7 +301,7 @@ SnapshotGenerator.prototype.generate = function (options) {
296301

297302
this.preprocessInputFiles(options.inputFiles, preprocessedInputFile);
298303
const hostOS = getHostOS();
299-
const snapshotInDocker = options.snapshotInDocker || this.shouldSnapshotInDocker(hostOS, options.targetArchs);
304+
const snapshotInDocker = options.snapshotInDocker || this.shouldSnapshotInDocker(hostOS, options.targetArchs,options.runtimeVersion);
300305

301306
// generates the actual .blob and .c files
302307
return this.generateSnapshots(

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /