From 3e789bd6b5c6af90d92b52cc52d073d8fe2262ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Tue, 28 Jan 2014 14:01:32 +0100 Subject: [PATCH] Merge compilesdk= into target=, better documentation about target= --- docs/fdroid.texi | 25 ++++++++++--------------- fdroidserver/build.py | 11 ----------- fdroidserver/common.py | 12 +++++++++++- fdroidserver/metadata.py | 2 +- 4 files changed, 22 insertions(+), 28 deletions(-) diff --git a/docs/fdroid.texi b/docs/fdroid.texi index 56ec8c19..29e94d08 100644 --- a/docs/fdroid.texi +++ b/docs/fdroid.texi @@ -836,22 +836,17 @@ is sdk-location. Typically, if you get a message along the lines of: try enabling this option. @item target= -Specifies a particular SDK target for compilation, overriding the -project.properties of the app and possibly sub-projects. Note that this does -not change the target SDK in the AndroidManifest.xml — the level of features -that can be included in the build. This is likely to cause the whole build.xml -to be rewritten, which is fine if it's a 'standard' android file or doesn't -already exist, but not a good idea if it's heavily customised. If you get an -error about invalid target, first try @code{init=rm -rf bin/}; otherwise this -parameter should do the trick. +Specifies a particular SDK target for compilation, overriding the value +defined in the code by upstream. This has different effects depending on what +build system used — this flag currently affects ant, maven and gradle projects +only. Note that this does not change the target SDK in the +AndroidManifest.xml, which determines the level of features that can be +included in the build. -Please note that gradle builds should be using compilesdk=. - -@item compilesdk= -Practically accomplishes the same that target= does when used in ant and maven -projects. compilesdk= is used rather than target= so as to not cause any more -confusion. It only takes effect on gradle builds in the build.gradle file, -thus using it in any other case is not wise. +In the case of an ant project, it modifies project.properties of the app and +possibly sub-projects. This is likely to cause the whole build.xml to be +rewritten, which is fine if it's a 'standard' android file or doesn't already +exist, but not a good idea if it's heavily customised. @item update=xxx By default, 'android update project' is used to generate or update the diff --git a/fdroidserver/build.py b/fdroidserver/build.py index c2581f9a..170c2c05 100644 --- a/fdroidserver/build.py +++ b/fdroidserver/build.py @@ -595,17 +595,6 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d flavours = thisbuild['gradle'].split(',') gradle_dir = root_dir - - if 'compilesdk' in thisbuild: - level = thisbuild["compilesdk"].split('-')[1] - subprocess.call(['sed', '-i', - 's@compileSdkVersion[ ]*[0-9]*@compileSdkVersion '+level+'@g', - 'build.gradle'], cwd=root_dir) - if '@' in thisbuild['gradle']: - subprocess.call(['sed', '-i', - 's@compileSdkVersion[ ]*[0-9]*@compileSdkVersion '+level+'@g', - 'build.gradle'], cwd=gradle_dir) - if len(flavours) == 1 and flavours[0] in ['main', 'yes', '']: flavours[0] = '' diff --git a/fdroidserver/common.py b/fdroidserver/common.py index 954a67f6..718e66e8 100644 --- a/fdroidserver/common.py +++ b/fdroidserver/common.py @@ -937,7 +937,7 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver= # Generate (or update) the ant build file, build.xml... - if (updatemode != 'no' and build['type'] == 'ant'): + if updatemode != 'no' and build['type'] == 'ant': parms = [os.path.join(config['sdk_path'], 'tools', 'android'), 'update', 'project'] if 'target' in build and build['target']: @@ -1013,6 +1013,16 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver= if flavour in ['main', 'yes', '']: flavour = None + if 'target' in thisbuild: + n = thisbuild["target"].split('-')[1] + subprocess.call(['sed', '-i', + 's@compileSdkVersion[ ]*[0-9]*@compileSdkVersion '+n+'@g', + 'build.gradle'], cwd=root_dir) + if '@' in thisbuild['gradle']: + subprocess.call(['sed', '-i', + 's@compileSdkVersion[ ]*[0-9]*@compileSdkVersion '+n+'@g', + 'build.gradle'], cwd=gradle_dir) + # Remove forced debuggable flags print "Removing debuggable flags..." for path in manifest_paths(root_dir, flavour): diff --git a/fdroidserver/metadata.py b/fdroidserver/metadata.py index 552a338e..f3108b56 100644 --- a/fdroidserver/metadata.py +++ b/fdroidserver/metadata.py @@ -698,7 +698,7 @@ def write_metadata(dest, app): # This defines the preferred order for the build items - as in the # manual, they're roughly in order of application. keyorder = ['disable', 'commit', 'subdir', 'submodules', 'init', - 'gradle', 'maven', 'oldsdkloc', 'target', 'compilesdk', + 'gradle', 'maven', 'oldsdkloc', 'target', 'update', 'encoding', 'forceversion', 'forcevercode', 'rm', 'fixtrans', 'fixapos', 'extlibs', 'srclibs', 'patch', 'prebuild', 'scanignore', 'scandelete', 'build', 'buildjni',