@@ -205,7 +205,7 @@ $manifest = @{
205205 cmake = ' 3.23.0+' ;
206206 ninja = ' 1.10.0+' ;
207207 python = ' 3.8.0+' ;
208- jdk = ' 11 .0.23 +' ;
208+ jdk = ' 17 .0.10 +' ; # jdk17+ works for android cmdlinetools 7.0+
209209 emsdk = ' 3.1.53+' ;
210210 cmdlinetools = ' 7.0+' ; # android cmdlinetools
211211}
@@ -225,7 +225,7 @@ $cmake_generators = @{
225225$channels = @ {}
226226
227227# refer to: https://developer.android.com/studio#command-line-tools-only
228- $cmdlinetools_rev = ' 11076708'
228+ $cmdlinetools_rev = ' 11076708' # 12.0
229229
230230$android_sdk_tools = @ {
231231 ' build-tools' = ' 34.0.0'
@@ -567,29 +567,31 @@ function find_prog($name, $path = $null, $mode = 'ONLY', $cmd = $null, $params =
567567
568568 # try get match expr and preferred ver
569569 $checkVerCond = $null
570- $requiredMin = ' '
570+ $minimalVer = ' '
571571 $preferredVer = ' '
572572 $requiredVer = $manifest [$name ]
573573 if ($requiredVer ) {
574574 $preferredVer = $null
575- if ($requiredVer.EndsWith (' +' )) {
576- $preferredVer = $requiredVer.TrimEnd (' +' )
577- $checkVerCond = ' $(version_ge $foundVer $preferredVer)'
578- }
579- elseif ($requiredVer -eq ' *' ) {
575+ if ($requiredVer -eq ' *' ) {
580576 $checkVerCond = ' $True'
581577 $preferredVer = ' latest'
582578 }
583579 else {
584580 $verArr = $requiredVer.Split (' ~' )
585581 $isRange = $verArr.Count -gt 1
582+ $minimalVer = $verArr [0 ]
586583 $preferredVer = $verArr [$isRange ]
587- if ($isRange -gt 1 ) {
588- $requiredMin = $verArr [0 ]
589- $checkVerCond = ' $(version_in_range $foundVer $requiredMin $preferredVer)'
590- }
591- else {
592- $checkVerCond = ' $(version_eq $foundVer $preferredVer)'
584+ if ($preferredVer.EndsWith (' +' )) {
585+ $preferredVer = $preferredVer.TrimEnd (' +' )
586+ if ($minimalVer.EndsWith (' +' )) { $minimalVer = $minimalVer.TrimEnd (' +' ) }
587+ $checkVerCond = ' $(version_ge $foundVer $minimalVer)'
588+ } else {
589+ if ($isRange ) {
590+ $checkVerCond = ' $(version_in_range $foundVer $minimalVer $preferredVer)'
591+ }
592+ else {
593+ $checkVerCond = ' $(version_eq $foundVer $preferredVer)'
594+ }
593595 }
594596 }
595597 if (! $checkVerCond ) {
@@ -623,7 +625,7 @@ function find_prog($name, $path = $null, $mode = 'ONLY', $cmd = $null, $params =
623625 else {
624626 $foundVer = " $ ( $cmd_info.Version ) "
625627 }
626- [void ]$requiredMin
628+ [void ]$minimalVer
627629 if ($checkVerCond ) {
628630 $matched = Invoke-Expression $checkVerCond
629631 if ($matched ) {
@@ -1662,33 +1664,6 @@ if (!$setupOnly) {
16621664
16631665 # determine generator, build_dir, inst_dir for non gradlew projects
16641666 if (! $is_gradlew ) {
1665- if (! $cmake_generator -and ! $TARGET_OS.StartsWith (' win' )) {
1666- $cmake_generator = $cmake_generators [$TARGET_OS ]
1667- if ($null -eq $cmake_generator ) {
1668- $cmake_generator = if (! $IsWin ) { ' Unix Makefiles' } else { ' Ninja' }
1669- }
1670- }
1671-
1672- if ($cmake_generator ) {
1673- $using_ninja = $cmake_generator.StartsWith (' Ninja' )
1674-
1675- if (! $is_wasm ) {
1676- $CONFIG_ALL_OPTIONS += ' -G' , $cmake_generator
1677- }
1678-
1679- if ($cmake_generator -eq ' Unix Makefiles' -or $using_ninja ) {
1680- $CONFIG_ALL_OPTIONS += " -DCMAKE_BUILD_TYPE=$optimize_flag "
1681- }
1682-
1683- if ($using_ninja -and $Global :is_android ) {
1684- $CONFIG_ALL_OPTIONS += " -DCMAKE_MAKE_PROGRAM=$ninja_prog "
1685- }
1686-
1687- if ($cmake_generator -eq ' Xcode' ) {
1688- setup_xcode
1689- }
1690- }
1691-
16921667 $INST_DIR = $null
16931668 $xopt_presets = 0
16941669 $xprefix_optname = ' -DCMAKE_INSTALL_PREFIX='
@@ -1714,6 +1689,15 @@ if (!$setupOnly) {
17141689 }
17151690 ++ $xopt_presets
17161691 }
1692+ elseif ($opt.startsWith (' -G' )) {
1693+ if ($opt.Length -gt 2 ) {
1694+ $cmake_generator = $opt.Substring (2 ).Trim()
1695+ }
1696+ elseif (++ $opti -lt $xopts.Count ) {
1697+ $cmake_generator = $xopts [$opti ]
1698+ }
1699+ ++ $xopt_presets
1700+ }
17171701 elseif ($opt.StartsWith ($xprefix_optname )) {
17181702 ++ $xopt_presets
17191703 $INST_DIR = $opt.SubString ($xprefix_optname.Length )
@@ -1723,6 +1707,33 @@ if (!$setupOnly) {
17231707 }
17241708 }
17251709
1710+ if (! $cmake_generator -and ! $TARGET_OS.StartsWith (' win' )) {
1711+ $cmake_generator = $cmake_generators [$TARGET_OS ]
1712+ if ($null -eq $cmake_generator ) {
1713+ $cmake_generator = if (! $IsWin ) { ' Unix Makefiles' } else { ' Ninja' }
1714+ }
1715+ }
1716+
1717+ if ($cmake_generator ) {
1718+ $using_ninja = $cmake_generator.StartsWith (' Ninja' )
1719+
1720+ if (! $is_wasm ) {
1721+ $CONFIG_ALL_OPTIONS += ' -G' , $cmake_generator
1722+ }
1723+
1724+ if ($cmake_generator -eq ' Unix Makefiles' -or $using_ninja ) {
1725+ $CONFIG_ALL_OPTIONS += " -DCMAKE_BUILD_TYPE=$optimize_flag "
1726+ }
1727+
1728+ if ($using_ninja -and $Global :is_android ) {
1729+ $CONFIG_ALL_OPTIONS += " -DCMAKE_MAKE_PROGRAM=$ninja_prog "
1730+ }
1731+
1732+ if ($cmake_generator -eq ' Xcode' ) {
1733+ setup_xcode
1734+ }
1735+ }
1736+
17261737 if (! $BUILD_DIR ) {
17271738 $BUILD_DIR = resolve_out_dir ' build_'
17281739 }
0 commit comments