diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2022-07-02 15:28:13 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2022-07-02 15:28:13 +0200 |
commit | bbfef572a25878f731566c8280814355b500e375 (patch) | |
tree | 09fa8dc39b6ac6e8d93437d1768e3f00c6fca63d | |
parent | 83c09ca38fdc7fa97d5cb547eb6c51ddca48cc4d (diff) |
Add note on version we save in pkg-config files
-rw-r--r-- | libbuild2/cc/pkgconfig.cxx | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/libbuild2/cc/pkgconfig.cxx b/libbuild2/cc/pkgconfig.cxx index 8b064d1..acf8266 100644 --- a/libbuild2/cc/pkgconfig.cxx +++ b/libbuild2/cc/pkgconfig.cxx @@ -1809,6 +1809,20 @@ namespace build2 fail << "no version variable in project " << n << info << "while generating " << p; + // When comparing versions, pkg-config uses RPM semantics, which is + // basically comparing each all-digit/alpha fragments in order. + // This means, for example, a semver with a pre-release will be + // compared incorrectly (pre-release will be greater than the final + // version). We could detect if this project uses stdver and chop + // off any pre-release information (so, essentially only saving the + // major.minor.patch part). But that means such .pc files will + // contain inaccurate version information. And seeing that we don't + // recommend using pkg-config (rather primitive) package dependency + // support, having complete version information for documentation + // seems more important. + // + // @@ Maybe still makes sense to only save version.project_id? + // const string& v (cast<string> (vl)); os << "Name: " << n << endl; |