From b2f3c08a07cecee6a52d20512438058400300b6c Mon Sep 17 00:00:00 2001 From: Marc Rousavy Date: Thu, 8 Jul 2021 10:52:14 +0200 Subject: [PATCH] fix: Distribute Android code as source (#234) * Build Android as source * more reliably find `enableHermes` --- .github/workflows/build-android.yml | 40 ------------------- .gitignore | 3 -- android-npm/build.gradle | 18 --------- android-npm/src/AndroidManifest.xml | 3 -- .../mrousavy/camera/CameraProxyPackage.java | 8 ---- android/build.gradle | 12 +++--- package.json | 6 +-- scripts/build-android-npm-package.sh | 26 ------------ 8 files changed, 8 insertions(+), 108 deletions(-) delete mode 100644 android-npm/build.gradle delete mode 100644 android-npm/src/AndroidManifest.xml delete mode 100644 android-npm/src/main/java/com/mrousavy/camera/CameraProxyPackage.java delete mode 100755 scripts/build-android-npm-package.sh diff --git a/.github/workflows/build-android.yml b/.github/workflows/build-android.yml index adce06f..9c95baf 100644 --- a/.github/workflows/build-android.yml +++ b/.github/workflows/build-android.yml @@ -10,8 +10,6 @@ on: - 'example/android/**' - 'yarn.lock' - 'example/yarn.lock' - - 'scripts/build-android-npm-package.sh' - - 'android-npm/**' pull_request: paths: - '.github/workflows/build-android.yml' @@ -19,46 +17,8 @@ on: - 'example/android/**' - 'yarn.lock' - 'example/yarn.lock' - - 'scripts/build-android-npm-package.sh' - - 'android-npm/**' jobs: - build_lib: - name: Build Android Library (.aar) - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - - name: Setup JDK 1.8 - uses: actions/setup-java@v1 - with: - java-version: 1.8 - - - name: Get yarn cache directory path - id: yarn-cache-dir-path - run: echo "::set-output name=dir::$(yarn cache dir)" - - name: Restore node_modules from cache - uses: actions/cache@v2 - id: yarn-cache - with: - path: ${{ steps.yarn-cache-dir-path.outputs.dir }} - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- - - name: Install node_modules for example/ - run: yarn install --frozen-lockfile - - - name: Restore Gradle cache - uses: actions/cache@v2 - with: - path: | - ~/.gradle/caches - ~/.gradle/wrapper - key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }} - restore-keys: | - ${{ runner.os }}-gradle- - - name: Build .aar - run: scripts/build-android-npm-package.sh build_example: name: Build Android Example App runs-on: ubuntu-latest diff --git a/.gitignore b/.gitignore index 3a3b6c3..778482b 100644 --- a/.gitignore +++ b/.gitignore @@ -68,6 +68,3 @@ docs/typedoc-sidebar.js # External native build folder generated in Android Studio 2.2 and later .externalNativeBuild .cxx/ - -# npm package aars -android-npm/*.aar diff --git a/android-npm/build.gradle b/android-npm/build.gradle deleted file mode 100644 index b301019..0000000 --- a/android-npm/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -import groovy.json.JsonSlurper; -configurations.maybeCreate("default") - -def inputFile = new File(projectDir, '../../react-native/package.json') -def json = new JsonSlurper().parseText(inputFile.text) -def reactNativeVersion = json.version as String -def (major, minor, patch) = reactNativeVersion.tokenize('.') - -def engine = "jsc" -rootProject.getSubprojects().forEach({project -> - if (project.plugins.hasPlugin("com.android.application")) { - if(project.ext.react.enableHermes) { - engine = "hermes" - } - } -}) - -artifacts.add("default", file("react-native-vision-camera-${engine}.aar")) diff --git a/android-npm/src/AndroidManifest.xml b/android-npm/src/AndroidManifest.xml deleted file mode 100644 index 1931a04..0000000 --- a/android-npm/src/AndroidManifest.xml +++ /dev/null @@ -1,3 +0,0 @@ - - diff --git a/android-npm/src/main/java/com/mrousavy/camera/CameraProxyPackage.java b/android-npm/src/main/java/com/mrousavy/camera/CameraProxyPackage.java deleted file mode 100644 index ff4468f..0000000 --- a/android-npm/src/main/java/com/mrousavy/camera/CameraProxyPackage.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.mrousavy.camera; - -import com.facebook.react.ReactPackage; -import com.mrousavy.camera.CameraPackage; - -public class CameraPackage implements ReactPackage { - // dummy package -} diff --git a/android/build.gradle b/android/build.gradle index 6a2ce9a..67714b5 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -4,12 +4,12 @@ import java.nio.file.Paths def reactNative = new File("$projectDir/../node_modules/react-native") -def FOR_HERMES = ""; -if(findProject(':app')) { - FOR_HERMES = project(':app').ext.react.enableHermes; -} else { - FOR_HERMES = System.getenv("FOR_HERMES") == "True"; -} +def FOR_HERMES = System.getenv("FOR_HERMES") == "True"; +rootProject.getSubprojects().forEach({project -> + if (project.plugins.hasPlugin("com.android.application")) { + FOR_HERMES = project.ext.react.enableHermes; + } +}) /** * Finds the path of the installed npm package with the given name using Node's diff --git a/package.json b/package.json index 14cb8b3..260f053 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "typescript": "tsc --noEmit", "lint": "eslint \"**/*.{js,ts,tsx}\"", "lint-ci": "yarn lint -f ./node_modules/@firmnav/eslint-github-actions-formatter/dist/formatter.js", - "build": "bob build && scripts/build-android-npm-package.sh", + "build": "bob build", "release": "release-it", "pods": "cd example && yarn pods", "bootstrap": "yarn && cd example && yarn && yarn pods", @@ -42,9 +42,7 @@ "clean-ios": "scripts/clean-ios.sh", "clean-android": "scripts/clean-android.sh", "clean-js": "scripts/clean-js.sh", - "docs": "cd docs && yarn build", - "prepack": "rm -rf android-tmp && mv android android-tmp && mv android-npm android", - "postpack": "rm -rf android-npm && mv android android-npm && mv android-tmp android" + "docs": "cd docs && yarn build" }, "keywords": [ "react-native", diff --git a/scripts/build-android-npm-package.sh b/scripts/build-android-npm-package.sh deleted file mode 100755 index 3f30ac3..0000000 --- a/scripts/build-android-npm-package.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash -set -e - -ROOT=$(pwd) - -rm -rf android-npm/*.aar - -for for_hermes in "True" "False" -do - engine="jsc" - if [ "$for_hermes" == "True" ]; then - engine="hermes" - fi - echo "Building VisionCamera for JS Engine ${engine}..." - - cd android - ./gradlew clean - - FOR_HERMES=${for_hermes} ./gradlew assembleDebug - cd .. - - cp android/build/outputs/aar/*.aar "android-npm/react-native-vision-camera-${engine}.aar" - echo "Built react-native-vision-camera-${engine}.aar!" -done - -echo "Finished building VisionCamera packages!"