Re: Surveying interest regarding CMake
| From: | Christoph M. Becker | Date: | Wed, 29 Dec 2021 17:53:09 +0000 |
| Subject: | Re: Surveying interest regarding CMake | ||
| References: | 1 2 3 4 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-116740@lists.php.net to get a copy of this message | ||
On 29.12.2021 at 18:41, Horváth V. wrote:
> On 2021. 12. 29. 14:02, Christoph M. Becker wrote:
>
>> This is why I suggested to postpone Windows support for now.
>
> This would have to be done either way and I prefer to work from the host
> OS on my computer, especially since the Windows side of things is what's
> messy right now and I don't like things being unnecessarily messy for no
> good reason.
>
> Once I have things packaged via Conan as well, I will have a better idea
> of how to adapt the existing ways of people consuming dependencies. Here
> I'm thinking about the name of libraries that should be used in CMake if
> there is no proper CMake package found.
>
> As an example, the Conan package of WinEditLine provides an edit.lib
> file when built as a static library, which follows the idiomatic way of
> naming this file on Windows, however the php-sdk provided binary is
> called edit_a.lib, which tries to mimic the UNIX way of naming things.
> In the above case I would have to first do a find_package(wineditline
> NO_MODULE) to try finding the Conan generated config files and after
> that I would need to use the other find_*() commands with all known
> names in use as search parameters, then decide whether it's actually a
> static or a shared library. Things get painful once you don't have the
> convenience of CMake configs encoding crucial details about your
> dependencies.
Ah, right! The naming scheme of libraries used to build PHP and PECL
packages is uncommon, but in use for a long time, and it's even
documented[1]. I'm not sure if we can change it for a minor PHP
version. And simply renaming the libraries won't work, since that
breaks the "link" to the .pdb files.
Not sure how to solve this. :(
[1]
<https://wiki.php.net/internals/windows/libs#general_compiling_guidelines>
Christoph