diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2017-06-12 08:33:28 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2017-06-12 08:33:28 +0200 |
commit | ce177a4b12f2fef490683e53ccc9ee8f4d3e0bd6 (patch) | |
tree | 34aae6ca8abb182fdf20a59b6ab3a08ef1e1db55 /build2/utility.ixx | |
parent | b01fde82ba1e70af68ac78607daf421334f60cc7 (diff) |
Add workaround for Clang module import during preprocessing
Diffstat (limited to 'build2/utility.ixx')
-rw-r--r-- | build2/utility.ixx | 29 |
1 files changed, 25 insertions, 4 deletions
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 <typename T> inline void + hash_options (sha256& csum, T& s, const variable& var) + { + hash_options (csum, s[var]); + } + + template <typename T> + inline void append_options (cstrings& args, T& s, const char* var) { append_options (args, s[var]); @@ -63,16 +70,30 @@ namespace build2 template <typename T> 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 <typename T> 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 <typename T> |