diff options
author | Daniel Narvaez <dwnarvaez@gmail.com> | 2012-12-05 23:14:14 (GMT) |
---|---|---|
committer | Daniel Narvaez <dwnarvaez@gmail.com> | 2012-12-14 11:00:09 (GMT) |
commit | 3ce7a270cf2b92b57016a97578412d9ff481cb37 (patch) | |
tree | 48138eabbba7373ffc17b3c2cefd0f3ed5c7081f | |
parent | e04b49c328255044f4a530be857bbb62373560b6 (diff) |
Support out of source directory buildsout-of-source
It works similarly to automake. The current working directory
is used as build directory.
-rw-r--r-- | src/sugar3/activity/bundlebuilder.py | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/src/sugar3/activity/bundlebuilder.py b/src/sugar3/activity/bundlebuilder.py index 6799467..8c22762 100644 --- a/src/sugar3/activity/bundlebuilder.py +++ b/src/sugar3/activity/bundlebuilder.py @@ -64,9 +64,10 @@ def list_files(base_dir, ignore_dirs=None, ignore_files=None): class Config(object): - def __init__(self): - self.source_dir = os.getcwd() - self.dist_dir = os.path.join(self.source_dir, 'dist') + def __init__(self, source_dir): + self.source_dir = source_dir + self.build_dir = os.getcwd() + self.dist_dir = os.path.join(self.build_dir, 'dist') self.bundle = None self.version = None self.activity_name = None @@ -97,7 +98,7 @@ class Builder(object): def __init__(self, config): self.config = config - self.locale_dir = os.path.join(self.config.source_dir, 'locale') + self.locale_dir = os.path.join(self.config.build_dir, 'locale') def build(self): self.build_locale() @@ -109,7 +110,7 @@ class Builder(object): logging.warn('Missing po/ dir, cannot build_locale') return - locale_dir = os.path.join(self.config.source_dir, 'locale') + locale_dir = os.path.join(self.config.build_dir, 'locale') if os.path.exists(self.locale_dir): shutil.rmtree(self.locale_dir) @@ -121,7 +122,7 @@ class Builder(object): file_name = os.path.join(po_dir, f) lang = f[:-3] - localedir = os.path.join(self.config.source_dir, 'locale', lang) + localedir = os.path.join(self.config.build_dir, 'locale', lang) mo_path = os.path.join(localedir, 'LC_MESSAGES') if not os.path.isdir(mo_path): os.makedirs(mo_path) @@ -220,7 +221,7 @@ class SourcePackager(Packager): class Installer(Packager): def __init__(self, builder): - self.config = builder.config + Packager.__init__(self, builder.config) self.builder = builder def install(self, prefix): @@ -330,6 +331,8 @@ def cmd_genpot(config, args): print 'Usage: %prog genpot' return + os.chdir(config.source_dir) + po_path = os.path.join(config.source_dir, 'po') if not os.path.isdir(po_path): os.mkdir(po_path) @@ -396,7 +399,8 @@ def start(): parser.disable_interspersed_args() (options_, args) = parser.parse_args() - config = Config() + source_dir = os.path.abspath(os.path.dirname(sys.argv[0])) + config = Config(source_dir) try: globals()['cmd_' + args[0]](config, args[1:]) |