Centralize quoting macro values
This commit is contained in:
parent
3a35179e50
commit
66890d16a7
18
SConstruct
18
SConstruct
|
@ -78,9 +78,13 @@ class ConfigureTests:
|
||||||
if lines[-1].startswith("help:"):
|
if lines[-1].startswith("help:"):
|
||||||
return lines[-1][5:]
|
return lines[-1][5:]
|
||||||
return None
|
return None
|
||||||
|
@staticmethod
|
||||||
|
def _quote_macro_value(v):
|
||||||
|
return v.strip().replace('\n', ' \\\n')
|
||||||
def _check_forced(self,context,name):
|
def _check_forced(self,context,name):
|
||||||
return getattr(self.user_settings, 'sconf_%s' % name)
|
return getattr(self.user_settings, 'sconf_%s' % name)
|
||||||
def _check_macro(self,context,macro_name,macro_value,test,**kwargs):
|
def _check_macro(self,context,macro_name,macro_value,test,**kwargs):
|
||||||
|
macro_value = self._quote_macro_value(macro_value)
|
||||||
r = self.Compile(context, text="""
|
r = self.Compile(context, text="""
|
||||||
#define {macro_name} {macro_value}
|
#define {macro_name} {macro_value}
|
||||||
{test}
|
{test}
|
||||||
|
@ -635,9 +639,9 @@ using std::index_sequence;
|
||||||
"""
|
"""
|
||||||
help:assume compiler supports inheriting constructors
|
help:assume compiler supports inheriting constructors
|
||||||
"""
|
"""
|
||||||
macro_value = '''\\
|
macro_value = self._quote_macro_value('''
|
||||||
typedef B,##__VA_ARGS__ _dxx_constructor_base_type;\\
|
typedef B,##__VA_ARGS__ _dxx_constructor_base_type;
|
||||||
using _dxx_constructor_base_type::_dxx_constructor_base_type;'''
|
using _dxx_constructor_base_type::_dxx_constructor_base_type;''')
|
||||||
if self.Cxx11Compile(context, text=text.format(macro_value=macro_value, **fmtargs), msg='for C++11 inherited constructors'):
|
if self.Cxx11Compile(context, text=text.format(macro_value=macro_value, **fmtargs), msg='for C++11 inherited constructors'):
|
||||||
return macro_value
|
return macro_value
|
||||||
return None
|
return None
|
||||||
|
@ -646,11 +650,11 @@ help:assume compiler supports inheriting constructors
|
||||||
"""
|
"""
|
||||||
help:assume compiler supports variadic template-based constructor forwarding
|
help:assume compiler supports variadic template-based constructor forwarding
|
||||||
"""
|
"""
|
||||||
macro_value = '''\\
|
macro_value = self._quote_macro_value('''
|
||||||
template <typename... Args> \\
|
template <typename... Args>
|
||||||
D(Args&&... args) : \\
|
D(Args&&... args) :
|
||||||
B,##__VA_ARGS__(std::forward<Args>(args)...) {}
|
B,##__VA_ARGS__(std::forward<Args>(args)...) {}
|
||||||
'''
|
''')
|
||||||
if self.Cxx11Compile(context, text='#include <algorithm>\n' + text.format(macro_value=macro_value, **fmtargs), msg='for C++11 variadic templates on constructors'):
|
if self.Cxx11Compile(context, text='#include <algorithm>\n' + text.format(macro_value=macro_value, **fmtargs), msg='for C++11 variadic templates on constructors'):
|
||||||
return macro_value
|
return macro_value
|
||||||
return None
|
return None
|
||||||
|
|
Loading…
Reference in a new issue