From c0c0da2e92c36efcddc4d17062274ab48eb1aa68 Mon Sep 17 00:00:00 2001 From: Thomas Nagy Date: Sun, 3 Apr 2016 11:42:59 +0200 Subject: [PATCH] Set DEFINES=[X=1] with conf.check_cfg(define_name=X) to override the defaults --- tests/config/wscript | 9 +++++++++ waflib/Tools/c_config.py | 8 +++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/tests/config/wscript b/tests/config/wscript index ae0bbdef..d53d21ac 100644 --- a/tests/config/wscript +++ b/tests/config/wscript @@ -91,6 +91,15 @@ def configure(conf): if not isinstance(val, list) or not 'FOO=1' in val: return 'conf.env.DEFINES_UNISTD = %r' % val + @test + def fun6(): + "global_defines=0,define_name=HAVE_FOO -> DEFINES_LIBPNG=['HAVE_FOO=1']" + conf.check_cfg(package='libpng', global_define=0, define_name='HAVE_FOO') + val = conf.env.DEFINES_LIBPNG + if not isinstance(val, list) or not "HAVE_FOO=1" in val: + return 'conf.env.DEFINES_LIBPNG = %r' % val + + if conf.failure: conf.fatal('One or several test failed, check the outputs above') diff --git a/waflib/Tools/c_config.py b/waflib/Tools/c_config.py index a48ae935..0dff9588 100644 --- a/waflib/Tools/c_config.py +++ b/waflib/Tools/c_config.py @@ -266,9 +266,6 @@ def validate_cfg(self, kw): pkgname = kw.get('uselib_store', kw['package'].upper()) kw['define_name'] = self.have_define(pkgname) - if not 'uselib_store' in kw: - self.undefine(kw['define_name']) - if not 'msg' in kw: kw['msg'] = 'Checking for %r' % (kw['package'] or kw['path']) @@ -300,15 +297,16 @@ def exec_cfg(self, kw): path = Utils.to_list(kw['path']) env = self.env.env or None def define_it(): + define_name = kw['define_name'] pkgname = kw.get('uselib_store', kw['package'].upper()) # by default, add HAVE_X to the config.h, else provide DEFINES_X for use=X if kw.get('global_define', 1): self.define(self.have_define(kw['package']), 1, False) else: - self.env.append_unique('DEFINES_%s' % pkgname, "%s=1" % self.have_define(pkgname)) + self.env.append_unique('DEFINES_%s' % pkgname, "%s=1" % define_name) if kw.get('add_have_to_env', 1): - self.env[self.have_define(pkgname)] = 1 + self.env[define_name] = 1 # pkg-config version if 'atleast_pkgconfig_version' in kw: