4
4
from __future__ import print_function
5
5
from os .path import (
6
6
dirname , join , isfile , realpath , relpath , split , exists , basename )
7
- from os import makedirs
7
+ from os import makedirs , remove , listdir
8
8
import os
9
9
import tarfile
10
10
import time
11
11
import subprocess
12
12
import shutil
13
13
from zipfile import ZipFile
14
14
import sys
15
+ from distutils .version import LooseVersion
15
16
16
17
from fnmatch import fnmatch
17
18
@@ -334,6 +335,21 @@ def make_package(args):
334
335
sticky = sticky ,
335
336
service_id = sid + 1 )
336
337
338
+ # Find the SDK directory and target API
339
+ with open ('project.properties' , 'r' ) as fileh :
340
+ target = fileh .read ().strip ()
341
+ android_api = target .split ('-' )[1 ]
342
+ with open ('local.properties' , 'r' ) as fileh :
343
+ sdk_dir = fileh .read ().strip ()
344
+ sdk_dir = sdk_dir [8 :]
345
+
346
+ # Try to build with the newest available build tools
347
+ build_tools_versions = listdir (join (sdk_dir , 'build-tools' ))
348
+ build_tools_versions = sorted (build_tools_versions ,
349
+ key = LooseVersion )
350
+ build_tools_version = build_tools_versions [- 1 ]
351
+
352
+
337
353
render (
338
354
'AndroidManifest.tmpl.xml' ,
339
355
'src/main/AndroidManifest.xml' ,
@@ -342,6 +358,14 @@ def make_package(args):
342
358
service_names = service_names ,
343
359
url_scheme = url_scheme )
344
360
361
+ # Copy the AndroidManifest.xml to the dist root dir so that ant
362
+ # can also use it
363
+ if exists ('AndroidManifest.xml' ):
364
+ remove ('AndroidManifest.xml' )
365
+ shutil .copy (join ('src' , 'main' , 'AndroidManifest.xml' ),
366
+ 'AndroidManifest.xml' )
367
+
368
+
345
369
render (
346
370
'strings.tmpl.xml' ,
347
371
'src/main/res/values/strings.xml' ,
@@ -354,7 +378,9 @@ def make_package(args):
354
378
'build.tmpl.gradle' ,
355
379
'build.gradle' ,
356
380
args = args ,
357
- aars = aars )
381
+ aars = aars ,
382
+ android_api = android_api ,
383
+ build_tools_version = build_tools_version )
358
384
359
385
## ant build templates
360
386
render (
@@ -454,9 +480,11 @@ def parse_args(args=None):
454
480
ap .add_argument ('--depend' , dest = 'depends' , action = 'append' ,
455
481
help = ('Add a external dependency '
456
482
'(eg: com.android.support:appcompat-v7:19.0.1)' ))
457
- ap .add_argument ('--sdk' , dest = 'sdk_version' , default = - 1 ,
458
- type = int , help = ('Android SDK version to use. Default to '
459
- 'the value of minsdk' ))
483
+ ## The --sdk option has been removed, it is ignored in favour of
484
+ ## --android-api handled by toolchain.py
485
+ # ap.add_argument('--sdk', dest='sdk_version', default=-1,
486
+ # type=int, help=('Android SDK version to use. Default to '
487
+ # 'the value of minsdk'))
460
488
ap .add_argument ('--minsdk' , dest = 'min_sdk_version' ,
461
489
default = default_android_api , type = int ,
462
490
help = ('Minimum Android SDK version to use. Default to '
@@ -487,8 +515,8 @@ def parse_args(args=None):
487
515
if args .name and args .name [0 ] == '"' and args .name [- 1 ] == '"' :
488
516
args .name = args .name [1 :- 1 ]
489
517
490
- if args .sdk_version == - 1 :
491
- args .sdk_version = args .min_sdk_version
518
+ # if args.sdk_version == -1:
519
+ # args.sdk_version = args.min_sdk_version
492
520
493
521
if args .permissions is None :
494
522
args .permissions = []
0 commit comments