summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--extras/autowaf.py32
1 files changed, 22 insertions, 10 deletions
diff --git a/extras/autowaf.py b/extras/autowaf.py
index 3ec4437..e76e80e 100644
--- a/extras/autowaf.py
+++ b/extras/autowaf.py
@@ -5,7 +5,7 @@ import sys
import time
from waflib import Configure, ConfigSet, Build, Context, Logs, Options, Utils
-from waflib.TaskGen import feature, before, after
+from waflib.TaskGen import feature, before, after, after_method
NONEMPTY = -10
@@ -27,6 +27,26 @@ def include_config_h(self):
self.env.append_value('INCPATHS', self.bld.bldnode.abspath())
+def _set_system_headers(self, varname):
+ if 'AUTOWAF_SYSTEM_PKGS' in self.env and not self.env.MSVC_COMPILER:
+ for lib in self.uselib:
+ if lib in self.env.AUTOWAF_SYSTEM_PKGS:
+ for include in self.env['INCLUDES_' + lib]:
+ self.env.append_unique(varname, ['-isystem%s' % include])
+
+
+@feature('c')
+@after_method('apply_incpaths')
+def set_system_headers_c(self):
+ _set_system_headers(self, 'CFLAGS')
+
+
+@feature('cxx')
+@after_method('apply_incpaths')
+def set_system_headers_cxx(self):
+ _set_system_headers(self, 'CXXFLAGS')
+
+
class OptionsContext(Options.OptionsContext):
def __init__(self, **kwargs):
super(OptionsContext, self).__init__(**kwargs)
@@ -115,7 +135,6 @@ class ConfigureContext(Configure.ConfigurationContext):
super(ConfigureContext, self).__init__(**kwargs)
self.run_env = ConfigSet.ConfigSet()
- self.system_include_paths = set()
def pre_recurse(self, node):
if len(self.stack_path) == 1:
@@ -124,12 +143,6 @@ class ConfigureContext(Configure.ConfigurationContext):
def store(self):
self.env.AUTOWAF_RUN_ENV = self.run_env.get_merged_dict()
- for path in sorted(self.system_include_paths):
- if 'COMPILER_CC' in self.env:
- self.env.append_value('CFLAGS', ['-isystem', path])
- if 'COMPILER_CXX' in self.env:
- self.env.append_value('CXXFLAGS', ['-isystem', path])
-
super(ConfigureContext, self).store()
def check_pkg(self, *args, **kwargs):
@@ -232,8 +245,7 @@ def check_pkg(conf, spec, **kwargs):
**kwargs)
if not conf.env.MSVC_COMPILER and 'system' in kwargs and kwargs['system']:
- conf.system_include_paths.update(
- conf.env['INCLUDES_' + nameify(uselib_store)])
+ conf.env.append_unique('AUTOWAF_SYSTEM_PKGS', uselib_store)
def normpath(path):