aboutsummaryrefslogtreecommitdiff
path: root/build2/utility.ixx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2017-06-12 08:33:28 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2017-06-12 08:33:28 +0200
commitce177a4b12f2fef490683e53ccc9ee8f4d3e0bd6 (patch)
tree34aae6ca8abb182fdf20a59b6ab3a08ef1e1db55 /build2/utility.ixx
parentb01fde82ba1e70af68ac78607daf421334f60cc7 (diff)
Add workaround for Clang module import during preprocessing
Diffstat (limited to 'build2/utility.ixx')
-rw-r--r--build2/utility.ixx29
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>