aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/cc/compile-rule.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2021-05-13 15:38:53 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2021-05-13 15:38:53 +0200
commit23827edd998db30dd1f0d6a14f09399aa7d07b69 (patch)
treead5d7669b167efde8e01894c72d091196f58bcdf /libbuild2/cc/compile-rule.cxx
parentd92ea3a7cff0dae578005a914df799e1e11efc8e (diff)
Add ${c,cxx}.find_system_{header,library}() functions
Diffstat (limited to 'libbuild2/cc/compile-rule.cxx')
-rw-r--r--libbuild2/cc/compile-rule.cxx15
1 files changed, 15 insertions, 0 deletions
diff --git a/libbuild2/cc/compile-rule.cxx b/libbuild2/cc/compile-rule.cxx
index f8529fb..90a6024 100644
--- a/libbuild2/cc/compile-rule.cxx
+++ b/libbuild2/cc/compile-rule.cxx
@@ -175,6 +175,21 @@ namespace build2
throw invalid_argument ("invalid preprocessed value '" + s + "'");
}
+ optional<path> compile_rule::
+ find_system_header (const path& f) const
+ {
+ path p; // Reuse the buffer.
+ for (const dir_path& d: sys_inc_dirs)
+ {
+ if (file_exists ((p = d, p /= f),
+ true /* follow_symlinks */,
+ true /* ignore_errors */))
+ return p;
+ }
+
+ return nullopt;
+ }
+
struct compile_rule::match_data
{
explicit