From ce177a4b12f2fef490683e53ccc9ee8f4d3e0bd6 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 12 Jun 2017 08:33:28 +0200 Subject: Add workaround for Clang module import during preprocessing --- build2/utility.ixx | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) (limited to 'build2/utility.ixx') diff --git a/build2/utility.ixx b/build2/utility.ixx index 27db90f..7a706f8 100644 --- a/build2/utility.ixx +++ b/build2/utility.ixx @@ -49,6 +49,13 @@ namespace build2 template inline void + hash_options (sha256& csum, T& s, const variable& var) + { + hash_options (csum, s[var]); + } + + template + inline void append_options (cstrings& args, T& s, const char* var) { append_options (args, s[var]); @@ -63,16 +70,30 @@ namespace build2 template inline void - hash_options (sha256& csum, T& s, const variable& var) + hash_options (sha256& csum, T& s, const char* var) { hash_options (csum, s[var]); } - template inline void - hash_options (sha256& csum, T& s, const char* var) + append_options (cstrings& args, const strings& sv) { - hash_options (csum, s[var]); + if (size_t n = sv.size ()) + append_options (args, sv, n); + } + + inline void + append_options (strings& args, const strings& sv) + { + if (size_t n = sv.size ()) + append_options (args, sv, n); + } + + inline void + hash_options (sha256& csum, const strings& sv) + { + if (size_t n = sv.size ()) + hash_options (csum, sv, n); } template -- cgit v1.1