Enhance pkg-config generation for interface libraries and Windows compatibility#3488
Conversation
|
Is it possible to avoid special handling of |
…ndling of dependencies
…name from full name
Add interface compile definitions to pkg-config generation.
|
Maybe we should wait microsoft/vcpkg#51103 first. |
|
@levlam review. |
|
@luadebug I'm currently busy with the next release. I'll review and test the changes after it. |
|
Hi, @luadebug. I reviewed the changes, partly tested them, and think that they are good to be merged now. Duriing the testing I noticed a difference between the old and the new generated files. Previously, on Windows full absolute path to the library has always been used instead of combination of Does it still work correctly without full paths thanks to extraction of the correct library name from the path? |
This is fine for MSVC and clang-cl because References:
clang-cl is covered by the same mechanism: it shares cl.exe's command-line syntax (https://clang.llvm.org/docs/MSVCCompatibility.html), so anything that wraps pkg-config for MSVC works identically for clang-cl. The old absolute-path-inside- p.s. the vcpkg azuri ci pipeline actually validates that all works in microsoft/vcpkg#51103 PR |
|
Merged. Thank you, @luadebug! |
Back in 2024s problem of PE size exceeding was resolved #2888, but actually the issue is still present and as workaround we need to split tdcore.lib into two part in case we build for Windows OS host, LTO enable flag comes here as helper to enforce splitting into two parts.
Unfortunately .pc generation handler for tdcore_part1.lib & tdcore_part2.lib was not implemented yet. This is attempt to make that splitting work. As microsoft/vcpkg#47690 validates generated .pc would work against vcpkg ci. https://github.com/microsoft/vcpkg/pull/47690/files#diff-bab39c8782e3538fd5a1a88f8c113153002bff5f4410bc4329729a7e9a59e99dR1