aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/cc/common.ixx
diff options
context:
space:
mode:
Diffstat (limited to 'libbuild2/cc/common.ixx')
-rw-r--r--libbuild2/cc/common.ixx34
1 files changed, 34 insertions, 0 deletions
diff --git a/libbuild2/cc/common.ixx b/libbuild2/cc/common.ixx
new file mode 100644
index 0000000..ce28890
--- /dev/null
+++ b/libbuild2/cc/common.ixx
@@ -0,0 +1,34 @@
+// file : libbuild2/cc/common.ixx -*- C++ -*-
+// license : MIT; see accompanying LICENSE file
+
+namespace build2
+{
+ namespace cc
+ {
+ inline const scope* data::
+ effective_internal_scope (const scope& bs) const
+ {
+ if (internal_scope == nullptr)
+ return nullptr;
+ else
+ {
+ const string& s (*internal_scope);
+
+ if (s == "current")
+ return internal_scope_current;
+ else if (s == "base")
+ return &bs;
+ else if (s == "root")
+ return bs.root_scope ();
+ else if (s == "bundle")
+ return bs.bundle_scope ();
+ else if (s == "strong")
+ return bs.strong_scope ();
+ else if (s == "weak")
+ return bs.weak_scope ();
+ else
+ return nullptr;
+ }
+ }
+ }
+}