if thisbuild.has_key('srclibs'):
for lib in thisbuild['srclibs'].split(';'):
name, _ = lib.split('@')
- srclibpaths.append((name, common.getsrclib(lib, 'build/extlib', sdk_path)))
+ srclibpaths.append((name, common.getsrclib(lib, 'build/extlib', sdk_path, basepath=True)))
# If one was used for the main source, add that too.
basesrclib = vcs.getsrclib()
if basesrclib:
srclibpaths.append(basesrclib)
- print "Sending srclibs:"
for _, lib in srclibpaths:
+ print "Sending srclib '" + lib + "'"
ftp.chdir('/home/vagrant/build/extlib')
+ if not os.path.exists(lib):
+ raise BuildException("Missing srclib directory '" + lib + "'")
send_dir(lib)
# Execute the build script...
# Get the specified source library.
-# Returns the path to it.
+# Returns the path to it. Normally this is the path to be used when referencing
+# it, which may be a subdirectory of the actual project. If you want the base
+# directory of the project, pass 'basepath=True'.
# TODO: These are currently just hard-coded in this method. It will be a
# metadata-driven system eventually, but not yet.
-def getsrclib(spec, extlib_dir, sdk_path):
+def getsrclib(spec, extlib_dir, sdk_path, basepath=False):
name, ref = spec.split('@')
if name == 'GreenDroid':
'update', 'project', '-p',
libdir]) != 0:
raise BuildException('Error updating ActionBarSherlock project')
+ if basepath:
+ return sdir
return libdir
if name == 'Amazing-ListView':
'update', 'project', '-p',
libdir]) != 0:
raise BuildException('Error updating Amazing-ListView project')
+ if basepath:
+ return sdir
return libdir
if name == 'ViewPagerIndicator':
'update', 'project', '-p',
libdir]) != 0:
raise BuildException('Error updating Android-ViewPagerIndicator project')
+ if basepath:
+ return sdir
return libdir
if name == 'UITableView':
'update', 'project', '-p',
libdir]) != 0:
raise BuildException('Error updating UITableView project')
+ if basepath:
+ return sdir
return libdir
if name == 'ViewPagerTabs':
'update', 'project', '-p',
libdir]) != 0:
raise BuildException('Error updating ActionBar project')
+ if basepath:
+ return sdir
return libdir
if name == 'ActionBarNW':
'update', 'project', '-p',
libdir]) != 0:
raise BuildException('Error updating ActionBarNW project')
+ if basepath:
+ return sdir
return libdir
if name == 'FacebookSDK':
'update', 'project', '-p',
libdir]) != 0:
raise BuildException('Error updating FacebookSDK project')
+ if basepath:
+ return sdir
return libdir
if name == 'OI':