Make maven executable path accessible in prebuild/init

This commit is contained in:
Ciaran Gultnieks 2012-10-01 13:19:00 +01:00
parent 372cd28881
commit d302c669bd
4 changed files with 15 additions and 14 deletions

View file

@ -772,15 +772,15 @@ particular, literal backslashes should not be escaped.
You can use $$name$$ to substitute the path to a referenced srclib - see You can use $$name$$ to substitute the path to a referenced srclib - see
the @code{srclib} directory for details of this. the @code{srclib} directory for details of this.
You can use $$SDK$$ and $$NDK$$ to substitute the paths to the android You can use $$SDK$$, $$NDK$$ and $$MVN3$$ to substitute the paths to the
SDK and NDK directories respectively. android SDK and NDK directories, and maven 3 executable respectively.
@item init=xxxx @item init=xxxx
As for 'prebuild', but runs on the source code BEFORE any other processing As for 'prebuild', but runs on the source code BEFORE any other processing
takes place. takes place.
You can use $$SDK$$ and $$NDK$$ to substitute the paths to the android You can use $$SDK$$, $$NDK$$ and $$MVN3$$ to substitute the paths to the
SDK and NDK directories respectively. android SDK and NDK directories, and maven 3 executable respectively.
@item novcheck=yes @item novcheck=yes
Don't check that the version name and code in the resulting apk are Don't check that the version name and code in the resulting apk are

View file

@ -259,7 +259,7 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, extlib_dir, tmp_dir,
# Prepare the source code... # Prepare the source code...
root_dir = common.prepare_source(vcs, app, thisbuild, root_dir = common.prepare_source(vcs, app, thisbuild,
build_dir, extlib_dir, sdk_path, ndk_path, build_dir, extlib_dir, sdk_path, ndk_path,
javacc_path, verbose) javacc_path, mvn3, verbose)
# Scan before building... # Scan before building...
buildprobs = common.scan_source(build_dir, root_dir, thisbuild) buildprobs = common.scan_source(build_dir, root_dir, thisbuild)
@ -505,9 +505,8 @@ def main():
global options global options
# Read configuration... # Read configuration...
global build_server_always, mvn3 globals()['build_server_always'] = False
build_server_always = False globals()['mvn3'] = "mvn3"
mvn3 = "mvn3"
execfile('config.py', globals()) execfile('config.py', globals())
options, args = parse_commandline() options, args = parse_commandline()
if build_server_always: if build_server_always:

View file

@ -867,6 +867,7 @@ class MetaDataException(Exception):
# TODO: These are currently just hard-coded in this method. It will be a # TODO: These are currently just hard-coded in this method. It will be a
# metadata-driven system eventually, but not yet. # metadata-driven system eventually, but not yet.
def getsrclib(spec, extlib_dir, sdk_path, basepath=False): def getsrclib(spec, extlib_dir, sdk_path, basepath=False):
name, ref = spec.split('@') name, ref = spec.split('@')
if name == 'GreenDroid': if name == 'GreenDroid':
@ -1016,8 +1017,6 @@ def getsrclib(spec, extlib_dir, sdk_path, basepath=False):
vcs = getvcs('git', vcs = getvcs('git',
'https://code.google.com/r/andreasschildbach-bitcoinj/', sdir, sdk_path) 'https://code.google.com/r/andreasschildbach-bitcoinj/', sdir, sdk_path)
vcs.gotorevision(ref) vcs.gotorevision(ref)
if subprocess.call([mvn3, 'install'], cwd=sdir) != 0:
raise BuildException("Maven build failed for BitcoinJWallet srclib")
return sdir return sdir
if name == 'Color-Picker': if name == 'Color-Picker':
@ -1112,10 +1111,11 @@ def getsrclib(spec, extlib_dir, sdk_path, basepath=False):
# 'sdk_path' - the path to the Android SDK # 'sdk_path' - the path to the Android SDK
# 'ndk_path' - the path to the Android NDK # 'ndk_path' - the path to the Android NDK
# 'javacc_path' - the path to javacc # 'javacc_path' - the path to javacc
# 'mvn3' - the path to the maven 3 executable
# 'verbose' - optional: verbose or not (default=False) # 'verbose' - optional: verbose or not (default=False)
# Returns the root directory, which may be the same as 'build_dir' or may # Returns the root directory, which may be the same as 'build_dir' or may
# be a subdirectory of it. # be a subdirectory of it.
def prepare_source(vcs, app, build, build_dir, extlib_dir, sdk_path, ndk_path, javacc_path, verbose=False): def prepare_source(vcs, app, build, build_dir, extlib_dir, sdk_path, ndk_path, javacc_path, mvn3, verbose=False):
# Optionally, the actual app source can be in a subdirectory... # Optionally, the actual app source can be in a subdirectory...
if build.has_key('subdir'): if build.has_key('subdir'):
@ -1142,6 +1142,7 @@ def prepare_source(vcs, app, build, build_dir, extlib_dir, sdk_path, ndk_path, j
init = build['init'] init = build['init']
init = init.replace('$$SDK$$', sdk_path) init = init.replace('$$SDK$$', sdk_path)
init = init.replace('$$NDK$$', ndk_path) init = init.replace('$$NDK$$', ndk_path)
init = init.replace('$$MVN$$', mvn3)
if verbose: print "Doing init: exec '%s' in '%s'"%(init,root_dir) if verbose: print "Doing init: exec '%s' in '%s'"%(init,root_dir)
if subprocess.call(init, cwd=root_dir, shell=True) != 0: if subprocess.call(init, cwd=root_dir, shell=True) != 0:
raise BuildException("Error running init command") raise BuildException("Error running init command")
@ -1321,6 +1322,7 @@ def prepare_source(vcs, app, build, build_dir, extlib_dir, sdk_path, ndk_path, j
prebuild = prebuild.replace('$$' + name + '$$', libpath) prebuild = prebuild.replace('$$' + name + '$$', libpath)
prebuild = prebuild.replace('$$SDK$$', sdk_path) prebuild = prebuild.replace('$$SDK$$', sdk_path)
prebuild = prebuild.replace('$$NDK$$', ndk_path) prebuild = prebuild.replace('$$NDK$$', ndk_path)
prebuild = prebuild.replace('$$MVN3$$', mvn3)
p = subprocess.Popen(prebuild, cwd=root_dir, shell=True, p = subprocess.Popen(prebuild, cwd=root_dir, shell=True,
stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = p.communicate() out, err = p.communicate()

View file

@ -35,8 +35,8 @@ def main():
# Read configuration... # Read configuration...
global build_server_always, mvn3 global build_server_always, mvn3
build_server_always = False globals()['build_server_always'] = False
mvn3 = "mvn3" globals()['mvn3'] = "mvn3"
execfile('config.py', globals()) execfile('config.py', globals())
@ -99,7 +99,7 @@ def main():
# Prepare the source code... # Prepare the source code...
root_dir = common.prepare_source(vcs, app, thisbuild, root_dir = common.prepare_source(vcs, app, thisbuild,
build_dir, extlib_dir, sdk_path, ndk_path, javacc_path, options.verbose) build_dir, extlib_dir, sdk_path, ndk_path, javacc_path, mvn3, options.verbose)
# Do the scan... # Do the scan...
buildprobs = common.scan_source(build_dir, root_dir, thisbuild) buildprobs = common.scan_source(build_dir, root_dir, thisbuild)