Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
TestToolChainDemo
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
dsq
TestToolChainDemo
Commits
01d96d88
Commit
01d96d88
authored
Oct 20, 2026
by
dsq
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix:kotlin版本更新
parent
67eef1b9
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
229 additions
and
49 deletions
+229
-49
gradle.properties
gradle.properties
+6
-2
libs.versions.toml
gradle/libs.versions.toml
+5
-5
gradle-wrapper.properties
gradle/wrapper/gradle-wrapper.properties
+1
-1
compose.har
harmonyApp/entry/libs/compose.har
+0
-0
oh-package-lock.json5
harmonyApp/entry/oh-package-lock.json5
+7
-7
runOhosApp-Mac.sh
runscript/runOhosApp-Mac.sh
+115
-18
runOhosApp-Win.bat
runscript/runOhosApp-Win.bat
+95
-16
No files found.
gradle.properties
View file @
01d96d88
...
...
@@ -9,6 +9,10 @@ org.gradle.jvmargs=-Xmx8192m -XX:MaxMetaspaceSize=1024m -Dfile.encoding=UTF-8
#Android
android.nonTransitiveRClass
=
true
android.useAndroidX
=
true
# AGP 9 默认的新 DSL / 内置 Kotlin 不能和 KMP 的 com.android.application 放在同一个模块。
# 这两个开关保留旧行为,到 AGP 10 之前可用。
android.builtInKotlin
=
false
android.newDsl
=
false
kotlin.native.cacheKind
=
none
...
...
@@ -23,13 +27,13 @@ kotlin.debug.generateLineNumbers=true
kotlin.debug.generateLocalVariables
=
true
ohosSkikoVersion
=
0.
9.22.2-0.5.0-30
ohosSkikoVersion
=
0.
150.1-0.1.0-05
# 统一渲染(fusion-renderer);自渲染用 skia
#rendererBackend=fusion-renderer
rendererBackend
=
skia
#Enable all of the following switches to improve debug incremental compilation performance.
org.gradle.caching
=
tru
e
org.gradle.caching
=
fals
e
org.gradle.configuration-cache
=
true
org.gradle.parallel
=
true
kotlin.incremental.native
=
true
...
...
gradle/libs.versions.toml
View file @
01d96d88
[versions]
# Build & Android
agp
=
"8.
2.2
"
agp
=
"8.
11.1
"
android-compileSdk
=
"36"
android-minSdk
=
"24"
android-targetSdk
=
"36"
...
...
@@ -23,12 +23,12 @@ junit = "4.13.2"
# Compose
compose
=
"1.9.4"
compose-material3
=
"1.4.0"
composeMultiplatform
=
"1.
9.2-0.5.0-30
"
composeMultiplatform
=
"1.
12.0-0.1.0-05
"
# Kotlin & testing
kotlin
=
"2.
2.21-0.5.0-1
6"
kotlinx-coroutines
=
"1.1
0.2-0.5.0-1
5"
atomicFu
=
"0.3
1.0-0.5.0-1
5"
kotlin
=
"2.
4.20-0.1.0-0
6"
kotlinx-coroutines
=
"1.1
1.0-0.1.0-0
5"
atomicFu
=
"0.3
3.0-0.1.0-0
5"
...
...
gradle/wrapper/gradle-wrapper.properties
View file @
01d96d88
distributionBase
=
GRADLE_USER_HOME
distributionPath
=
wrapper/dists
distributionUrl
=
https
\:
//mirrors.tencent.com/gradle/gradle-
8.9
-bin.zip
distributionUrl
=
https
\:
//mirrors.tencent.com/gradle/gradle-
9.4.1
-bin.zip
networkTimeout
=
10000
validateDistributionUrl
=
true
zipStoreBase
=
GRADLE_USER_HOME
...
...
harmonyApp/entry/libs/compose.har
View file @
01d96d88
No preview for this file type
harmonyApp/entry/oh-package-lock.json5
View file @
01d96d88
...
...
@@ -7,14 +7,14 @@
"ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.",
"specifiers": {
"@cpf-kmp-cmp/compose@libs/compose.har": "@cpf-kmp-cmp/compose@libs/compose.har",
"libcompose_arkui_utils.so@../oh_modules/.ohpm/@cpf-kmp-cmp+compose@
zncqui1ex3auvconwpmijgxzo6f2eohsbim07tesnmk=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libcompose_arkui_utils": "libcompose_arkui_utils.so@../oh_modules/.ohpm/@cpf-kmp-cmp+compose@zncqui1ex3auvconwpmijgxzo6f2eohsbim07tesnm
k=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libcompose_arkui_utils",
"libcompose_arkui_utils.so@../oh_modules/.ohpm/@cpf-kmp-cmp+compose@
nusv4hdaq9qnu2am9w0s6ayqu7ottfkx6bvicvx8ppk=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libcompose_arkui_utils": "libcompose_arkui_utils.so@../oh_modules/.ohpm/@cpf-kmp-cmp+compose@nusv4hdaq9qnu2am9w0s6ayqu7ottfkx6bvicvx8pp
k=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libcompose_arkui_utils",
"libentry.so@src/main/cpp/types/libentry": "libentry.so@src/main/cpp/types/libentry",
"libskikobridge.so@../oh_modules/.ohpm/@cpf-kmp-cmp+compose@
zncqui1ex3auvconwpmijgxzo6f2eohsbim07tesnmk=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libskikobridge": "libskikobridge.so@../oh_modules/.ohpm/@cpf-kmp-cmp+compose@zncqui1ex3auvconwpmijgxzo6f2eohsbim07tesnm
k=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libskikobridge"
"libskikobridge.so@../oh_modules/.ohpm/@cpf-kmp-cmp+compose@
nusv4hdaq9qnu2am9w0s6ayqu7ottfkx6bvicvx8ppk=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libskikobridge": "libskikobridge.so@../oh_modules/.ohpm/@cpf-kmp-cmp+compose@nusv4hdaq9qnu2am9w0s6ayqu7ottfkx6bvicvx8pp
k=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libskikobridge"
},
"packages": {
"@cpf-kmp-cmp/compose@libs/compose.har": {
"name": "@cpf-kmp-cmp/compose",
"version": "1.
9.2-0.3.
0",
"version": "1.
12.0-0.1.0-1
0",
"resolved": "libs/compose.har",
"registryType": "local",
"dependencies": {
...
...
@@ -22,10 +22,10 @@
"libskikobridge.so": "file:./src/main/cpp/types/libskikobridge"
}
},
"libcompose_arkui_utils.so@../oh_modules/.ohpm/@cpf-kmp-cmp+compose@
zncqui1ex3auvconwpmijgxzo6f2eohsbim07tesnm
k=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libcompose_arkui_utils": {
"libcompose_arkui_utils.so@../oh_modules/.ohpm/@cpf-kmp-cmp+compose@
nusv4hdaq9qnu2am9w0s6ayqu7ottfkx6bvicvx8pp
k=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libcompose_arkui_utils": {
"name": "libcompose_arkui_utils.so",
"version": "1.0.0",
"resolved": "../oh_modules/.ohpm/@cpf-kmp-cmp+compose@
zncqui1ex3auvconwpmijgxzo6f2eohsbim07tesnm
k=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libcompose_arkui_utils",
"resolved": "../oh_modules/.ohpm/@cpf-kmp-cmp+compose@
nusv4hdaq9qnu2am9w0s6ayqu7ottfkx6bvicvx8pp
k=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libcompose_arkui_utils",
"registryType": "local"
},
"libentry.so@src/main/cpp/types/libentry": {
...
...
@@ -34,10 +34,10 @@
"resolved": "src/main/cpp/types/libentry",
"registryType": "local"
},
"libskikobridge.so@../oh_modules/.ohpm/@cpf-kmp-cmp+compose@
zncqui1ex3auvconwpmijgxzo6f2eohsbim07tesnm
k=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libskikobridge": {
"libskikobridge.so@../oh_modules/.ohpm/@cpf-kmp-cmp+compose@
nusv4hdaq9qnu2am9w0s6ayqu7ottfkx6bvicvx8pp
k=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libskikobridge": {
"name": "libskikobridge.so",
"version": "0.0.0",
"resolved": "../oh_modules/.ohpm/@cpf-kmp-cmp+compose@
zncqui1ex3auvconwpmijgxzo6f2eohsbim07tesnm
k=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libskikobridge",
"resolved": "../oh_modules/.ohpm/@cpf-kmp-cmp+compose@
nusv4hdaq9qnu2am9w0s6ayqu7ottfkx6bvicvx8pp
k=/oh_modules/@cpf-kmp-cmp/compose/src/main/cpp/types/libskikobridge",
"registryType": "local"
}
}
...
...
runscript/runOhosApp-Mac.sh
View file @
01d96d88
...
...
@@ -18,9 +18,24 @@
#
set
-e
# harmony-runscript-timing-v2
# Record script start time
START_TIME
=
$(
date
+%s
)
format_phase_duration_line
()
{
local
label
=
"
$1
"
local
from_sec
=
"
$2
"
local
to_sec
=
"
$3
"
local
elapsed
=
$((
to_sec
-
from_sec
))
if
((
elapsed < 0
))
;
then
elapsed
=
0
fi
local
minutes
=
$((
elapsed
/
60
))
local
remain_sec
=
$((
elapsed
%
60
))
echo
-e
" -
${
label
}
:
${
minutes
}
m
${
remain_sec
}
s (
${
elapsed
}
s)"
}
# ====================== [1. Default Configuration and Parameter Parsing] ======================
DEFAULT_PLATFORM
=
"ohosArm64"
DEFAULT_TARGET_ID
=
"127.0.0.1:5555"
...
...
@@ -159,6 +174,103 @@ if [ -n "$LOCAL_OHOS_PATH" ]; then
GRADLE_OHOS_ARGS
=(
-PharmonyAppPath
=
"
$LOCAL_OHOS_PATH
"
)
fi
# DevEco Studio 26 ships JBR 25 and this script puts that java on PATH for hdc/ohpm/hvigor.
# IDE launches usually have no JAVA_HOME, so ./gradlew would run on JDK 25. Gradle 8.9's
# embedded Kotlin parser then throws IllegalArgumentException: 25.0.2 and the build exits
# in a few hundred milliseconds. Gradle must use JDK 17–22. Leave the JBR on PATH.
DEVECO_JBR_HOME
=
"
$DEVECO_HOME
/jbr/Contents/Home"
java_spec_version
()
{
local
java_bin
=
"
$1
"
local
line spec
line
=
$(
"
$java_bin
"
-version
2>&1 |
head
-n
1
)
||
true
spec
=
$(
printf
'%s\n'
"
$line
"
|
sed
-n
's/.* version "\([^"]*\)".*/\1/p'
)
case
"
$spec
"
in
1.
*
)
printf
'%s\n'
"
$spec
"
|
cut
-d
.
-f2
;;
""
)
;;
*
)
printf
'%s\n'
"
$spec
"
|
cut
-d
.
-f1
;;
esac
}
java_home_is_gradle_ok
()
{
local
home
=
"
$1
"
[
-n
"
$home
"
]
||
return
1
[
-x
"
$home
/bin/java"
]
||
return
1
local
home_real jbr_real
home_real
=
$(
cd
"
$home
"
2>/dev/null
&&
pwd
-P
)
||
home_real
=
"
$home
"
if
[
-d
"
$DEVECO_JBR_HOME
"
]
;
then
jbr_real
=
$(
cd
"
$DEVECO_JBR_HOME
"
2>/dev/null
&&
pwd
-P
)
||
jbr_real
=
"
$DEVECO_JBR_HOME
"
[
"
$home_real
"
=
"
$jbr_real
"
]
&&
return
1
fi
local
major
major
=
$(
java_spec_version
"
$home
/bin/java"
)
case
"
$major
"
in
17|18|19|20|21|22
)
return
0
;;
*
)
return
1
;;
esac
}
pick_gradle_java_home
()
{
if
java_home_is_gradle_ok
"
${
JAVA_HOME
:-}
"
;
then
printf
'%s\n'
"
$JAVA_HOME
"
return
0
fi
local
v candidate d best best_rank
best
=
""
best_rank
=
99
# Bash locals are visible to functions called from here. Prefer 21, then 17.
remember_gradle_jdk
()
{
local
home
=
"
$1
"
major rank
java_home_is_gradle_ok
"
$home
"
||
return
0
major
=
$(
java_spec_version
"
$home
/bin/java"
)
case
"
$major
"
in
21
)
rank
=
0
;;
17
)
rank
=
1
;;
22
)
rank
=
2
;;
*
)
rank
=
3
;;
esac
if
[
"
$rank
"
-lt
"
$best_rank
"
]
;
then
best
=
"
$home
"
best_rank
=
$rank
fi
}
if
[
-x
/usr/libexec/java_home
]
;
then
for
v
in
21 17 22 20 19 18
;
do
candidate
=
$(
/usr/libexec/java_home
-v
"
$v
"
2>/dev/null
)
||
candidate
=
""
remember_gradle_jdk
"
$candidate
"
[
"
$best_rank
"
-eq
0
]
&&
break
done
fi
if
[
"
$best_rank
"
-ne
0
]
;
then
for
d
in
/Library/Java/JavaVirtualMachines/
*
/Contents/Home
\
"
$HOME
/Library/Java/JavaVirtualMachines/"
*
/Contents/Home
\
/opt/homebrew/opt/openjdk@21/libexec/openjdk.jdk/Contents/Home
\
/opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home
\
/usr/local/opt/openjdk@21/libexec/openjdk.jdk/Contents/Home
\
/usr/local/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home
;
do
remember_gradle_jdk
"
$d
"
[
"
$best_rank
"
-eq
0
]
&&
break
done
fi
if
[
-n
"
$best
"
]
;
then
printf
'%s\n'
"
$best
"
return
0
fi
return
1
}
GRADLE_JAVA_HOME
=
"
$(
pick_gradle_java_home
)
"
||
GRADLE_JAVA_HOME
=
""
if
[
-z
"
$GRADLE_JAVA_HOME
"
]
;
then
echo
-e
"
${
RED
}
Error: Gradle cannot run on DevEco's bundled JBR (Java 25).
${
NC
}
"
echo
-e
"
${
RED
}
The build stops immediately and the only message is
\"
25.0.2
\"
.
${
NC
}
"
echo
"Install JDK 17 or 21, or set JAVA_HOME to that JDK, then run Debug again."
echo
"DevEco JBR stays on PATH for hdc, ohpm, and hvigor."
exit
1
fi
export
JAVA_HOME
=
"
$GRADLE_JAVA_HOME
"
GRADLE_JAVA_MAJOR
=
"
$(
java_spec_version
"
$JAVA_HOME
/bin/java"
)
"
echo
"[Harmony-Debug-Pipeline] Build: Gradle JVM Java
$GRADLE_JAVA_MAJOR
at
$JAVA_HOME
(DevEco JBR is not used for Gradle)"
# ====================== [3. Gradle Build] ======================
echo
"[Harmony-Debug-Pipeline] Build: Gradle KMP
$OHOS_KMP_RUN_GRADLE_TASK
(mode=
$BUILD_MODE
; first run slower, later incremental)"
echo
"Working path:
$(
pwd
)
"
...
...
@@ -302,27 +414,12 @@ fi
echo
"------------------------------------------------------------"
echo
-e
"
\0
33[32mBuild, install and app launch completed!
\0
33[0m"
# Calculate total duration
ELAPSED_TIME
=
$((
END_TIME
-
START_TIME
))
MINUTES
=
$((
ELAPSED_TIME
/
60
))
SECONDS
=
$((
ELAPSED_TIME
%
60
))
echo
-e
"App info:"
echo
-e
" - Bundle:
$BUNDLE_NAME
"
echo
-e
" - Device:
$TARGET_ID
"
ELAPSED_TIME
=
$((
HAP_START_TIME
-
START_TIME
))
MINUTES
=
$((
ELAPSED_TIME
/
60
))
SECONDS
=
$((
ELAPSED_TIME
%
60
))
echo
-e
" - SO build time:
${
MINUTES
}
m
${
SECONDS
}
s (
${
ELAPSED_TIME
}
s)"
ELAPSED_TIME
=
$((
END_TIME
-
HAP_START_TIME
))
MINUTES
=
$((
ELAPSED_TIME
/
60
))
SECONDS
=
$((
ELAPSED_TIME
%
60
))
echo
-e
" - HAP package and push time:
${
MINUTES
}
m
${
SECONDS
}
s (
${
ELAPSED_TIME
}
s)"
ELAPSED_TIME
=
$((
END_TIME
-
START_TIME
))
MINUTES
=
$((
ELAPSED_TIME
/
60
))
SECONDS
=
$((
ELAPSED_TIME
%
60
))
echo
-e
" - Total time:
${
MINUTES
}
m
${
SECONDS
}
s (
${
ELAPSED_TIME
}
s)"
format_phase_duration_line
"SO build time"
"
$START_TIME
"
"
$HAP_START_TIME
"
format_phase_duration_line
"HAP package and push time"
"
$HAP_START_TIME
"
"
$END_TIME
"
format_phase_duration_line
"Total time"
"
$START_TIME
"
"
$END_TIME
"
# ====================== 【6. Keep alive】 ======================
echo
""
echo
-e
"
\0
33[32m▶ App running (click Stop button to end)...
\0
33[0m"
...
...
runscript/runOhosApp-Win.bat
View file @
01d96d88
...
...
@@ -15,6 +15,7 @@ rem See the License for the specific language governing permissions and
rem limitations under the License.
setlocal EnableDelayedExpansion
rem harmony-runscript-timing-v2
REM Run OHOS app on Windows (no debug / LLDB)
REM Usage: runOhosApp-Win.bat [options] [PLATFORM] [TARGET_ID]
REM Options: -b BUNDLE -a ABILITY -p LOCAL_OHOS_PATH
...
...
@@ -50,7 +51,10 @@ if "!PLATFORM!"=="" set "PLATFORM=%DEFAULT_PLATFORM%"
if "!TARGET_ID!"=="" set "TARGET_ID=%DEFAULT_TARGET_ID%"
REM Record script start time (epoch seconds for elapsed calculation)
for /f %%t in ('powershell -NoProfile -Command "[int][double]::Parse((Get-Date -UFormat '%%s'))"') do set START_TIME=%%t
set "START_TIME=0"
set "HAP_START_TIME=0"
set "END_TIME=0"
call :record_epoch START_TIME
echo Run environment configuration:
echo - Platform: %PLATFORM%
...
...
@@ -120,7 +124,7 @@ if not "%CURRENT_VERSION%"=="unknown" (
set "HDC_BIN=%DEVECO_PATH%\sdk\default\openharmony\toolchains\hdc.exe"
set "DEVECO_SDK_HOME=%DEVECO_PATH%\sdk"
set "PATH=%DEVECO_PATH%\tools\node;%DEVECO_PATH%\tools\ohpm\bin;%DEVECO_PATH%\tools\hvigor\bin;%DEVECO_SDK_HOME%;%PATH%"
set "PATH=%DEVECO_PATH%\
jbr\bin;%DEVECO_PATH%\
tools\node;%DEVECO_PATH%\tools\ohpm\bin;%DEVECO_PATH%\tools\hvigor\bin;%DEVECO_SDK_HOME%;%PATH%"
if not exist "%HDC_BIN%" (
echo Error: hdc not found at %HDC_BIN%
...
...
@@ -145,6 +149,19 @@ if "%BUILD_MODE%"=="release" (
if not defined OHOS_KMP_RUN_GRADLE_TASK set "OHOS_KMP_RUN_GRADLE_TASK=:%OHOS_KMP_RUN_GRADLE_MODULE%:%OHOS_KMP_RUN_PUBLISH_TASK%"
if not defined OHOS_KMP_RUN_ENTRY_MODULE set "OHOS_KMP_RUN_ENTRY_MODULE=entry"
REM DevEco's bundled JBR is Java 25. It is on PATH for hdc/ohpm/hvigor, but Gradle 8.9
REM crashes on it with the message "25.0.2". Gradle must use JDK 17-22.
call :resolve_gradle_java_home
if not defined GRADLE_JAVA_HOME (
echo Error: Gradle cannot run on DevEco's bundled JBR ^(Java 25^).
echo The build stops immediately and the only message is "25.0.2".
echo Install JDK 17 or 21, or set JAVA_HOME to that JDK, then run Debug again.
echo DevEco JBR stays on PATH for hdc, ohpm, and hvigor.
exit /b 1
)
set "JAVA_HOME=%GRADLE_JAVA_HOME%"
echo [Harmony-Debug-Pipeline] Build: Gradle JVM JAVA_HOME=%JAVA_HOME% ^(DevEco JBR is not used for Gradle^)
REM ====================== Gradle Build ======================
echo [Harmony-Debug-Pipeline] Build: Gradle KMP %OHOS_KMP_RUN_GRADLE_TASK% (mode=%BUILD_MODE%; first run slower, later incremental)
echo Working path: %CD%
...
...
@@ -167,7 +184,7 @@ if not "%LOCAL_OHOS_PATH%"=="" (
echo [Harmony-Debug-Pipeline] Build: KMP publish finished next ohpm/hvigor HAP (incremental builds may be faster)
echo - OHOS entry module: %OHOS_KMP_RUN_ENTRY_MODULE%
REM SO packaging end time / HAP build start time
for /f %%t in ('powershell -NoProfile -Command "[int][double]::Parse((Get-Date -UFormat '%%s'))"') do set HAP_START_TIME=%%t
call :record_epoch HAP_START_TIME
REM ====================== HAP build ======================
if not exist "%HARMONY_APP_DIR%" (
...
...
@@ -275,7 +292,8 @@ if "%DEBUG_MODE%"=="debug" (
"%HDC_BIN%" -t %TARGET_ID% shell aa start -a %ABILITY_NAME% -b %BUNDLE_NAME%
)
REM Package push complete time (end time)
call :record_epoch END_TIME
echo ------------------------------------------------------------
echo Build, install and app launch completed!
...
...
@@ -283,21 +301,32 @@ echo.
echo App info:
echo - Bundle: %BUNDLE_NAME%
echo - Device: %TARGET_ID%
set /a ELAPSED=HAP_START_TIME-START_TIME
set /a MINUTES=ELAPSED/60
set /a SECONDS=ELAPSED%%60
echo - SO build time: !MINUTES!m!SECONDS!s (!ELAPSED!s)
set /a ELAPSED=END_TIME-HAP_START_TIME
set /a MINUTES=ELAPSED/60
set /a SECONDS=ELAPSED%%60
echo - HAP package and push time: !MINUTES!m!SECONDS!s (!ELAPSED!s)
set /a ELAPSED=END_TIME-START_TIME
set /a MINUTES=ELAPSED/60
set /a SECONDS=ELAPSED%%60
echo - Total time: !MINUTES!m!SECONDS!s (!ELAPSED!s)
call :emit_phase_times
echo ------------------------------------------------------------
exit /b 0
:record_epoch
for /f "delims=" %%t in ('powershell -NoProfile -Command "[long][DateTimeOffset]::UtcNow.ToUnixTimeSeconds()"') do set "%~1=%%t"
exit /b 0
:emit_phase_times
if not defined START_TIME set "START_TIME=0"
if not defined HAP_START_TIME set "HAP_START_TIME=0"
if not defined END_TIME set "END_TIME=0"
call :emit_one_timing "SO build time" !HAP_START_TIME! !START_TIME!
call :emit_one_timing "HAP package and push time" !END_TIME! !HAP_START_TIME!
call :emit_one_timing "Total time" !END_TIME! !START_TIME!
exit /b 0
:emit_one_timing
set "PHASE_LABEL=%~1"
set /a ELAPSED=%~2-%~3
if !ELAPSED! LSS 0 set /a ELAPSED=0
set /a MINUTES=!ELAPSED!/60
set /a REMAIN_SEC=!ELAPSED!%%60
echo - !PHASE_LABEL!: !MINUTES!m!REMAIN_SEC!s (!ELAPSED!s)
exit /b 0
:show_help
echo Usage: %~nx0 [options] [PLATFORM] [TARGET_ID]
echo.
...
...
@@ -319,3 +348,53 @@ echo %~nx0 -m release
echo %~nx0 -b com.test.app -a MainAbility
echo %~nx0 -p D:\path\to\external\ohos\project
exit /b 0
:resolve_gradle_java_home
set "GRADLE_JAVA_HOME="
set "GRADLE_JDK_RANK=9"
if defined JAVA_HOME call :consider_gradle_jdk "%JAVA_HOME%"
if "!GRADLE_JDK_RANK!"=="0" exit /b 0
for %%R in (
"C:\Program Files\Java"
"C:\Program Files\Eclipse Adoptium"
"C:\Program Files\Microsoft"
"C:\Program Files\Amazon Corretto"
"C:\Program Files\Zulu"
"C:\Program Files\BellSoft"
"%LOCALAPPDATA%\Programs\Eclipse Adoptium"
"%USERPROFILE%\.jdks"
) do (
if exist "%%~R\bin\java.exe" call :consider_gradle_jdk "%%~fR"
if exist "%%~R\" for /d %%D in ("%%~R\*") do call :consider_gradle_jdk "%%~fD"
)
exit /b 0
:consider_gradle_jdk
set "CANDIDATE=%~1"
if "%CANDIDATE%"=="" exit /b 0
if not exist "%CANDIDATE%\bin\java.exe" exit /b 0
for %%I in ("%CANDIDATE%") do set "CANDIDATE_FULL=%%~fI"
for %%I in ("%DEVECO_PATH%\jbr") do set "JBR_FULL=%%~fI"
if /I "%CANDIDATE_FULL%"=="%JBR_FULL%" exit /b 0
set "JAVA_SPEC="
for /f "tokens=3" %%v in ('"%CANDIDATE%\bin\java.exe" -version 2^>^&1') do (
if not defined JAVA_SPEC set "JAVA_SPEC=%%~v"
)
if not defined JAVA_SPEC exit /b 0
set "JAVA_MAJOR="
for /f "tokens=1,2 delims=." %%a in ("%JAVA_SPEC%") do (
if "%%a"=="1" (set "JAVA_MAJOR=%%b") else (set "JAVA_MAJOR=%%a")
)
set "THIS_RANK=9"
if "%JAVA_MAJOR%"=="21" set "THIS_RANK=0"
if "%JAVA_MAJOR%"=="17" set "THIS_RANK=1"
if "%JAVA_MAJOR%"=="22" set "THIS_RANK=2"
if "%JAVA_MAJOR%"=="20" set "THIS_RANK=3"
if "%JAVA_MAJOR%"=="19" set "THIS_RANK=3"
if "%JAVA_MAJOR%"=="18" set "THIS_RANK=3"
if "%THIS_RANK%"=="9" exit /b 0
if %THIS_RANK% LSS %GRADLE_JDK_RANK% (
set "GRADLE_JAVA_HOME=%CANDIDATE%"
set "GRADLE_JDK_RANK=%THIS_RANK%"
)
exit /b 0
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment