44from __future__ import print_function
55from os .path import (
66 dirname , join , isfile , realpath , relpath , split , exists , basename )
7- from os import makedirs
7+ from os import makedirs , remove , listdir
88import os
99import tarfile
1010import time
1111import subprocess
1212import shutil
1313from zipfile import ZipFile
1414import sys
15+ from distutils .version import LooseVersion
1516
1617from fnmatch import fnmatch
1718
@@ -334,6 +335,21 @@ def make_package(args):
334335 sticky = sticky ,
335336 service_id = sid + 1 )
336337
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+
337353 render (
338354 'AndroidManifest.tmpl.xml' ,
339355 'src/main/AndroidManifest.xml' ,
@@ -342,6 +358,14 @@ def make_package(args):
342358 service_names = service_names ,
343359 url_scheme = url_scheme )
344360
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+
345369 render (
346370 'strings.tmpl.xml' ,
347371 'src/main/res/values/strings.xml' ,
@@ -354,7 +378,9 @@ def make_package(args):
354378 'build.tmpl.gradle' ,
355379 'build.gradle' ,
356380 args = args ,
357- aars = aars )
381+ aars = aars ,
382+ android_api = android_api ,
383+ build_tools_version = build_tools_version )
358384
359385 ## ant build templates
360386 render (
@@ -454,9 +480,11 @@ def parse_args(args=None):
454480 ap .add_argument ('--depend' , dest = 'depends' , action = 'append' ,
455481 help = ('Add a external dependency '
456482 '(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'))
460488 ap .add_argument ('--minsdk' , dest = 'min_sdk_version' ,
461489 default = default_android_api , type = int ,
462490 help = ('Minimum Android SDK version to use. Default to '
@@ -487,8 +515,8 @@ def parse_args(args=None):
487515 if args .name and args .name [0 ] == '"' and args .name [- 1 ] == '"' :
488516 args .name = args .name [1 :- 1 ]
489517
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
492520
493521 if args .permissions is None :
494522 args .permissions = []
0 commit comments