From 70a76a8a03f0390b44d372fb8816cf529a9f1c35 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Tue, 14 Aug 2018 14:06:23 +0200 Subject: Use thin archives if available for utility libraries Thin archives are supported by GNU ar since binutils 2.19.1 and LLVM ar since LLVM 3.8.0. --- build2/bin/init.cxx | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) (limited to 'build2/bin/init.cxx') diff --git a/build2/bin/init.cxx b/build2/bin/init.cxx index ea4a0f1..7e022fda 100644 --- a/build2/bin/init.cxx +++ b/build2/bin/init.cxx @@ -584,11 +584,25 @@ namespace build2 { diag_record dr (text); - dr << "bin.ar " << project (r) << '@' << r.out_path () << '\n' - << " ar " << ari.ar_path << '\n' - << " id " << ari.ar_id << '\n' - << " signature " << ari.ar_signature << '\n' - << " checksum " << ari.ar_checksum; + { + dr << "bin.ar " << project (r) << '@' << r.out_path () << '\n' + << " ar " << ari.ar_path << '\n' + << " id " << ari.ar_id << '\n' + << " version " << ari.ar_version.string () << '\n' + << " major " << ari.ar_version.major << '\n' + << " minor " << ari.ar_version.minor << '\n' + << " patch " << ari.ar_version.patch << '\n'; + } + + if (!ari.ar_version.build.empty ()) + { + dr << " build " << ari.ar_version.build << '\n'; + } + + { + dr << " signature " << ari.ar_signature << '\n' + << " checksum " << ari.ar_checksum; + } if (ranlib != nullptr) { @@ -605,6 +619,16 @@ namespace build2 r.assign ("bin.ar.signature") = move (ari.ar_signature); r.assign ("bin.ar.checksum") = move (ari.ar_checksum); + { + semantic_version& v (ari.ar_version); + + r.assign ("bin.ar.version") = v.string (); + r.assign ("bin.ar.version.major") = v.major; + r.assign ("bin.ar.version.minor") = v.minor; + r.assign ("bin.ar.version.patch") = v.patch; + r.assign ("bin.ar.version.build") = move (v.build); + } + if (ranlib != nullptr) { r.assign ("bin.ranlib.path") = move (ari.ranlib_path); -- cgit v1.1