Hi all,
I tried to build Postgres from source using Visual Studio 19. It worked all good.
Then I wanted to build it with some dependencies, started with the ones listed here [1]. But I'm having some issues with lz4.
First I downloaded the latest release of lz4 from this link [2].
Modified the src\tools\msvc\
config.pl file as follows:
use strict;
use warnings;
our $config;
$config->{"tap_tests"} = 1;
$config->{"asserts"} = 1;
$config->{"lz4"} = "c:/lz4/";
$config->{"openssl"} = "c:/openssl/1.1/";
$config->{"perl"} = "c:/strawberry/$ENV{DEFAULT_PERL_VERSION}/perl/";
$config->{"python"} = "c:/python/";
1;
Then ran the following commands:
vcvarsall x64
perl src/tools/msvc/mkvcbuild.pl
msbuild -m -verbosity:minimal /p:IncludePath="C:\lz4" pgsql.sln
msbuild command fails with the following error:
"LINK : fatal error LNK1181: cannot open input file 'c:\lz4\\lib\liblz4.lib' [C:\postgres\libpgtypes.vcxproj]"
What I realized is that c:\lz4\lib\liblz4.lib actually does not exist.
The latest versions of lz4, downloaded from [2], do not contain \liblz4.lib anymore, as opposed to what's written here [3]. Also there isn't a lib folder too.
After those changes on lz4 side, AFAIU there seems like this line adds library from wrong path in Solution.pm file [4].
$proj->AddIncludeDir($self->{options}->{lz4} . '\include');
$proj->AddLibrary($self->{options}->{lz4} . '\lib\liblz4.lib');
Even if I spent some time on this problem and tried to fix some places, I'm not able to run a successful build yet.
This is also the case for zstd too. Enabling zstd gives the same error.
Has anyone had this issue before? Is this something that anyone is aware of and somehow made it work?
I would appreciate any comment/suggestion etc.
Thanks,
Melih