mirror of
https://github.com/Picovoice/porcupine.git
synced 2022-01-28 03:27:53 +03:00
Add support for Java 17 + gradle 7.3 (#595)
This commit is contained in:
@@ -23,7 +23,7 @@ To learn more about Porcupine, see the [product](https://picovoice.ai/products/p
|
||||
## Compatibility
|
||||
|
||||
- Linux (x86_64)
|
||||
- macOS (x86_64)
|
||||
- macOS (x86_64, arm64)
|
||||
- Windows (x86_64)
|
||||
- Raspberry Pi 2, Raspberry Pi 3 (32 and 64 bit), Raspberry Pi 4 (32 and 64 bit)
|
||||
- Jetson Nano
|
||||
|
||||
@@ -153,7 +153,10 @@ task copyLinuxLib(type: Copy) {
|
||||
from('../../lib/java/linux/x86_64/libpv_porcupine_jni.so') into "${outputDir}/porcupine/lib/java/linux/x86_64/"
|
||||
}
|
||||
task copyMacLib(type: Copy) {
|
||||
from('../../lib/java/mac/x86_64/libpv_porcupine_jni.dylib') into "${outputDir}/porcupine/lib/java/mac/x86_64/"
|
||||
from('../../lib/java/mac/')
|
||||
include('x86_64/libpv_porcupine_jni.dylib',
|
||||
'arm64/libpv_porcupine_jni.dylib')
|
||||
into "${outputDir}/porcupine/lib/java/mac/"
|
||||
}
|
||||
task copyWindowsLib(type: Copy) {
|
||||
from('../../lib/java/windows/amd64/pv_porcupine_jni.dll') into "${outputDir}/porcupine/lib/java/windows/amd64/"
|
||||
@@ -174,7 +177,7 @@ task copyBeagleboneLib(type: Copy) {
|
||||
from('../../lib/java/beaglebone/libpv_porcupine_jni.so') into "${outputDir}/porcupine/lib/java/beaglebone/"
|
||||
}
|
||||
|
||||
assemble {
|
||||
jar {
|
||||
dependsOn 'copyLinuxKeywordResources'
|
||||
dependsOn 'copyMacKeywordResources'
|
||||
dependsOn 'copyWindowsKeywordResources'
|
||||
@@ -198,6 +201,10 @@ dependencies {
|
||||
testImplementation 'org.junit.jupiter:junit-jupiter:5.4.2'
|
||||
}
|
||||
|
||||
compileTestJava {
|
||||
dependsOn 'assemble'
|
||||
}
|
||||
|
||||
test {
|
||||
systemProperty 'pvTestingAccessKey', System.getProperty('pvTestingAccessKey')
|
||||
useJUnitPlatform()
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.2-bin.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
||||
178
binding/java/gradlew.bat
vendored
178
binding/java/gradlew.bat
vendored
@@ -1,89 +1,89 @@
|
||||
@rem
|
||||
@rem Copyright 2015 the original author or authors.
|
||||
@rem
|
||||
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@rem you may not use this file except in compliance with the License.
|
||||
@rem You may obtain a copy of the License at
|
||||
@rem
|
||||
@rem https://www.apache.org/licenses/LICENSE-2.0
|
||||
@rem
|
||||
@rem Unless required by applicable law or agreed to in writing, software
|
||||
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@rem See the License for the specific language governing permissions and
|
||||
@rem limitations under the License.
|
||||
@rem
|
||||
|
||||
@if "%DEBUG%" == "" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem Gradle startup script for Windows
|
||||
@rem
|
||||
@rem ##########################################################################
|
||||
|
||||
@rem Set local scope for the variables with windows NT shell
|
||||
if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%" == "" set DIRNAME=.
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
||||
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
||||
|
||||
@rem Find java.exe
|
||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if "%ERRORLEVEL%" == "0" goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:findJavaFromJavaHome
|
||||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||
|
||||
|
||||
@rem Execute Gradle
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
||||
|
||||
:fail
|
||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||
rem the _cmd.exe /c_ return code!
|
||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
||||
exit /b 1
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
||||
:omega
|
||||
@rem
|
||||
@rem Copyright 2015 the original author or authors.
|
||||
@rem
|
||||
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@rem you may not use this file except in compliance with the License.
|
||||
@rem You may obtain a copy of the License at
|
||||
@rem
|
||||
@rem https://www.apache.org/licenses/LICENSE-2.0
|
||||
@rem
|
||||
@rem Unless required by applicable law or agreed to in writing, software
|
||||
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@rem See the License for the specific language governing permissions and
|
||||
@rem limitations under the License.
|
||||
@rem
|
||||
|
||||
@if "%DEBUG%" == "" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem Gradle startup script for Windows
|
||||
@rem
|
||||
@rem ##########################################################################
|
||||
|
||||
@rem Set local scope for the variables with windows NT shell
|
||||
if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%" == "" set DIRNAME=.
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
||||
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
||||
|
||||
@rem Find java.exe
|
||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if "%ERRORLEVEL%" == "0" goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:findJavaFromJavaHome
|
||||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||
|
||||
|
||||
@rem Execute Gradle
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
||||
|
||||
:fail
|
||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||
rem the _cmd.exe /c_ return code!
|
||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
||||
exit /b 1
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
||||
:omega
|
||||
|
||||
@@ -153,13 +153,24 @@ class Utils {
|
||||
|
||||
private static String getArchitecture() throws RuntimeException {
|
||||
String arch = System.getProperty("os.arch");
|
||||
if (arch.equals("amd64") || arch.equals("x86_64")) {
|
||||
if (ENVIRONMENT_NAME.equals("windows")) {
|
||||
return "amd64";
|
||||
} else {
|
||||
boolean isArm = arch.equals("arm") || arch.equals("aarch64");
|
||||
boolean isX86_64 = arch.equals("amd64") || arch.equals("x86_64");
|
||||
|
||||
if (ENVIRONMENT_NAME.equals("mac")) {
|
||||
if (isArm) {
|
||||
return "arm64";
|
||||
} else if (isX86_64) {
|
||||
return "x86_64";
|
||||
}
|
||||
} else if (arch.equals("arm") || arch.equals("aarch64")) {
|
||||
} else if (ENVIRONMENT_NAME.equals("windows")) {
|
||||
if (isX86_64) {
|
||||
return "amd64";
|
||||
}
|
||||
} else if (ENVIRONMENT_NAME.equals("linux")) {
|
||||
if (isX86_64) {
|
||||
return "x86_64";
|
||||
}
|
||||
} else if (isArm) { // RPI, Beaglebone, etc..
|
||||
String cpuPart = getCpuPart();
|
||||
String archInfo = (arch.equals("aarch64")) ? "-aarch64" : "";
|
||||
|
||||
@@ -176,12 +187,14 @@ class Utils {
|
||||
return "";
|
||||
default:
|
||||
throw new RuntimeException(
|
||||
String.format("Platform architecture with CPU Part (%s) is not supported by Porcupine.", cpuPart)
|
||||
String.format("Environment (%s) with CPU Part (%s) is not supported by Porcupine.", ENVIRONMENT_NAME, cpuPart)
|
||||
);
|
||||
}
|
||||
} else {
|
||||
throw new RuntimeException(String.format("Platform architecture (%s) is not supported by Porcupine.", arch));
|
||||
}
|
||||
|
||||
throw new RuntimeException(
|
||||
String.format("Environment (%s) with architecture (%s) is not supported by Porcupine.", ENVIRONMENT_NAME, arch)
|
||||
);
|
||||
}
|
||||
|
||||
private static String getCpuPart() throws RuntimeException {
|
||||
@@ -223,7 +236,9 @@ class Utils {
|
||||
case "windows":
|
||||
return RESOURCE_DIRECTORY.resolve("lib/java/windows/amd64/pv_porcupine_jni.dll").toString();
|
||||
case "mac":
|
||||
return RESOURCE_DIRECTORY.resolve("lib/java/mac/x86_64/libpv_porcupine_jni.dylib").toString();
|
||||
return RESOURCE_DIRECTORY.resolve("lib/java/mac")
|
||||
.resolve(ARCHITECTURE)
|
||||
.resolve("libpv_porcupine_jni.dylib").toString();
|
||||
case "jetson":
|
||||
case "beaglebone":
|
||||
case "raspberry-pi":
|
||||
|
||||
BIN
lib/java/mac/arm64/libpv_porcupine_jni.dylib
Executable file
BIN
lib/java/mac/arm64/libpv_porcupine_jni.dylib
Executable file
Binary file not shown.
Reference in New Issue
Block a user