bindir = os.path.join(root_dir, 'bin')
- if p.returncode != 0:
+ if p is not None and p.returncode != 0:
raise BuildException("Build failed for %s:%s" % (app['id'], thisbuild['version']), p.stdout)
print "Successfully built version " + thisbuild['version'] + ' of ' + app['id']
src = re.match(r".*^.*Creating (.+) for release.*$.*", stdout_apk,
re.S|re.M).group(1)
src = os.path.join(bindir, src)
+ elif thisbuild['type'] == 'raw':
+ src = os.path.join(root_dir, thisbuild['output'])
+ src = os.path.normpath(src)
# Make sure it's not debuggable...
if common.isApkDebuggable(src, config):
for t in ['maven', 'gradle', 'kivy']:
if build.get(t, 'no') != 'no':
return t
+ if 'output' in build:
+ return 'raw'
return 'ant'
thisinfo = {}
# 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',
+ 'gradle', 'maven', 'output', 'oldsdkloc', 'target',
'update', 'encoding', 'forceversion', 'forcevercode', 'rm',
'fixtrans', 'fixapos', 'extlibs', 'srclibs', 'patch',
'prebuild', 'scanignore', 'scandelete', 'build', 'buildjni',