diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2021-01-22 09:35:06 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2021-01-22 09:47:40 +0200 |
commit | ac03ae75f46196c09cec0e3e45f401dc59faee73 (patch) | |
tree | 778ac2220ffa0a01c567f8083527c7428b30d8ff | |
parent | 6e91cb7cdb0c4f000a79d20d8578890d56bcdc84 (diff) |
Redo bin.lib.version not to require empty key
-rw-r--r-- | libbuild2/bin/init.cxx | 7 | ||||
-rw-r--r-- | libbuild2/cc/link-rule.cxx | 12 |
2 files changed, 14 insertions, 5 deletions
diff --git a/libbuild2/bin/init.cxx b/libbuild2/bin/init.cxx index ff00e89..fb82d21 100644 --- a/libbuild2/bin/init.cxx +++ b/libbuild2/bin/init.cxx @@ -144,8 +144,11 @@ namespace build2 vp.insert<string> ("bin.lib.load_suffix"); vp.insert<string> ("bin.lib.load_suffix_pattern"); - vp.insert<map<string, string>> ("bin.lib.version"); - vp.insert<string> ("bin.lib.version_pattern"); + // @@ TMP: update bdep-new generated projects, documentation not to use + // @ for platform-independent version. + // + vp.insert<map<optional<string>, string>> ("bin.lib.version"); + vp.insert<string> ("bin.lib.version_pattern"); return true; } diff --git a/libbuild2/cc/link-rule.cxx b/libbuild2/cc/link-rule.cxx index 9c0b018..f500389 100644 --- a/libbuild2/cc/link-rule.cxx +++ b/libbuild2/cc/link-rule.cxx @@ -330,7 +330,7 @@ namespace build2 // string ver; bool verp (true); // Platform-specific. - using verion_map = map<string, string>; + using verion_map = map<optional<string>, string>; if (const verion_map* m = cast_null<verion_map> (t["bin.lib.version"])) { // First look for the target system. @@ -347,14 +347,20 @@ namespace build2 // say "all others -- no version". // if (i == m->end ()) - i = m->find ("*"); + i = m->find (string ("*")); // Finally look for the platform-independent version. // if (i == m->end ()) { verp = false; - i = m->find (""); + + i = m->find (nullopt); + + // For backwards-compatibility. + // + if (i == m->end ()) + i = m->find (string ()); } // If we didn't find anything, fail. If the bin.lib.version was |