From 4cf87fa84a6938e262fd6122e654e5a483a78abe Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 11 Dec 2020 07:20:18 +0200 Subject: Add support for module interface-only libraries Also suppress generation of the object file in cases where we don't need it. --- libbuild2/bin/init.cxx | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'libbuild2/bin/init.cxx') diff --git a/libbuild2/bin/init.cxx b/libbuild2/bin/init.cxx index 9c16432..49ba518 100644 --- a/libbuild2/bin/init.cxx +++ b/libbuild2/bin/init.cxx @@ -116,12 +116,23 @@ namespace build2 // // If unspecified, defaults to false for liba{} and to true for libu*{}. // - vp.insert ("bin.whole", variable_visibility::target); + vp.insert ("bin.whole", variable_visibility::target); - vp.insert ("bin.exe.prefix"); - vp.insert ("bin.exe.suffix"); - vp.insert ("bin.lib.prefix"); - vp.insert ("bin.lib.suffix"); + // Mark library as binless. + // + // For example, the user can mark a C++ library consisting of only + // module interfaces as binless so it becomes a modules equivalent to + // header-only library (which we will call a module interface-only + // library). + // + vp.insert ("bin.binless", variable_visibility::target); + + // Executable and library name prefixes and suffixes. + // + vp.insert ("bin.exe.prefix"); + vp.insert ("bin.exe.suffix"); + vp.insert ("bin.lib.prefix"); + vp.insert ("bin.lib.suffix"); // The optional custom clean patterns should be just the pattern stem, // without the library prefix/name or extension. For example, `-[A-Z]` -- cgit v1.1