summaryrefslogtreecommitdiff
path: root/bscript
diff options
context:
space:
mode:
authorDavid Cournapeau <cournape@gmail.com>2011-05-30 09:10:35 +0900
committerDavid Cournapeau <cournape@gmail.com>2011-08-29 00:32:27 +0200
commit7847043c0003c18b617c8eb1c8cd5ffddcaabd21 (patch)
treeda32745f377afc0a65b8e447c6b2ea43b4965430 /bscript
parentd73761de71e9143ac244d6e8b7a5f9f08e80769c (diff)
downloadnumpy-7847043c0003c18b617c8eb1c8cd5ffddcaabd21.tar.gz
ENH: update to last bento.
Diffstat (limited to 'bscript')
-rw-r--r--bscript34
1 files changed, 20 insertions, 14 deletions
diff --git a/bscript b/bscript
index 671860f15..142532868 100644
--- a/bscript
+++ b/bscript
@@ -1,3 +1,4 @@
+import os
import sys
import shutil
@@ -6,6 +7,9 @@ import shutil
import __builtin__
__builtin__.__NUMPY_SETUP__ = True
+from bento.installed_package_description \
+ import \
+ InstalledSection
from bento.commands import hooks
from bento.commands.extras.waf \
import \
@@ -111,14 +115,28 @@ def process_write_config(self):
raise ValueError("task gen %r expects a 'content' argument" % self.name)
else:
self.env.CONTENT = self.content
+ output = self.path.find_or_declare(self.target)
+ name = getattr(self, "name", None) or self.target
+
+ bento_context = self.bld.bento_context
+ b_output = bento_context.build_node.make_node(output.bldpath())
+ bento_context.outputs_registry.register_outputs(
+ "gen_pymodule", name, [b_output], bento_context.build_node, "$sitedir")
+
tsk = self.create_task("write_module")
- tsk.set_outputs(self.path.find_or_declare(self.target))
+ tsk.set_outputs(output)
return tsk
@hooks.pre_build()
def pre_build(context):
bld = context.waf_context
+ def iregistrer(category, name, nodes, from_node, target_dir):
+ source_dir = os.path.join("$_srcrootdir", from_node.bldpath())
+ files = [n.path_from(from_node) for n in nodes]
+ return InstalledSection.from_source_target_directories(category, name, source_dir, target_dir, files)
+ context.isection_registry.register_category("gen_pymodule", iregistrer)
+ context.outputs_registry.register_category("gen_pymodule", "pythonfiles")
bld(features="gen_pymodule",
target="numpy/__config__.py",
content="""\
@@ -134,20 +152,8 @@ version = ""
""",
always=True)
-@hooks.post_build()
-def post_build(context):
- bld = context.waf_context
- # Poor man's and temporary replacement for in-place build
- if "-i" in sys.argv:
- for g in bld.groups:
- for task_gen in g:
- if "gen_pymodule" in task_gen.features:
- if len(task_gen.tasks) > 0:
- task = task_gen.tasks[0]
- for output in task.outputs:
- if output.is_child_of(bld.bldnode):
- shutil.copy(output.abspath(), output.path_from(bld.bldnode))
+@hooks.startup
def startup(context):
context.register_context("configure", ConfigureWafContext)
context.register_context("build", BuildWafContext)