From d97c52ba95f82a2010f76f7f75e52017020523f8 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Wed, 13 Apr 2022 10:52:13 +0200 Subject: Prune library graph traversal for recursively-binless libraries --- libbuild2/cc/init.cxx | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'libbuild2/cc/init.cxx') diff --git a/libbuild2/cc/init.cxx b/libbuild2/cc/init.cxx index 5c15835..75b32bb 100644 --- a/libbuild2/cc/init.cxx +++ b/libbuild2/cc/init.cxx @@ -133,15 +133,19 @@ namespace build2 vp.insert ("cc.runtime"); vp.insert ("cc.stdlib"); - // Target type, for example, "C library" or "C++ library". Should be set - // on the target as a rule-specific variable by the matching rule to the - // name of the module (e.g., "c", "cxx"). Currenly only set for - // libraries and is used to decide which *.libs to use during static - // linking. - // - // It can also be the special "cc" value which means a C-common library - // but specific language is not known. Used in the import installed - // logic. + // Library target type in the [,...] form where is + // "c" (C library), "cxx" (C++ library), or "cc" (C-common library but + // the specific language is not known). Currently recognized + // values are "binless" (library is binless) and "recursively-binless" + // (library and all its prerequisite libraries are binless). Note that + // another indication of a binless library is an empty path, which could + // easier/faster to check. Note also that there should be no whitespaces + // of any kind and is always first. + // + // This value should be set on the library target as a rule-specific + // variable by the matching rule. Currently is used to decide + // which *.libs to use during static linking. The "cc" language is used + // in the import installed logic. // // Note that this variable cannot be set via the target type/pattern- // specific mechanism (see process_libraries()). -- cgit v1.1