zlib detection in Meson on Windows broken?

Поиск
Список
Период
Сортировка
Hi

I'm working on updating the build of PostgreSQL that pgAdmin uses in its Windows installers to use Meson ready for the v17 release. I'm using Visual Studio 2022, on Windows Server 2022.

I've been unable to persuade Meson to detect zlib, whilst OpenSSL seems to be fine.

The dependencies have been built and installed as follows:

 mkdir c:\build64

 wget https://zlib.net/zlib-1.3.2.tar.gz
 tar -zxvf zlib-1.3.2.tar.gz
 cd zlib-1.3.2
 cmake -DCMAKE_INSTALL_PREFIX=C:/build64/zlib -G "Visual Studio 17 2022" .
 msbuild ALL_BUILD.vcxproj /p:Configuration=Release
 msbuild RUN_TESTS.vcxproj /p:Configuration=Release
 msbuild INSTALL.vcxproj /p:Configuration=Release
 cd ..

 wget https://www.openssl.org/source/openssl-3.0.13.tar.gz
 tar -zxvf openssl-3.0.13.tar.gz
 cd openssl-3.0.013
 perl Configure VC-WIN64A no-asm --prefix=C:\build64\openssl no-ssl3 no-comp
 nmake
 nmake test
 nmake install
 cd ..

This results in the following headers and libraries being installed for zlib:

C:\Users\dpage\git\postgresql>dir C:\build64\zlib\include
 Volume in drive C has no label.
 Volume Serial Number is 3AAD-5864

 Directory of C:\build64\zlib\include

17/05/2024  15:56    <DIR>          .
17/05/2024  15:56    <DIR>          ..
17/05/2024  15:54            17,096 zconf.h
22/01/2024  19:32            96,829 zlib.h
               2 File(s)        113,925 bytes
               2 Dir(s)  98,842,726,400 bytes free

C:\Users\dpage\git\postgresql>dir C:\build64\zlib\lib
 Volume in drive C has no label.
 Volume Serial Number is 3AAD-5864

 Directory of C:\build64\zlib\lib

17/05/2024  17:01    <DIR>          .
17/05/2024  15:56    <DIR>          ..
17/05/2024  15:55            16,638 zlib.lib
17/05/2024  15:55           184,458 zlibstatic.lib
               2 File(s)        201,096 bytes
               2 Dir(s)  98,842,726,400 bytes free

I then attempt to build PostgreSQL:

 meson setup build -Dextra_include_dirs=C:/build64/openssl/include,C:/build64/zlib/include -Dextra_lib_dirs=C:/build64/openssl/lib,C:/build64/zlib/lib -Dssl=openssl -Dzlib=enabled --prefix=c:/build64/pgsql

Which results in the output in output.txt, indicating that OpenSSL was correctly found, but zlib was not. I've also attached the meson log.

I have very little experience with Meson, and even less interpreting it's logs, but it seems to me that it's not including the extra lib and include directories when it runs the test compile, given the command line it's reporting:

cl C:\Users\dpage\git\postgresql\build\meson-private\tmpg_h4xcue\testfile.c /nologo /showIncludes /utf-8 /EP /nologo /showIncludes /utf-8 /EP /Od /Oi-

Bug, or am I doing something silly?


--
Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Jakub Wartak
Дата:
Сообщение: Re: Doc limitation update proposal: include out-of-line OID usage per TOAST-ed columns
Следующее
От: Shlok Kyal
Дата:
Сообщение: Re: speed up a logical replica setup