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>2012-12-14 11:00:09 (GMT)
commit3ce7a270cf2b92b57016a97578412d9ff481cb37 (patch)
tree48138eabbba7373ffc17b3c2cefd0f3ed5c7081f
parente04b49c328255044f4a530be857bbb62373560b6 (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.py20
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:])