Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Narvaez <dwnarvaez@gmail.com>2012-12-05 23:14:14 (GMT)
committer Daniel Narvaez <dwnarvaez@gmail.com>2013-04-09 09:36:49 (GMT)
commitc5f30a9fbe059bda46e663821e16c70bfaeb469f (patch)
treeaba78bcb0c61869479ced4dec22dd77fa574af24
parent07d593fe524ee0c358021f2599a8f00690dd81a1 (diff)
Support out of source directory builds
It works similarly to automake. The current working directory is used as build directory.
-rw-r--r--src/sugar3/activity/bundlebuilder.py18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/sugar3/activity/bundlebuilder.py b/src/sugar3/activity/bundlebuilder.py
index 6877436..995b0ad 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()
@@ -119,7 +120,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)
@@ -218,7 +219,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):
@@ -328,6 +329,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)
@@ -394,7 +397,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:])