diff --git a/fdroidserver/build.py b/fdroidserver/build.py index 7c9e70a5..f18b308c 100644 --- a/fdroidserver/build.py +++ b/fdroidserver/build.py @@ -179,14 +179,16 @@ def build_server(app, thisbuild, vcs, build_dir, output_dir, sdk_path): 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... diff --git a/fdroidserver/common.py b/fdroidserver/common.py index e7b62c9d..58d05bb8 100644 --- a/fdroidserver/common.py +++ b/fdroidserver/common.py @@ -843,10 +843,12 @@ class MetaDataException(Exception): # 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': @@ -866,6 +868,8 @@ def getsrclib(spec, extlib_dir, sdk_path): 'update', 'project', '-p', libdir]) != 0: raise BuildException('Error updating ActionBarSherlock project') + if basepath: + return sdir return libdir if name == 'Amazing-ListView': @@ -878,6 +882,8 @@ def getsrclib(spec, extlib_dir, sdk_path): 'update', 'project', '-p', libdir]) != 0: raise BuildException('Error updating Amazing-ListView project') + if basepath: + return sdir return libdir if name == 'ViewPagerIndicator': @@ -890,6 +896,8 @@ def getsrclib(spec, extlib_dir, sdk_path): 'update', 'project', '-p', libdir]) != 0: raise BuildException('Error updating Android-ViewPagerIndicator project') + if basepath: + return sdir return libdir if name == 'UITableView': @@ -902,6 +910,8 @@ def getsrclib(spec, extlib_dir, sdk_path): 'update', 'project', '-p', libdir]) != 0: raise BuildException('Error updating UITableView project') + if basepath: + return sdir return libdir if name == 'ViewPagerTabs': @@ -929,6 +939,8 @@ def getsrclib(spec, extlib_dir, sdk_path): 'update', 'project', '-p', libdir]) != 0: raise BuildException('Error updating ActionBar project') + if basepath: + return sdir return libdir if name == 'ActionBarNW': @@ -941,6 +953,8 @@ def getsrclib(spec, extlib_dir, sdk_path): 'update', 'project', '-p', libdir]) != 0: raise BuildException('Error updating ActionBarNW project') + if basepath: + return sdir return libdir if name == 'FacebookSDK': @@ -953,6 +967,8 @@ def getsrclib(spec, extlib_dir, sdk_path): 'update', 'project', '-p', libdir]) != 0: raise BuildException('Error updating FacebookSDK project') + if basepath: + return sdir return libdir if name == 'OI':