aboutsummaryrefslogtreecommitdiff
path: root/build2/cc
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2018-05-25 11:48:37 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2018-05-25 11:48:37 +0200
commitd69e09acb570030a56566739569867139f5d1f4b (patch)
tree94f21ae804595ce134a107c8f185d89747d48967 /build2/cc
parent5e2c26176cf48b65103251186a2bf321eda069a9 (diff)
Change default install filter to only accept prerequisites from amalgamation
Diffstat (limited to 'build2/cc')
-rw-r--r--build2/cc/install-rule.cxx2
-rw-r--r--build2/cc/pkgconfig.cxx19
2 files changed, 12 insertions, 9 deletions
diff --git a/build2/cc/install-rule.cxx b/build2/cc/install-rule.cxx
index eda6ba0..a7e05b0 100644
--- a/build2/cc/install-rule.cxx
+++ b/build2/cc/install-rule.cxx
@@ -57,6 +57,8 @@ namespace build2
if (const libx* l = pt->is_a<libx> ())
pt = &link_member (*l, a, link_info (t.base_scope (), ot));
+ // Note: not redundant since we are returning a member.
+ //
if ((st && pt->is_a<libs> ()) || (at && pt->is_a<liba> ()))
return pt->in (t.weak_scope ()) ? pt : nullptr;
diff --git a/build2/cc/pkgconfig.cxx b/build2/cc/pkgconfig.cxx
index ce73efd..5ace6ec 100644
--- a/build2/cc/pkgconfig.cxx
+++ b/build2/cc/pkgconfig.cxx
@@ -1125,6 +1125,14 @@ namespace build2
assert (t != nullptr);
const path& p (t->path ());
+ auto_rmfile arm (p);
+
+ // By default we assume things go into install.{include, lib}.
+ //
+ using install::resolve_dir;
+
+ dir_path idir (resolve_dir (l, cast<dir_path> (l["install.include"])));
+ dir_path ldir (resolve_dir (l, cast<dir_path> (l["install.lib"])));
if (verb >= 2)
text << "cat >" << p;
@@ -1132,7 +1140,6 @@ namespace build2
try
{
ofdstream os (p);
- auto_rmfile arm (p);
{
const string& n (cast<string> (rs.vars[var_project]));
@@ -1225,19 +1232,13 @@ namespace build2
os << " -l" << n;
};
- // By default we assume things go into install.{include, lib}.
- //
// @@ TODO: support whole archive?
//
- using install::resolve_dir;
-
- dir_path id (resolve_dir (l, cast<dir_path> (l["install.include"])));
- dir_path ld (resolve_dir (l, cast<dir_path> (l["install.lib"])));
// Cflags.
//
os << "Cflags:";
- os << " -I" << escape (id.string ());
+ os << " -I" << escape (idir.string ());
save_poptions (c_export_poptions);
save_poptions (x_export_poptions);
os << endl;
@@ -1256,7 +1257,7 @@ namespace build2
// Libs.private split.
//
os << "Libs:";
- os << " -L" << escape (ld.string ());
+ os << " -L" << escape (ldir.string ());
// Now process ourselves as if we were being linked to something (so
// pretty similar to link_rule::append_libraries()).