From 7b8842b619a6b7eb235c2073d295571075f9fe5c Mon Sep 17 00:00:00 2001 From: Ryan Dahl Date: Sun, 4 Oct 2009 11:50:53 +0200 Subject: [PATCH] Modify node_addon configure api --- doc/api.txt | 1 - tools/wafadmin/Tools/node_addon.py | 20 ++++++++++++-------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/doc/api.txt b/doc/api.txt index 547d8aebdb8..07708ef0dab 100644 --- a/doc/api.txt +++ b/doc/api.txt @@ -1324,7 +1324,6 @@ def set_options(opt): def configure(conf): conf.check_tool('compiler_cxx') conf.check_tool('node_addon') - conf.check_node_headers() def build(bld): obj = bld.new_task_gen('cxx', 'shlib', 'node_addon') diff --git a/tools/wafadmin/Tools/node_addon.py b/tools/wafadmin/Tools/node_addon.py index 6372d0b812a..4fa1e006d1d 100644 --- a/tools/wafadmin/Tools/node_addon.py +++ b/tools/wafadmin/Tools/node_addon.py @@ -1,14 +1,14 @@ import os import TaskGen, Utils, Utils, Runner, Options, Build from TaskGen import extension, taskgen, before, after, feature -from Configure import conf +from Configure import conf, conftest @taskgen @before('apply_incpaths', 'apply_lib_vars', 'apply_type_vars') @feature('node_addon') @before('apply_bundle') def init_node_addon(self): - self.default_install_path = '${PREFIX}/lib/node/libraries' + self.default_install_path = '${PREFIX_NODE}/lib/node/libraries' self.uselib = self.to_list(getattr(self, 'uselib', '')) if not 'NODE' in self.uselib: self.uselib.append('NODE') self.env['MACBUNDLE'] = True @@ -20,15 +20,19 @@ def init_node_addon(self): def node_addon_shlib_ext(self): self.env['shlib_PATTERN'] = "%s.node" -@conf -def check_node_headers(conf): +def detect(conf): join = os.path.join - wafadmin = join(os.path.dirname(__file__), '..') - libnode = join(wafadmin, '..') - lib = join(libnode, '..') - prefix = join(lib, '..') + abspath = os.path.abspath + wafadmin = abspath(join(os.path.dirname(__file__), '..')) + libnode = abspath(join(wafadmin, '..')) + lib = abspath(join(libnode, '..')) + prefix = abspath(join(lib, '..')) + + conf.env['PREFIX_NODE'] = prefix conf.env['LIBPATH_NODE'] = lib conf.env['CPPPATH_NODE'] = join(prefix, 'include/node') conf.env['CPPFLAGS_NODE'] = '-D_GNU_SOURCE' conf.env['CPPFLAGS_NODE'] = '-DEV_MULTIPLICITY=0' + found = os.path.exists(join(prefix, "bin/node")) + conf.check_message('node prefix', '', found, prefix)