From 9ca40dcd4d0cad43d95a9a253fafaa9a9ba7de24 Mon Sep 17 00:00:00 2001 From: Michael Paquier Date: Tue, 11 May 2021 10:43:05 +0900 Subject: [PATCH] Add support for LZ4 build in MSVC scripts Since its introduction in bbe0a81, compression of table data supports LZ4, but nothing had been done within the MSVC scripts to allow users to build the code with this library. This commit closes the gap by extending the MSVC scripts to be able to build optionally with LZ4. Getting libraries that can be used for compilation and execution is possible as LZ4 can be compiled down to MSVC 2010 using its source tarball. MinGW may require extra efforts to be able to work, and I have been able to test this only with MSVC, still this is better than nothing to give users a way to test the feature on Windows. Author: Dilip Kumar Reviewed-by: Michael Paquier Discussion: https://postgr.es/m/YJPdNeF68XpwDDki@paquier.xyz --- doc/src/sgml/install-windows.sgml | 10 ++++++++++ src/tools/msvc/Solution.pm | 12 ++++++++++++ src/tools/msvc/config_default.pl | 1 + 3 files changed, 23 insertions(+) diff --git a/doc/src/sgml/install-windows.sgml b/doc/src/sgml/install-windows.sgml index 64687b12e67..92087dba687 100644 --- a/doc/src/sgml/install-windows.sgml +++ b/doc/src/sgml/install-windows.sgml @@ -304,6 +304,16 @@ $ENV{MSBFLAGS}="/m"; + + LZ4 + + Required for supporting LZ4 compression + method for compressing the table data. Binaries and source can be + downloaded from + . + + + OpenSSL diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm index 459579d312f..85af28fe0bd 100644 --- a/src/tools/msvc/Solution.pm +++ b/src/tools/msvc/Solution.pm @@ -535,6 +535,12 @@ sub GenerateFiles $define{HAVE_LIBXSLT} = 1; $define{USE_LIBXSLT} = 1; } + if ($self->{options}->{lz4}) + { + $define{HAVE_LIBLZ4} = 1; + $define{HAVE_LZ4_H} = 1; + $define{USE_LZ4} = 1; + } if ($self->{options}->{openssl}) { $define{USE_OPENSSL} = 1; @@ -1054,6 +1060,11 @@ sub AddProject $proj->AddIncludeDir($self->{options}->{xslt} . '\include'); $proj->AddLibrary($self->{options}->{xslt} . '\lib\libxslt.lib'); } + if ($self->{options}->{lz4}) + { + $proj->AddIncludeDir($self->{options}->{lz4} . '\include'); + $proj->AddLibrary($self->{options}->{lz4} . '\lib\liblz4.lib'); + } if ($self->{options}->{uuid}) { $proj->AddIncludeDir($self->{options}->{uuid} . '\include'); @@ -1165,6 +1176,7 @@ sub GetFakeConfigure $cfg .= ' --with-uuid' if ($self->{options}->{uuid}); $cfg .= ' --with-libxml' if ($self->{options}->{xml}); $cfg .= ' --with-libxslt' if ($self->{options}->{xslt}); + $cfg .= ' --with-lz4' if ($self->{options}->{lz4}); $cfg .= ' --with-gssapi' if ($self->{options}->{gss}); $cfg .= ' --with-icu' if ($self->{options}->{icu}); $cfg .= ' --with-tcl' if ($self->{options}->{tcl}); diff --git a/src/tools/msvc/config_default.pl b/src/tools/msvc/config_default.pl index 256878f5820..460c0375d4b 100644 --- a/src/tools/msvc/config_default.pl +++ b/src/tools/msvc/config_default.pl @@ -14,6 +14,7 @@ our $config = { extraver => undef, # --with-extra-version= gss => undef, # --with-gssapi= icu => undef, # --with-icu= + lz4 => undef, # --with-lz4= nls => undef, # --enable-nls= tap_tests => undef, # --enable-tap-tests tcl => undef, # --with-tcl=