From b7272e33cdbbde11cda046f369083325e48221bb Mon Sep 17 00:00:00 2001 From: Stefano Formicola Date: Fri, 17 Feb 2023 20:28:19 +0100 Subject: [PATCH] feat(react-native): run-android support --active-arch-only flag (#15050) Co-authored-by: Stefano Formicola --- .../packages/react-native/executors/run-android.json | 5 +++++ .../src/executors/run-android/run-android.impl.ts | 4 ++++ packages/react-native/src/executors/run-android/schema.d.ts | 1 + packages/react-native/src/executors/run-android/schema.json | 5 +++++ 4 files changed, 15 insertions(+) diff --git a/docs/generated/packages/react-native/executors/run-android.json b/docs/generated/packages/react-native/executors/run-android.json index ff6da260a9..3e94190db3 100644 --- a/docs/generated/packages/react-native/executors/run-android.json +++ b/docs/generated/packages/react-native/executors/run-android.json @@ -78,6 +78,11 @@ "type": "boolean", "description": "Run packager server in interactive mode.", "default": true + }, + "activeArchOnly": { + "type": "boolean", + "description": "Builds only for the active architecture (e.g. x86_64, arm64-v8a).", + "default": false } }, "examplesFile": "`project.json`:\n\n```json\n{\n \"name\": \"mobile\",\n //...\n \"targets\": {\n //...\n \"run-android\": {\n \"executor\": \"@nrwl/react-native:run-android\",\n \"options\": {}\n }\n }\n}\n```\n\n```bash\nnx run mobile:run-android\n```\n\n## Examples\n\n{% tabs %}\n{% tab label=\"Run on a specific device/simulator\" %}\nTo see all the avaiable emulators, run command:\n\n```bash\nemulator -list-avds\n```\n\nThe `deviceId` option allows you to launch your android app in a specific device/simulator:\n\n```json\n \"run-android\": {\n \"executor\": \"@nrwl/react-native:run-android\",\n \"options\": {\n \"deviceId\": \"Pixel_5_API_30\"\n }\n }\n```\n\n{% /tab %}\n{% tab label=\"Run the debug/release app\" %}\nThe `variant` option allows to specify the build variant, such as `debug` or `release`.\n\n```json\n \"run-android\": {\n \"executor\": \"@nrwl/react-native:run-android\",\n \"options\": {\n \"variant\": \"release\"\n }\n }\n```\n\n{% /tab %}\n{% /tabs %}\n\n---\n" diff --git a/packages/react-native/src/executors/run-android/run-android.impl.ts b/packages/react-native/src/executors/run-android/run-android.impl.ts index d1dfcf88df..682de05d6b 100644 --- a/packages/react-native/src/executors/run-android/run-android.impl.ts +++ b/packages/react-native/src/executors/run-android/run-android.impl.ts @@ -115,6 +115,10 @@ function createRunAndroidOptions(options) { if (!v) { acc.push(`--no-jetifier`); } + } else if (k === 'activeArchOnly') { + if (v) { + acc.push(`--active-arch-only`); + } } else if (v && !nxOrStartOptions.includes(k)) { acc.push(`--${k}`, v); } diff --git a/packages/react-native/src/executors/run-android/schema.d.ts b/packages/react-native/src/executors/run-android/schema.d.ts index 215d3487e2..95213c0f8a 100644 --- a/packages/react-native/src/executors/run-android/schema.d.ts +++ b/packages/react-native/src/executors/run-android/schema.d.ts @@ -13,4 +13,5 @@ export interface ReactNativeRunAndroidOptions { packager: boolean; // default is true resetCache: boolean; // default is false interactive: boolean; // default is true + activeArchOnly?: boolean; } diff --git a/packages/react-native/src/executors/run-android/schema.json b/packages/react-native/src/executors/run-android/schema.json index d1273acb74..2b5111bf09 100644 --- a/packages/react-native/src/executors/run-android/schema.json +++ b/packages/react-native/src/executors/run-android/schema.json @@ -75,6 +75,11 @@ "type": "boolean", "description": "Run packager server in interactive mode.", "default": true + }, + "activeArchOnly": { + "type": "boolean", + "description": "Builds only for the active architecture (e.g. x86_64, arm64-v8a).", + "default": false } }, "examplesFile": "../../../docs/run-android-examples.md"