Skip to content

Commit

Permalink
[RNMobile] Upgrade Gradle to 8.2.1 and AGP to 8.1.0 (WordPress#52872
Browse files Browse the repository at this point in the history
)

* Build: Move android related gradle properties to its own group for aztec

* Deps: Extract agp version to settings build gradle for aztec

* Deps: Extract publish to s3 version to settings build gradle for aztec

* Deps: Add versions groups to root build gradle for aztec

* Deps: Extract androidx legacy version to root build gradle for aztec

* Deps: Extract androidx gridlayout version to root build gradle for aztec

* Deps: Extract androidx cardview version to root build gradle for aztec

* Deps: Extract androidx appcompat version to root build gradle for aztec

* Deps: Extract androidx recyclerview version to root bld gradle for aztec

* Deps: Extract junit version to root build gradle for aztec

FYI: You will notice an additional 'aztec' related 'junit' version. This
is because the node modules are using an older version of JUnit, the
'4.12', that is, comparing to the newer '4.13' version that the 'aztec'
modules are using. As such, and in order to avoid behavior changes, two
such version were extracted to the root 'build.gradle' file with an
accompanying TODO for the future.

* Build: Upgrade gradle to 8.1.1 for aztec (1/2)

Release Notes: https://docs.gradle.org/8.1.1/release-notes.html
Command: ./gradlew wrapper --gradle-version=8.1.1
--distribution-type=all

------------------------------------------------------------------------

FYI: You will notice that the associated 'gradle-wrapper.jar', 'gradlew'
and 'gradlew.bat' files are not updated. This is because of the breaking
changes that this upgrade introduces, including the 'AGP' upgrade and
its associated breaking changes (namespace, build option, etc). As such,
this Gradle upgrade command is only half done.

PS: When all the breaking changes are resolved, this Gradle command will
be issued again, which should fully complete this upgrade.

* Build: Upgrade agp to 8.0.2 for aztec

Release Notes: https://developer.android.com/build/releases/
gradle-plugin#agp-8-0-2

* Build: Move package from android manifest to build files for aztec

This is an AGP version '8.0' breaking change that requires 'namespace'
in module-level build scripts, see build failure below:

------------------------------------------------------------------------

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project
 '@wordpress_react-native-aztec'.
> Failed to notify project evaluation listener.
   > Could not create an instance of type
    com.android.build.api.variant.impl.LibraryVariantBuilderImpl.
      > Namespace not specified. Please specify a namespace in the
       module's build.gradle file like so:

        android {
            namespace 'com.example.namespace'
        }

        If the package attribute is specified in the source
         AndroidManifest.xml, it can be migrated automatically to the
         namespace value in the build.gradle file using the AGP Upgrade
         Assistant; please refer to https://developer.android.com/
         studio/build/agp-upgrade-assistant for more information.
   > Could not get unknown property 'bundleReleaseAar' for object of
    type org.gradle.api.publish.maven.internal.publication
    .DefaultMavenPublication.

------------------------------------------------------------------------

Explanation: "You must set the namespace in the module-level
'build.gradle.kts' file, rather than the manifest file."

For more info see: https://developer.android.com/build/releases/
gradle-plugin#

* Build: Upgrade gradle to 8.1.1 for aztec (2/2)

Release Notes: https://docs.gradle.org/8.1.1/release-notes.html
Command: ./gradlew wrapper --gradle-version=8.1.1
--distribution-type=all

------------------------------------------------------------------------

As per the previous d85ad7b commit and
its description, this change is a follow-up upgrade, which fully
completes this Gradle upgrade.

* Build: Migrate dsl properties from lint options to lint for aztec

FYI: This was suggested automatically using the AGP upgrade assistant.

* Build: Upgrade gradle to 8.2.1 for aztec

Release Notes: https://docs.gradle.org/8.2.1/release-notes.html
Command: ./gradlew wrapper --gradle-version=8.2.1
--distribution-type=all

* Build: Move android related gradle prop. to its own group for bridge

* Deps: Extract agp version to settings build gradle for bridge

* Deps: Extract publish to s3 version to settings build gradle for bridge

* Deps: Extract facebook fresco react native related version for bridge

* Deps: Extract google material version to root build gradle for bridge

* Deps: Extract wordpress utils version to root build gradle for bridge

* Deps: Extract junit version to root build gradle for bridge

* Build: Upgrade gradle to 8.1.1 for bridge (1/2)

Release Notes: https://docs.gradle.org/8.1.1/release-notes.html
Command: ./gradlew wrapper --gradle-version=8.1.1
--distribution-type=all

------------------------------------------------------------------------

FYI: You will notice that the associated 'gradle-wrapper.jar', 'gradlew'
and 'gradlew.bat' files are not updated. This is because of the breaking
changes that this upgrade introduces, including the 'AGP' upgrade and
its associated breaking changes (namespace, build option, etc). As such,
this Gradle upgrade command is only half done.

PS: When all the breaking changes are resolved, this Gradle command will
be issued again, which should fully complete this upgrade.

* Build: Upgrade agp to 8.0.2 for bridge

Release Notes: https://developer.android.com/build/releases/
gradle-plugin#agp-8-0-2

* Build: Move package from android manifest to build files for bridge

This is an AGP version '8.0' breaking change that requires 'namespace'
in module-level build scripts, see build failure below:

------------------------------------------------------------------------

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project
 '@wordpress_react-native-bridge'.
> Failed to notify project evaluation listener.
   > Could not create an instance of type
    com.android.build.api.variant.impl.LibraryVariantBuilderImpl.
      > Namespace not specified. Please specify a namespace in the
       module's build.gradle file like so:

        android {
            namespace 'com.example.namespace'
        }

        If the package attribute is specified in the source
         AndroidManifest.xml, it can be migrated automatically to the
         namespace value in the build.gradle file using the AGP Upgrade
         Assistant; please refer to https://developer.android.com/
         studio/build/agp-upgrade-assistant for more information.
   > Could not get unknown property 'bundleReleaseAar' for object of
    type org.gradle.api.publish.maven.internal.publication
    .DefaultMavenPublication.

------------------------------------------------------------------------

Explanation: "You must set the namespace in the module-level
'build.gradle.kts' file, rather than the manifest file."

For more info see: https://developer.android.com/build/releases/
gradle-plugin#

* Build: Enable build config build feature for bridge

This is an AGP version '8.0' breaking change that changes the build
option default values, see build failure below:

------------------------------------------------------------------------

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':react-native-bridge'.
> Failed to notify project evaluation listener.
   > com.android.builder.errors.EvalIssueException: defaultConfig
    contains custom BuildConfig fields, but the feature is disabled.
   > Could not get unknown property 'bundleReleaseAar' for object of
    type org.gradle.api.publish.maven.internal.publication
    .DefaultMavenPublication.

------------------------------------------------------------------------

Explanation: "Starting with AGP 8.0, the default values for these flags
have changed to improve build performance. AGP 8.0 doesn't generate
'BuildConfig' by default. You need to specify this option using the DSL
in the projects where you need it."

For more info see: https://developer.android.com/build/releases/
gradle-plugin#default-changes

* Build: Upgrade gradle to 8.1.1 for bridge (2/2)

Release Notes: https://docs.gradle.org/8.1.1/release-notes.html
Command: ./gradlew wrapper --gradle-version=8.1.1
--distribution-type=all

------------------------------------------------------------------------

As per the previous 5ff4e6e commit and
its description, this change is a follow-up upgrade, which fully
completes this Gradle upgrade

* Build: Migrate dsl properties from lint options to lint for bridge

FYI: This was suggested automatically using the AGP upgrade assistant.

* Build: Upgrade gradle to 8.2.1 for bridge

Release Notes: https://docs.gradle.org/8.2.1/release-notes.html
Command: ./gradlew wrapper --gradle-version=8.2.1
--distribution-type=all

* Build: Upgrade gradle to 8.2.1 for editor

* Build: Upgrade agp to 8.0.2 for editor

* Build: Move package from android manifest to build files for editor

* Build: Enable build config build feature for editor

* Patch `react-native-gradle` package

* Include correct `react-native-aztec` project in bridge

* Use newer version of React Native Gradle plugin

* Make `else` statement one-line format in editor's `settings.gradle`

* Remove aztec project inclusion when publishing bridge binaries

* Use Java 17 in Android E2E tests

* Update publish-to-s3 Gradle plugin to 0.8.0

* Revert removing package from AndroidManifest

Revert removing package from AndroidManifest

* Add inline comment to remind updating package name

This comment will avoid forgetting about updating the package name in all places needed.

* Add `.java-version` file to use Java 17

* Bump Android Gradle Plugin to `8.1.0`

* Remove `react-native-gradle` patch

* Update `react-native-editor` changelog

* Remove TODO inline comment in `build.gradle`

---------

Co-authored-by: Petros Paraskevopoulos <[email protected]>
  • Loading branch information
fluiddot and ParaskP7 authored Jul 28, 2023
1 parent 44fb9cd commit 6e4bc84
Show file tree
Hide file tree
Showing 35 changed files with 192 additions and 144 deletions.
30 changes: 15 additions & 15 deletions .github/workflows/enforce-pr-labels.yml
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
name: Enforce labels on Pull Request
on:
pull_request_target:
types: [opened, labeled, unlabeled, synchronize]
pull_request_target:
types: [opened, labeled, unlabeled, synchronize]
jobs:
type-related-labels:
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- uses: mheap/github-action-required-labels@v5
with:
mode: exactly
count: 1
labels: "[Type] Accessibility (a11y), [Type] Automated Testing, [Type] Breaking Change, [Type] Bug, [Type] Build Tooling, [Type] Code Quality, [Type] Copy, [Type] Developer Documentation, [Type] Enhancement, [Type] Experimental, [Type] Feature, [Type] New API, [Type] Task, [Type] Performance, [Type] Project Management, [Type] Regression, [Type] Security, [Type] WP Core Ticket"
add_comment: true
message: "## ⚠️ Type of PR label error\n To merge this PR, it requires {{ errorString }} {{ count }} label indicating the type of PR. Other labels are optional and not being checked here. \n- **Type-related labels to choose from**: {{ provided }}.\n- **Labels found**: {{ applied }}.\n\nYou can learn more about the Type labels in Gutenberg [here](https://github.com/WordPress/gutenberg/labels?q=type)"
exit_type: failure
type-related-labels:
runs-on: ubuntu-latest
permissions:
pull-requests: write
steps:
- uses: mheap/github-action-required-labels@v5
with:
mode: exactly
count: 1
labels: '[Type] Accessibility (a11y), [Type] Automated Testing, [Type] Breaking Change, [Type] Bug, [Type] Build Tooling, [Type] Code Quality, [Type] Copy, [Type] Developer Documentation, [Type] Enhancement, [Type] Experimental, [Type] Feature, [Type] New API, [Type] Task, [Type] Performance, [Type] Project Management, [Type] Regression, [Type] Security, [Type] WP Core Ticket'
add_comment: true
message: "## ⚠️ Type of PR label error\n To merge this PR, it requires {{ errorString }} {{ count }} label indicating the type of PR. Other labels are optional and not being checked here. \n- **Type-related labels to choose from**: {{ provided }}.\n- **Labels found**: {{ applied }}.\n\nYou can learn more about the Type labels in Gutenberg [here](https://github.com/WordPress/gutenberg/labels?q=type)"
exit_type: failure
4 changes: 2 additions & 2 deletions .github/workflows/rnmobile-android-runner.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ jobs:
- name: Use desired version of Java
uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 # v3.12.0
with:
distribution: 'temurin'
java-version: '11'
distribution: 'corretto'
java-version: '17'

- name: Setup Node.js and install dependencies
uses: ./.github/setup-node
Expand Down
6 changes: 6 additions & 0 deletions package-lock.json

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

1 change: 1 addition & 0 deletions packages/react-native-aztec/android/.java-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
17.0
33 changes: 24 additions & 9 deletions packages/react-native-aztec/android/build.gradle
Original file line number Diff line number Diff line change
@@ -1,15 +1,28 @@
buildscript {
ext {
// node modules
supportLibVersion = '29.0.2'
tagSoupVersion = '1.2.1'
glideVersion = '3.7.0'
picassoVersion = '2.5.2'
robolectricVersion = '3.5.1'
jUnitVersion = '4.12'
jSoupVersion = '1.10.3'
wordpressUtilsVersion = '3.3.0'
espressoVersion = '3.0.1'

// libs
aztecVersion = 'v1.6.4'
wordpressUtilsVersion = '3.3.0'

// main
androidxAppcompatVersion = '1.2.0'
androidxCardviewVersion = '1.0.0'
androidxGridlayoutVersion = '1.0.0'
androidxLegacyVersion = '1.0.0'
androidxRecyclerviewVersion = '1.1.0'

// test
junitAztecVersion = '4.13'
}
}

Expand All @@ -34,6 +47,8 @@ List<String> dirs = [
'template'] // boilerplate code that is generated by the sample template process

android {
namespace "org.wordpress.mobile.ReactNativeAztec"

compileSdkVersion 33

defaultConfig {
Expand All @@ -59,7 +74,7 @@ android {
androidTest.java.srcDirs = ['tests/src']
}

lintOptions {
lint {
disable 'GradleCompatible'
abortOnError false
}
Expand All @@ -85,12 +100,13 @@ dependencies {
api "org.wordpress.aztec:glide-loader:$aztecVersion"
implementation "org.wordpress:utils:$wordpressUtilsVersion"

implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.gridlayout:gridlayout:1.0.0'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.recyclerview:recyclerview:1.1.0'
testImplementation 'junit:junit:4.13'
implementation "androidx.legacy:legacy-support-v4:$androidxLegacyVersion"
implementation "androidx.gridlayout:gridlayout:$androidxGridlayoutVersion"
implementation "androidx.cardview:cardview:$androidxCardviewVersion"
implementation "androidx.appcompat:appcompat:$androidxAppcompatVersion"
implementation "androidx.recyclerview:recyclerview:$androidxRecyclerviewVersion"

testImplementation "junit:junit:$junitAztecVersion"

def rnVersion = readReactNativeVersion('../../../package.json', 'devDependencies')
println "react-native version for react-native-aztec: $rnVersion"
Expand All @@ -105,7 +121,6 @@ project.afterEvaluate {

groupId 'org.wordpress-mobile.gutenberg-mobile'
artifactId 'react-native-aztec'
artifact tasks.named("androidSourcesJar")
// version is set by 'publish-to-s3' plugin

addDependenciesToPom(pom)
Expand Down
9 changes: 8 additions & 1 deletion packages/react-native-aztec/android/gradle.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# Project-wide Gradle settings.

org.gradle.jvmargs=-Xmx2g -XX:+HeapDumpOnOutOfMemoryError

# React Native Aztec properties.

android.useAndroidX=true
android.enableJetifier=false
shouldPublishBinary=false

# React Native Aztec publishing settings.

shouldPublishBinary=false
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-all.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
24 changes: 16 additions & 8 deletions packages/react-native-aztec/android/gradlew
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
Expand All @@ -80,13 +80,10 @@ do
esac
done

APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit

APP_NAME="Gradle"
# This is normally unused
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}

# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit

# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
Expand Down Expand Up @@ -133,22 +130,29 @@ location of your Java installation."
fi
else
JAVACMD=java
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
if ! command -v java >/dev/null 2>&1
then
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
fi

# Increase the maximum file descriptors if we can.
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
case $MAX_FD in #(
'' | soft) :;; #(
*)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
Expand Down Expand Up @@ -193,6 +197,10 @@ if "$cygwin" || "$msys" ; then
done
fi


# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'

# Collect all arguments for the java command;
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
# shell script including quotes and variable substitutions, so put them in
Expand Down
1 change: 1 addition & 0 deletions packages/react-native-aztec/android/gradlew.bat
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ if "%OS%"=="Windows_NT" setlocal

set DIRNAME=%~dp0
if "%DIRNAME%"=="" set DIRNAME=.
@rem This is normally unused
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%

Expand Down
6 changes: 4 additions & 2 deletions packages/react-native-aztec/android/settings.gradle
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
pluginManagement {
gradle.ext.kotlinVersion = '1.6.10'
gradle.ext.agpVersion = '8.1.0'
gradle.ext.automatticPublishToS3Version = '0.8.0'

plugins {
id "com.android.library" version "7.2.1"
id "com.android.library" version gradle.ext.agpVersion
id "org.jetbrains.kotlin.android" version gradle.ext.kotlinVersion
id "com.automattic.android.publish-to-s3" version "0.7.0"
id "com.automattic.android.publish-to-s3" version gradle.ext.automatticPublishToS3Version
}
repositories {
maven {
Expand Down
20 changes: 0 additions & 20 deletions packages/react-native-aztec/android/src/main/AndroidManifest.xml

This file was deleted.

1 change: 1 addition & 0 deletions packages/react-native-bridge/android/.java-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
17.0
6 changes: 5 additions & 1 deletion packages/react-native-bridge/android/gradle.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
# Project-wide Gradle settings.

org.gradle.jvmargs=-Xmx2g -XX:+HeapDumpOnOutOfMemoryError

# React Native Bridge properties.

android.useAndroidX=true
android.enableJetifier=false

Binary file not shown.
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-all.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
24 changes: 16 additions & 8 deletions packages/react-native-bridge/android/gradlew
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
Expand All @@ -80,13 +80,10 @@ do
esac
done

APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit

APP_NAME="Gradle"
# This is normally unused
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}

# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit

# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum
Expand Down Expand Up @@ -133,22 +130,29 @@ location of your Java installation."
fi
else
JAVACMD=java
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
if ! command -v java >/dev/null 2>&1
then
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
fi

# Increase the maximum file descriptors if we can.
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
case $MAX_FD in #(
max*)
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC3045
MAX_FD=$( ulimit -H -n ) ||
warn "Could not query maximum file descriptor limit"
esac
case $MAX_FD in #(
'' | soft) :;; #(
*)
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
# shellcheck disable=SC3045
ulimit -n "$MAX_FD" ||
warn "Could not set maximum file descriptor limit to $MAX_FD"
esac
Expand Down Expand Up @@ -193,6 +197,10 @@ if "$cygwin" || "$msys" ; then
done
fi


# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'

# Collect all arguments for the java command;
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
# shell script including quotes and variable substitutions, so put them in
Expand Down
1 change: 1 addition & 0 deletions packages/react-native-bridge/android/gradlew.bat
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ if "%OS%"=="Windows_NT" setlocal

set DIRNAME=%~dp0
if "%DIRNAME%"=="" set DIRNAME=.
@rem This is normally unused
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%

Expand Down
Loading

0 comments on commit 6e4bc84

Please sign in to comment.