early-access version 2853

This commit is contained in:
pineappleEA
2022-07-23 03:01:36 +02:00
parent 1f2b5081b5
commit 1f111bb69c
8955 changed files with 418777 additions and 999 deletions

37
externals/vcpkg/ports/libpq/Makefile vendored Executable file
View File

@@ -0,0 +1,37 @@
subdir = .
top_builddir = .
include src/Makefile.global
.NOTPARALLEL:
ifeq ($(LIBPQ_LIBRARY_TYPE), static)
LIBPQ_INSTALL_LIBS = install-stlib
endif
ifeq ($(LIBPQ_LIBRARY_TYPE), shared)
ifeq ($(USING_MINGW), yes)
# The import library name is the same as the static library name
EXTRA_TARGET = install-lib-static
endif
endif
.PHONY: all
all:
$(MAKE) -C src/include MAKELEVEL=0
$(MAKE) -C src/common MAKELEVEL=0
$(MAKE) -C src/port MAKELEVEL=0
$(MAKE) -C src/interfaces/libpq MAKELEVEL=0 all-$(LIBPQ_LIBRARY_TYPE)-lib
$(MAKE) -C src/bin/pg_config MAKELEVEL=0
.PHONY: install-stlib
install-stlib:
$(MAKE) -C src/common MAKELEVEL=0 install -o all
rm -f '$(DESTDIR)$(libdir)/libpgcommon_shlib.a'
$(MAKE) -C src/port MAKELEVEL=0 install -o all
rm -f '$(DESTDIR)$(libdir)/libpgport_shlib.a'
.PHONY: install
install: $(LIBPQ_INSTALL_LIBS)
$(MAKE) -C src/include MAKELEVEL=0 install
$(MAKE) -C src/interfaces/libpq MAKELEVEL=0 $(EXTRA_TARGET) install-lib-$(LIBPQ_LIBRARY_TYPE) install-lib-pc install -o all -o install-lib
$(MAKE) -C src/bin/pg_config MAKELEVEL=0 install

28
externals/vcpkg/ports/libpq/config.pl vendored Executable file
View File

@@ -0,0 +1,28 @@
our $config = {
asserts => 0, # --enable-cassert
# float4byval=>1, # --disable-float4-byval, on by default
# float8byval=> $platformbits == 64, # --disable-float8-byval,
# off by default on 32 bit platforms, on by default on 64 bit platforms
# blocksize => 8, # --with-blocksize, 8kB by default
# wal_blocksize => 8, # --with-wal-blocksize, 8kB by default
ldap => undef, # --with-ldap
extraver => undef, # --with-extra-version=<string>
gss => undef, # --with-gssapi=<path>
icu => undef, # --with-icu=<path>
lz4 => undef, # --with-lz4=<path>
nls => undef, # --enable-nls=<path>
tap_tests => undef, # --enable-tap-tests
tcl => undef, # --with-tcl=<path>
perl => undef, # --with-perl
python => undef, # --with-python=<path>
openssl => undef, # --with-openssl=<path>
uuid => undef, # --with-ossp-uuid
xml => undef, # --with-libxml=<path>
xslt => undef, # --with-libxslt=<path>
iconv => undef, # (not in configure, path to iconv)
zlib => undef # --with-zlib=<path>
};
1;

View File

@@ -0,0 +1,72 @@
diff --git a/configure.ac b/configure.ac
index fba79ee..4fadb94 100644
--- a/configure.ac
+++ b/configure.ac
@@ -19,7 +19,7 @@ m4_pattern_forbid(^PGAC_)dnl to catch undefined macros
AC_INIT([PostgreSQL], [14.1], [pgsql-bugs@lists.postgresql.org], [], [https://www.postgresql.org/])
-m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_fatal([Autoconf version 2.69 is required.
+m4_if(m4_defn([m4_PACKAGE_VERSION]), [2.69], [], [m4_warn([unsupported],[Autoconf version 2.69 is required.
Untested combinations of 'autoconf' and PostgreSQL versions are not
recommended. You can remove the check from 'configure.ac' but it is then
your responsibility whether the result works or not.])])
@@ -1184,7 +1184,8 @@ if test "$enable_thread_safety" = yes; then
fi
if test "$with_readline" = yes; then
- PGAC_CHECK_READLINE
+ PKG_CHECK_MODULES([READLINE], [readline], [HAVE_LIBREADLINE=1], [pgac_cv_check_readline=no])
+ LIBS="$READLINE_LIBS $LIBS"
if test x"$pgac_cv_check_readline" = x"no"; then
AC_MSG_ERROR([readline library not found
If you have readline already installed, see config.log for details on the
@@ -1194,7 +1195,7 @@ Use --without-readline to disable readline support.])
fi
if test "$with_zlib" = yes; then
- AC_CHECK_LIB(z, inflate, [],
+ PKG_CHECK_MODULES([ZLIB], [zlib], [LIBS="$ZLIB_LIBS $LIBS"],
[AC_MSG_ERROR([zlib library not found
If you have zlib already installed, see config.log for details on the
failure. It is possible the compiler isn't looking in the proper directory.
@@ -1243,6 +1244,9 @@ if test "$with_ssl" = openssl ; then
# Minimum required OpenSSL version is 1.0.1
AC_DEFINE(OPENSSL_API_COMPAT, [0x10001000L],
[Define to the OpenSSL API version in use. This avoids deprecation warnings from newer OpenSSL versions.])
+ PKG_CHECK_MODULES([CRYPTO_new_ex_data], [libcrypto], [LIBS="$CRYPTO_new_ex_data_LIBS $LIBS"], [AC_MSG_ERROR([library 'crypto' is required for OpenSSL])])
+ PKG_CHECK_MODULES([SSL_new], [libssl], [LIBS="$SSL_new_LIBS $LIBS"], [AC_MSG_ERROR([library 'ssl' is required for OpenSSL])])
+ if false ; then
if test "$PORTNAME" != "win32"; then
AC_CHECK_LIB(crypto, CRYPTO_new_ex_data, [], [AC_MSG_ERROR([library 'crypto' is required for OpenSSL])])
AC_CHECK_LIB(ssl, SSL_new, [], [AC_MSG_ERROR([library 'ssl' is required for OpenSSL])])
@@ -1250,6 +1254,7 @@ if test "$with_ssl" = openssl ; then
AC_SEARCH_LIBS(CRYPTO_new_ex_data, [eay32 crypto], [], [AC_MSG_ERROR([library 'eay32' or 'crypto' is required for OpenSSL])])
AC_SEARCH_LIBS(SSL_new, [ssleay32 ssl], [], [AC_MSG_ERROR([library 'ssleay32' or 'ssl' is required for OpenSSL])])
fi
+ fi
# Function introduced in OpenSSL 1.0.2.
AC_CHECK_FUNCS([X509_get_signature_nid])
# Functions introduced in OpenSSL 1.1.0. We used to check for
@@ -1273,15 +1278,18 @@ if test "$with_pam" = yes ; then
fi
if test "$with_libxml" = yes ; then
- AC_CHECK_LIB(xml2, xmlSaveToBuffer, [], [AC_MSG_ERROR([library 'xml2' (version >= 2.6.23) is required for XML support])])
+ PKG_CHECK_MODULES([LIBXML2], [libxml-2.0 >= 2.6.23], [AC_DEFINE(HAVE_LIBXML2,1,[Define to 1 if with xml2])], [AC_MSG_ERROR([library 'xml2' (version >= 2.6.23) is required for XML support])])
+ LIBS="$LIBXML2_LIBS $LIBS"
fi
if test "$with_libxslt" = yes ; then
- AC_CHECK_LIB(xslt, xsltCleanupGlobals, [], [AC_MSG_ERROR([library 'xslt' is required for XSLT support])])
+ PKG_CHECK_MODULES([LIBXSLT], [libxslt], [AC_DEFINE(HAVE_LIBXSLT,1,[Define to 1 if with xslt])], [AC_MSG_ERROR([library 'xslt' is required for XSLT support])])
+ LIBS="$LIBXSLT_LIBS $LIBS"
fi
if test "$with_lz4" = yes ; then
- AC_CHECK_LIB(lz4, LZ4_compress_default, [], [AC_MSG_ERROR([library 'lz4' is required for LZ4 support])])
+ PKG_CHECK_MODULES([LZ4], [liblz4], [AC_DEFINE(HAVE_LIBLZ4,1,[Define to 1 if with lz4])], [AC_MSG_ERROR([library 'lz4' is required for LZ4 support])])
+ LIBS="$LZ4_LIBS $LIBS"
fi
# Note: We can test for libldap_r only after we know PTHREAD_LIBS;

View File

@@ -0,0 +1,23 @@
diff --git a/src/tools/msvc/MSBuildProject.pm b/src/tools/msvc/MSBuildProject.pm
index 823357c02..faa3e336f 100644
--- a/src/tools/msvc/MSBuildProject.pm
+++ b/src/tools/msvc/MSBuildProject.pm
@@ -84,16 +84,16 @@ EOF
defs => "_DEBUG;DEBUG=1",
opt => 'Disabled',
strpool => 'false',
- runtime => 'MultiThreadedDebugDLL'
+ runtime => 'MultiThreadedDebug'
});
$self->WriteItemDefinitionGroup(
$f,
'Release',
{
defs => "",
opt => 'Full',
strpool => 'true',
- runtime => 'MultiThreadedDLL'
+ runtime => 'MultiThreaded'
});
return;
}

View File

@@ -0,0 +1,13 @@
diff --git a/src/tools/msvc/MSBuildProject.pm b/src/tools/msvc/MSBuildProject.pm
index 823357c02..e1dc59aa7 100644
--- a/src/tools/msvc/MSBuildProject.pm
+++ b/src/tools/msvc/MSBuildProject.pm
@@ -265,7 +265,7 @@ sub WriteConfigurationPropertyGroup
my $cfgtype =
($self->{type} eq "exe")
? 'Application'
- : ($self->{type} eq "dll" ? 'DynamicLibrary' : 'StaticLibrary');
+ : ($self->{type} eq "dll" ? 'StaticLibrary' : 'StaticLibrary');
print $f <<EOF;
<PropertyGroup Condition="'\$(Configuration)|\$(Platform)'=='$cfgname|$self->{platform}'" Label="Configuration">

View File

@@ -0,0 +1,13 @@
diff --git a/src/tools/msvc/MSBuildProject.pm b/src/tools/msvc/MSBuildProject.pm
index 823357c02..b93992f22 100644
--- a/src/tools/msvc/MSBuildProject.pm
+++ b/src/tools/msvc/MSBuildProject.pm
@@ -384,7 +384,7 @@ EOF
print $f <<EOF;
<PreLinkEvent>
<Message>Generate DEF file</Message>
- <Command>perl src\\tools\\msvc\\gendef.pl $cfgname\\$self->{name} $self->{platform}</Command>
+ <Command>perl "src\\tools\\msvc\\gendef.pl" $cfgname\\$self->{name} $self->{platform}</Command>
</PreLinkEvent>
EOF
}

View File

@@ -0,0 +1,13 @@
diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm
index 99f39caa5..4f51c12f2 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -199,7 +199,7 @@ sub mkvcbuild
'syncrep_gram.y');
$postgres->AddFiles('src/backend/utils/adt', 'jsonpath_scan.l',
'jsonpath_gram.y');
- $postgres->AddDefine('BUILDING_DLL');
+ # $postgres->AddDefine('BUILDING_DLL');
$postgres->AddLibrary('secur32.lib');
$postgres->AddLibrary('ws2_32.lib');
$postgres->AddLibrary('wldap32.lib') if ($solution->{options}->{ldap});

View File

@@ -0,0 +1,45 @@
diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index 51711c2bf..d33fdc3b0 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -63,17 +63,21 @@ sub DeterminePlatform
my $self = shift;
if ($^O eq "MSWin32")
{
# Examine CL help output to determine if we are in 32 or 64-bit mode.
my $output = `cl /help 2>&1`;
$? >> 8 == 0 or die "cl command not found";
- $self->{platform} =
- ($output =~ /^\/favor:<.+AMD64/m) ? 'x64' : 'Win32';
+ if ($output =~ m/x64\n/) { $self->{platform} = 'x64';
+ } elsif ($output =~ m/x86\n/) { $self->{platform} = 'Win32';
+ } elsif ($output =~ m/ARM64\n/) { $self->{platform} = 'ARM64';
+ } elsif ($output =~ m/ARM\n/) { $self->{platform} = 'ARM';
+ } else { $self->{platform} = 'Unknown'
+ }
}
else
{
$self->{platform} = 'FAKE';
}
print "Detected hardware platform: $self->{platform}\n";
return;
}
@@ -757,14 +757,14 @@ EOF
|| confess "Could not open pg_config_paths.h";
print $o <<EOF;
#define PGBINDIR "/bin"
-#define PGSHAREDIR "/share"
+#define PGSHAREDIR "/share/libpq"
#define SYSCONFDIR "/etc"
#define INCLUDEDIR "/include"
#define PKGINCLUDEDIR "/include"
#define INCLUDEDIRSERVER "/include/server"
#define LIBDIR "/lib"
#define PKGLIBDIR "/lib"
-#define LOCALEDIR "/share/locale"
+#define LOCALEDIR "/share/libpq/locale"
#define DOCDIR "/doc"
#define HTMLDIR "/doc"
#define MANDIR "/man"

View File

@@ -0,0 +1,92 @@
diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index 2820ace22..7fddbf0fb 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -948,7 +948,7 @@ sub AddProject
if ($self->{options}->{zlib})
{
$proj->AddIncludeDir($self->{options}->{zlib} . '\include');
- $proj->AddLibrary($self->{options}->{zlib} . '\lib\zdll.lib');
+ $proj->AddLibrary($self->{options}->{zlib} . '\debug\lib\zlibd.lib');
}
if ($self->{options}->{openssl})
{
@@ -989,8 +989,11 @@ sub AddProject
# On both Win32 and Win64 the same library
# names are used without a debugging context.
$dbgsuffix = 0;
- $libsslpath = '\lib\libssl.lib';
- $libcryptopath = '\lib\libcrypto.lib';
+ $libsslpath = '\debug\lib\libssl.lib'; #
+ $libcryptopath = '\debug\lib\libcrypto.lib'; #
+ $proj->AddLibrary('crypt32.lib');
+ $proj->AddLibrary('ws2_32.lib');
+ $proj->AddLibrary('secur32.lib');
}
$proj->AddLibrary($self->{options}->{openssl} . $libsslpath,
@@ -1024,7 +1024,7 @@ sub AddProject
if ($self->{options}->{nls})
{
$proj->AddIncludeDir($self->{options}->{nls} . '\include');
- $proj->AddLibrary($self->{options}->{nls} . '\lib\libintl.lib');
+ $proj->AddLibrary($self->{options}->{nls} . '\debug\lib\intl.lib'); #
}
if ($self->{options}->{gss})
{
@@ -1051,21 +1051,21 @@ sub AddProject
}
if ($self->{options}->{iconv})
{
$proj->AddIncludeDir($self->{options}->{iconv} . '\include');
- $proj->AddLibrary($self->{options}->{iconv} . '\lib\iconv.lib');
+ $proj->AddLibrary($self->{options}->{iconv} . '\debug\lib\iconv.lib'); #
}
if ($self->{options}->{icu})
{
$proj->AddIncludeDir($self->{options}->{icu} . '\include');
if ($self->{platform} eq 'Win32')
{
- $proj->AddLibrary($self->{options}->{icu} . '\lib\icuin.lib');
- $proj->AddLibrary($self->{options}->{icu} . '\lib\icuuc.lib');
- $proj->AddLibrary($self->{options}->{icu} . '\lib\icudt.lib');
+ $proj->AddLibrary($self->{options}->{icu} . '\debug\lib\icuind.lib'); #
+ $proj->AddLibrary($self->{options}->{icu} . '\debug\lib\icuucd.lib'); #
+ $proj->AddLibrary($self->{options}->{icu} . '\debug\lib\icudtd.lib'); #
}
else
{
- $proj->AddLibrary($self->{options}->{icu} . '\lib64\icuin.lib');
- $proj->AddLibrary($self->{options}->{icu} . '\lib64\icuuc.lib');
- $proj->AddLibrary($self->{options}->{icu} . '\lib64\icudt.lib');
+ $proj->AddLibrary($self->{options}->{icu} . '\debug\lib\icuind.lib'); #
+ $proj->AddLibrary($self->{options}->{icu} . '\debug\lib\icuucd.lib'); #
+ $proj->AddLibrary($self->{options}->{icu} . '\debug\lib\icudtd.lib'); #
}
@@ -1074,22 +1074,22 @@ sub AddProject
{
$proj->AddIncludeDir($self->{options}->{xml} . '\include');
$proj->AddIncludeDir($self->{options}->{xml} . '\include\libxml2');
- $proj->AddLibrary($self->{options}->{xml} . '\lib\libxml2.lib');
+ $proj->AddLibrary($self->{options}->{xml} . '\debug\lib\libxml2.lib'); #
}
if ($self->{options}->{xslt})
{
$proj->AddIncludeDir($self->{options}->{xslt} . '\include');
- $proj->AddLibrary($self->{options}->{xslt} . '\lib\libxslt.lib');
+ $proj->AddLibrary($self->{options}->{xslt} . '\debug\lib\libxslt.lib'); #
}
if ($self->{options}->{lz4})
{
$proj->AddIncludeDir($self->{options}->{lz4} . '\include');
- $proj->AddLibrary($self->{options}->{lz4} . '\lib\liblz4.lib');
+ $proj->AddLibrary($self->{options}->{lz4} . '\debug\lib\lz4d.lib'); #
}
if ($self->{options}->{uuid})
{
$proj->AddIncludeDir($self->{options}->{uuid} . '\include');
- $proj->AddLibrary($self->{options}->{uuid} . '\lib\uuid.lib');
+ $proj->AddLibrary($self->{options}->{uuid} . '\debug\lib\uuid.lib'); #
}
return $proj;
}

View File

@@ -0,0 +1,92 @@
diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index 2820ace22..7fddbf0fb 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -948,7 +948,7 @@ sub AddProject
if ($self->{options}->{zlib})
{
$proj->AddIncludeDir($self->{options}->{zlib} . '\include');
- $proj->AddLibrary($self->{options}->{zlib} . '\lib\zdll.lib');
+ $proj->AddLibrary($self->{options}->{zlib} . '\lib\zlib.lib');
}
if ($self->{options}->{openssl})
{
@@ -989,8 +989,11 @@ sub AddProject
# On both Win32 and Win64 the same library
# names are used without a debugging context.
$dbgsuffix = 0;
- $libsslpath = '\lib\libssl.lib';
- $libcryptopath = '\lib\libcrypto.lib';
+ $libsslpath = '\lib\libssl.lib'; #
+ $libcryptopath = '\lib\libcrypto.lib'; #
+ $proj->AddLibrary('crypt32.lib');
+ $proj->AddLibrary('ws2_32.lib');
+ $proj->AddLibrary('secur32.lib');
}
$proj->AddLibrary($self->{options}->{openssl} . $libsslpath,
@@ -1024,7 +1024,7 @@ sub AddProject
if ($self->{options}->{nls})
{
$proj->AddIncludeDir($self->{options}->{nls} . '\include');
- $proj->AddLibrary($self->{options}->{nls} . '\lib\libintl.lib');
+ $proj->AddLibrary($self->{options}->{nls} . '\lib\intl.lib'); #
}
if ($self->{options}->{gss})
{
@@ -1051,21 +1051,21 @@ sub AddProject
}
if ($self->{options}->{iconv})
{
$proj->AddIncludeDir($self->{options}->{iconv} . '\include');
- $proj->AddLibrary($self->{options}->{iconv} . '\lib\iconv.lib');
+ $proj->AddLibrary($self->{options}->{iconv} . '\lib\iconv.lib'); #
}
if ($self->{options}->{icu})
{
$proj->AddIncludeDir($self->{options}->{icu} . '\include');
if ($self->{platform} eq 'Win32')
{
- $proj->AddLibrary($self->{options}->{icu} . '\lib\icuin.lib');
- $proj->AddLibrary($self->{options}->{icu} . '\lib\icuuc.lib');
- $proj->AddLibrary($self->{options}->{icu} . '\lib\icudt.lib');
+ $proj->AddLibrary($self->{options}->{icu} . '\lib\icuin.lib'); #
+ $proj->AddLibrary($self->{options}->{icu} . '\lib\icuuc.lib'); #
+ $proj->AddLibrary($self->{options}->{icu} . '\lib\icudt.lib'); #
}
else
{
- $proj->AddLibrary($self->{options}->{icu} . '\lib64\icuin.lib');
- $proj->AddLibrary($self->{options}->{icu} . '\lib64\icuuc.lib');
- $proj->AddLibrary($self->{options}->{icu} . '\lib64\icudt.lib');
+ $proj->AddLibrary($self->{options}->{icu} . '\lib\icuin.lib'); #
+ $proj->AddLibrary($self->{options}->{icu} . '\lib\icuuc.lib'); #
+ $proj->AddLibrary($self->{options}->{icu} . '\lib\icudt.lib'); #
}
@@ -1074,22 +1074,22 @@ sub AddProject
{
$proj->AddIncludeDir($self->{options}->{xml} . '\include');
$proj->AddIncludeDir($self->{options}->{xml} . '\include\libxml2');
- $proj->AddLibrary($self->{options}->{xml} . '\lib\libxml2.lib');
+ $proj->AddLibrary($self->{options}->{xml} . '\lib\libxml2.lib'); #
}
if ($self->{options}->{xslt})
{
$proj->AddIncludeDir($self->{options}->{xslt} . '\include');
- $proj->AddLibrary($self->{options}->{xslt} . '\lib\libxslt.lib');
+ $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');
+ $proj->AddLibrary($self->{options}->{lz4} . '\lib\lz4.lib'); #
}
if ($self->{options}->{uuid})
{
$proj->AddIncludeDir($self->{options}->{uuid} . '\include');
- $proj->AddLibrary($self->{options}->{uuid} . '\lib\uuid.lib');
+ $proj->AddLibrary($self->{options}->{uuid} . '\lib\uuid.lib'); #
}
return $proj;
}

View File

@@ -0,0 +1,39 @@
diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm
index 99f39caa5..4f51c12f2 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -110,8 +110,8 @@ sub mkvcbuild
if ($vsVersion >= '9.00')
{
- push(@pgportfiles, 'pg_crc32c_sse42_choose.c');
- push(@pgportfiles, 'pg_crc32c_sse42.c');
+ #push(@pgportfiles, 'pg_crc32c_sse42_choose.c');
+ #push(@pgportfiles, 'pg_crc32c_sse42.c');
push(@pgportfiles, 'pg_crc32c_sb8.c');
}
else
diff --git a/src/tools/msvc/MSBuildProject.pm b/src/tools/msvc/MSBuildProject.pm
index 823357c02..625f32bf8 100644
--- a/src/tools/msvc/MSBuildProject.pm
+++ b/src/tools/msvc/MSBuildProject.pm
@@ -307,9 +307,8 @@ sub WriteItemDefinitionGroup
: ($self->{type} eq "dll" ? 'DynamicLibrary' : 'StaticLibrary');
my $libs = $self->GetAdditionalLinkerDependencies($cfgname, ';');
- my $targetmachine =
- $self->{platform} eq 'Win32' ? 'MachineX86' : 'MachineX64';
-
+ my $targetmachine = $self->{platform} eq 'ARM64' ? 'MachineARM64' : 'MachineARM';
+
my $includes = $self->{includes};
unless ($includes eq '' or $includes =~ /;$/)
{
@@ -347,7 +349,6 @@ sub WriteItemDefinitionGroup
<ProgramDatabaseFile>.\\$cfgname\\$self->{name}\\$self->{name}.pdb</ProgramDatabaseFile>
<GenerateMapFile>false</GenerateMapFile>
<MapFileName>.\\$cfgname\\$self->{name}\\$self->{name}.map</MapFileName>
- <RandomizedBaseAddress>false</RandomizedBaseAddress>
<!-- Permit links to MinGW-built, 32-bit DLLs (default before VS2012). -->
<ImageHasSafeExceptionHandlers/>
<SubSystem>Console</SubSystem>

View File

@@ -0,0 +1,33 @@
diff --git a/src/tools/msvc/MSBuildProject.pm b/src/tools/msvc/MSBuildProject.pm
index b93992f..2397511 100644
--- a/src/tools/msvc/MSBuildProject.pm
+++ b/src/tools/msvc/MSBuildProject.pm
@@ -336,7 +336,7 @@ sub WriteItemDefinitionGroup
<BrowseInformation>false</BrowseInformation>
<WarningLevel>Level3</WarningLevel>
<SuppressStartupBanner>true</SuppressStartupBanner>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
+ <DebugInformationFormat>OldStyle</DebugInformationFormat>
<CompileAs>Default</CompileAs>
</ClCompile>
<Link>
diff --git a/src/tools/msvc/Install.pm b/src/tools/msvc/Install.pm
index e0c9a88..98f9e67 100644
--- a/src/tools/msvc/Install.pm
+++ b/src/tools/msvc/Install.pm
@@ -352,9 +352,12 @@ sub CopySolutionOutput
|| croak "Could not copy $pf.$ext\n";
}
}
- lcopy("$conf\\$pf\\$pf.pdb", "$target\\bin\\$pf.pdb")
- || croak "Could not copy $pf.pdb\n";
- print ".";
+ if ($1 eq 'DynamicLibrary')
+ {
+ lcopy("$conf\\$pf\\$pf.pdb", "$target\\bin\\$pf.pdb")
+ || croak "Could not copy $pf.pdb\n";
+ print ".";
+ }
}
print "\n";
return;

View File

@@ -0,0 +1,38 @@
diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index 25a549015..9018270ab 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -132,21 +132,21 @@ sub GetOpenSSLVersion
# Attempt to get OpenSSL version and location. This assumes that
# openssl.exe is in the specified directory.
# Quote the .exe name in case it has spaces
- my $opensslcmd =
- qq("openssl.exe" version 2>&1);
- my $sslout = `$opensslcmd`;
+ #my $opensslcmd =
+ # qq("openssl.exe" version 2>&1);
+ #my $sslout = `$opensslcmd`;
- $? >> 8 == 0
- or croak
- "Unable to determine OpenSSL version: The openssl.exe command wasn't found.";
+ #$? >> 8 == 0
+ # or croak
+ # "Unable to determine OpenSSL version: The openssl.exe command wasn't found.";
- if ($sslout =~ /(\d+)\.(\d+)\.(\d+)(\D)/m)
- {
- return ($1, $2, $3);
- }
+ #if ($sslout =~ /(\d+)\.(\d+)\.(\d+)(\D)/m)
+ #{
+ return (1, 1, 1);
+ #}
- croak
- "Unable to determine OpenSSL version: The openssl.exe version could not be determined.";
+ #croak
+ # "Unable to determine OpenSSL version: The openssl.exe version could not be determined.";
}
sub GenerateFiles

View File

@@ -0,0 +1,223 @@
diff --git a/src/tools/msvc/Install.pm b/src/tools/msvc/Install.pm
index d109b2c90..75c7446e6 100644
--- a/src/tools/msvc/Install.pm
+++ b/src/tools/msvc/Install.pm
@@ -89,10 +89,10 @@ sub Install
my $majorver = DetermineMajorVersion();
print "Installing version $majorver for $conf in $target\n";
- my @client_dirs = ('bin', 'lib', 'share', 'symbols');
+ my @client_dirs = ('bin', 'lib', 'share', 'tools', 'share/libpq', 'tools/libpq');
my @all_dirs = (
- @client_dirs, 'doc', 'doc/contrib', 'doc/extension', 'share/contrib',
- 'share/extension', 'share/timezonesets', 'share/tsearch_data');
+ @client_dirs, 'doc', 'doc/libpq', 'doc/libpq/contrib', 'doc/libpq/extension', 'share/libpq/contrib',
+ 'share/libpq/extension', 'share/libpq/timezonesets', 'share/libpq/tsearch_data');
if ($insttype eq "client")
{
EnsureDirectories($target, @client_dirs);
@@ -117,7 +117,7 @@ sub Install
}
},
@top_dir);
- CopySetOfFiles('config files', $sample_files, $target . '/share/');
+ CopySetOfFiles('config files', $sample_files, $target . '/share/libpq/');
CopyFiles(
'Import libraries',
$target . '/lib/',
@@ -131,35 +131,35 @@ sub Install
CopySetOfFiles(
'timezone names',
[ glob('src\timezone\tznames\*.txt') ],
- $target . '/share/timezonesets/');
+ $target . '/share/libpq/timezonesets/');
CopyFiles(
'timezone sets',
- $target . '/share/timezonesets/',
+ $target . '/share/libpq/timezonesets/',
'src/timezone/tznames/', 'Default', 'Australia', 'India');
CopySetOfFiles(
'BKI files',
[ glob("src\\backend\\catalog\\postgres.*") ],
- $target . '/share/');
+ $target . '/share/libpq/');
CopySetOfFiles(
'SQL files',
[ glob("src\\backend\\catalog\\*.sql") ],
- $target . '/share/');
+ $target . '/share/libpq/');
CopyFiles(
- 'Information schema data', $target . '/share/',
+ 'Information schema data', $target . '/share/libpq/',
'src/backend/catalog/', 'sql_features.txt');
CopyFiles(
- 'Error code data', $target . '/share/',
+ 'Error code data', $target . '/share/libpq/',
'src/backend/utils/', 'errcodes.txt');
GenerateTimezoneFiles($target, $conf);
GenerateTsearchFiles($target);
CopySetOfFiles(
'Stopword files',
[ glob("src\\backend\\snowball\\stopwords\\*.stop") ],
- $target . '/share/tsearch_data/');
+ $target . '/share/libpq/tsearch_data/');
CopySetOfFiles(
'Dictionaries sample files',
[ glob("src\\backend\\tsearch\\dicts\\*_sample*") ],
- $target . '/share/tsearch_data/');
+ $target . '/share/libpq/tsearch_data/');
my $pl_extension_files = [];
my @pldirs = ('src/pl/plpgsql/src');
@@ -178,7 +178,7 @@ sub Install
},
@pldirs);
CopySetOfFiles('PL Extension files',
- $pl_extension_files, $target . '/share/extension/');
+ $pl_extension_files, $target . '/share/libpq/extension/');
}
GenerateNLSFiles($target, $config->{nls}, $majorver) if ($config->{nls});
@@ -293,23 +293,26 @@ sub CopySolutionOutput
{
if ($1 == 1)
{
- push(@{ $install_list{'bin'} }, "exe");
+ push(@{ $install_list{'tools\\libpq'} }, "exe");
}
elsif ($1 == 2)
{
- push(@{ $install_list{'lib'} }, "dll");
+ push(@{ $install_list{'bin'} }, "dll");
if ($is_sharedlib)
{
push(@{ $install_list{'bin'} }, "dll");
push(@{ $install_list{'lib'} }, "lib");
}
+ else
+ {
+ push(@{ $install_list{'lib'} }, "lib");
+ }
}
else
{
-
+ push(@{ $install_list{'lib'} }, "lib");
# Static libraries, such as libpgport, only used internally
# during build, don't install.
- next;
}
}
elsif ($vcproj eq 'vcxproj'
@@ -320,11 +320,11 @@ sub CopySolutionOutput
{
if ($1 eq 'Application')
{
- push(@{ $install_list{'bin'} }, "exe");
+ push(@{ $install_list{'tools\\libpq'} }, "exe");
}
elsif ($1 eq 'DynamicLibrary')
{
- push(@{ $install_list{'lib'} }, "dll");
+ push(@{ $install_list{'bin'} }, "dll");
if ($is_sharedlib)
{
push(@{ $install_list{'bin'} }, "dll");
@@ -333,10 +333,9 @@ sub CopySolutionOutput
}
else # 'StaticLibrary'
{
-
+ push(@{ $install_list{'lib'} }, "lib");
# Static lib, such as libpgport, only used internally
# during build, don't install.
- next;
}
}
else
@@ -352,7 +352,7 @@ sub CopySolutionOutput
|| croak "Could not copy $pf.$ext\n";
}
}
- lcopy("$conf\\$pf\\$pf.pdb", "$target\\symbols\\$pf.pdb")
+ lcopy("$conf\\$pf\\$pf.pdb", "$target\\bin\\$pf.pdb")
|| croak "Could not copy $pf.pdb\n";
print ".";
}
@@ -374,5 +374,5 @@ sub GenerateTimezoneFiles
print "Generating timezone files...";
- my @args = ("$conf/zic/zic", '-d', "$target/share/timezone");
+ my @args = ("$conf/zic/zic", '-d', "$target/share/libpq/timezone");
foreach (@tzfiles)
{
@@ -398,7 +398,7 @@ sub GenerateTsearchFiles
$mf =~ /^LANGUAGES\s*=\s*(.*)$/m
|| die "Could not find LANGUAGES line in snowball Makefile\n";
my @pieces = split /\s+/, $1;
- open($F, '>', "$target/share/snowball_create.sql")
+ open($F, '>', "$target/share/libpq/snowball_create.sql")
|| die "Could not write snowball_create.sql";
print $F read_file('src/backend/snowball/snowball_func.sql.in');
@@ -483,7 +483,7 @@ sub CopySubdirFiles
foreach my $f (split /\s+/, $flist)
{
lcopy("$subdir/$module/$f.control",
- "$target/share/extension/$f.control")
+ "$target/share/libpq/extension/$f.control")
|| croak("Could not copy file $f.control in contrib $module");
print '.';
}
@@ -501,7 +501,7 @@ sub CopySubdirFiles
foreach my $f (split /\s+/, $flist)
{
lcopy("$subdir/$module/$f",
- "$target/share/$moduledir/" . basename($f))
+ "$target/share/libpq/$moduledir/" . basename($f))
|| croak("Could not copy file $f in contrib $module");
print '.';
}
@@ -516,7 +516,7 @@ sub CopySubdirFiles
foreach my $f (split /\s+/, $flist)
{
lcopy("$subdir/$module/$f",
- "$target/share/tsearch_data/" . basename($f))
+ "$target/share/libpq/tsearch_data/" . basename($f))
|| croak("Could not copy file $f in $subdir $module");
print '.';
}
@@ -579,7 +579,7 @@ sub CopySubdirFiles
if ($module eq 'spi');
foreach my $f (split /\s+/, $flist)
{
- lcopy("$subdir/$module/$f", "$target/doc/$moduledir/$f")
+ lcopy("$subdir/$module/$f", "$target/doc/libpq/$moduledir/$f")
|| croak("Could not copy file $f in contrib $module");
print '.';
}
@@ -708,7 +708,7 @@ sub GenerateNLSFiles
my $majorver = shift;
print "Installing NLS files...";
- EnsureDirectories($target, "share/locale");
+ EnsureDirectories($target, "share/libpq/locale");
my @flist;
File::Find::find(
{
@@ -730,12 +730,12 @@ sub GenerateNLSFiles
next unless /([^\/]+)\.po/;
$lang = $1;
- EnsureDirectories($target, "share/locale/$lang",
- "share/locale/$lang/LC_MESSAGES");
+ EnsureDirectories($target, "share/libpq/locale/$lang",
+ "share/libpq/locale/$lang/LC_MESSAGES");
my @args = (
"$nlspath\\bin\\msgfmt",
'-o',
- "$target\\share\\locale\\$lang\\LC_MESSAGES\\$prgm-$majorver.mo",
+ "$target\\share\\libpq\\locale\\$lang\\LC_MESSAGES\\$prgm-$majorver.mo",
$_);
system(@args) && croak("Could not run msgfmt on $dir\\$_");
print ".";

View File

@@ -0,0 +1,35 @@
diff --git a/src/tools/msvc/Install.pm b/src/tools/msvc/Install.pm
index d109b2c90..75c7446e6 100644
--- a/src/tools/msvc/Install.pm
+++ b/src/tools/msvc/Install.pm
@@ -22,13 +22,13 @@ our (@ISA, @EXPORT_OK);
my $insttype;
my @client_contribs = ('oid2name', 'pgbench', 'vacuumlo');
-my @client_program_files = (
- 'clusterdb', 'createdb', 'createuser', 'dropdb',
- 'dropuser', 'ecpg', 'libecpg', 'libecpg_compat',
- 'libpgtypes', 'libpq', 'pg_amcheck', 'pg_basebackup',
- 'pg_config', 'pg_dump', 'pg_dumpall', 'pg_isready',
- 'pg_receivewal', 'pg_recvlogical', 'pg_restore', 'psql',
- 'reindexdb', 'vacuumdb', @client_contribs);
+my @client_program_files = ( 'libecpg','libecpg_compat', 'libpgtypes', 'libpq' );
+ #'clusterdb', 'createdb', 'createuser', 'dropdb',
+ #'dropuser', 'ecpg', 'libecpg', 'libecpg_compat',
+ #'libpgtypes', 'libpq', 'pg_amcheck', 'pg_basebackup',
+ #'pg_config', 'pg_dump', 'pg_dumpall', 'pg_isready',
+ #'pg_receivewal', 'pg_recvlogical', 'pg_restore', 'psql',
+ #'reindexdb', 'vacuumdb', @client_contribs);
sub lcopy
{
@@ -121,7 +121,7 @@ sub Install
CopyFiles(
'Import libraries',
$target . '/lib/',
- "$conf\\", "postgres\\postgres.lib", "libpgcommon\\libpgcommon.lib",
+ "$conf\\", "libpgcommon\\libpgcommon.lib",
"libpgport\\libpgport.lib");
CopyContribFiles($config, $target);
CopyIncludeFiles($target);

View File

@@ -0,0 +1,13 @@
diff --git a/src/tools/msvc/Install.pm b/src/tools/msvc/Install.pm
index 66c0c3483..2154c6cf6 100644
--- a/src/tools/msvc/Install.pm
+++ b/src/tools/msvc/Install.pm
@@ -733,7 +733,7 @@ sub GenerateNLSFiles
EnsureDirectories($target, "share/libpq/locale/$lang",
"share/libpq/locale/$lang/LC_MESSAGES");
my @args = (
- "$nlspath\\bin\\msgfmt",
+ "msgfmt.exe",
'-o',
"$target\\share\\libpq\\locale\\$lang\\LC_MESSAGES\\$prgm-$majorver.mo",
$_);

View File

@@ -0,0 +1,13 @@
diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm
index 51711c2bf..d33fdc3b0 100644
--- a/src/tools/msvc/Solution.pm
+++ b/src/tools/msvc/Solution.pm
@@ -129,7 +129,7 @@ sub GetOpenSSLVersion
# openssl.exe is in the specified directory.
# Quote the .exe name in case it has spaces
my $opensslcmd =
- qq("$self->{options}->{openssl}\\bin\\openssl.exe" version 2>&1);
+ qq("openssl.exe" version 2>&1);
my $sslout = `$opensslcmd`;
$? >> 8 == 0

View File

@@ -0,0 +1,40 @@
diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm
index 99f39caa5..21b5559d6 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -494,14 +494,15 @@ sub mkvcbuild
# Attempt to get python version and location.
# Assume python.exe in specified dir.
- my $pythonprog = "import sys;print(sys.prefix);"
- . "print(str(sys.version_info[0])+str(sys.version_info[1]))";
- my $prefixcmd =
- qq("$solution->{options}->{python}\\python" -c "$pythonprog");
- my $pyout = `$prefixcmd`;
- die "Could not query for python version!\n" if $?;
- my ($pyprefix, $pyver) = split(/\r?\n/, $pyout);
-
+ #my $pythonprog = "import sys;print(sys.prefix);"
+ # . "print(str(sys.version_info[0])+str(sys.version_info[1]))";
+ #my $prefixcmd =
+ # qq("$solution->{options}->{python}\\python" -c "$pythonprog");
+ #my $pyout = `$prefixcmd`;
+ #die "Could not query for python version!\n" if $?;
+ #my ($pyprefix, $pyver) = split(/\r?\n/, $pyout);
+ my $pyprefix = $solution->{options}->{python};
+ my $pyver = 310;
# Sometimes (always?) if python is not present, the execution
# appears to work, but gives no data...
die "Failed to query python for version information\n"
@@ -510,8 +511,9 @@ sub mkvcbuild
my $pymajorver = substr($pyver, 0, 1);
my $plpython = $solution->AddProject('plpython' . $pymajorver,
'dll', 'PLs', 'src/pl/plpython');
- $plpython->AddIncludeDir($pyprefix . '/include');
- $plpython->AddLibrary($pyprefix . "/Libs/python$pyver.lib");
+ $plpython->AddIncludeDir($pyprefix . '/include/python3.10');
+ $plpython->AddDefine('_DEBUG'); # required for python autolink linking correctly!
+ $plpython->AddLibrary($pyprefix . "/debug/lib/python$pyver" . "_d.lib");
$plpython->AddReference($postgres);
# Add transform modules dependent on plpython

View File

@@ -0,0 +1,39 @@
diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm
index 99f39caa5..21b5559d6 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -494,14 +494,15 @@ sub mkvcbuild
# Attempt to get python version and location.
# Assume python.exe in specified dir.
- my $pythonprog = "import sys;print(sys.prefix);"
- . "print(str(sys.version_info[0])+str(sys.version_info[1]))";
- my $prefixcmd =
- qq("$solution->{options}->{python}\\python" -c "$pythonprog");
- my $pyout = `$prefixcmd`;
- die "Could not query for python version!\n" if $?;
- my ($pyprefix, $pyver) = split(/\r?\n/, $pyout);
-
+ #my $pythonprog = "import sys;print(sys.prefix);"
+ # . "print(str(sys.version_info[0])+str(sys.version_info[1]))";
+ #my $prefixcmd =
+ # qq("$solution->{options}->{python}\\python" -c "$pythonprog");
+ #my $pyout = `$prefixcmd`;
+ #die "Could not query for python version!\n" if $?;
+ #my ($pyprefix, $pyver) = split(/\r?\n/, $pyout);
+ my $pyprefix = $solution->{options}->{python};
+ my $pyver = 310;
# Sometimes (always?) if python is not present, the execution
# appears to work, but gives no data...
die "Failed to query python for version information\n"
@@ -510,8 +511,8 @@ sub mkvcbuild
my $pymajorver = substr($pyver, 0, 1);
my $plpython = $solution->AddProject('plpython' . $pymajorver,
'dll', 'PLs', 'src/pl/plpython');
- $plpython->AddIncludeDir($pyprefix . '/include');
- $plpython->AddLibrary($pyprefix . "/Libs/python$pyver.lib");
+ $plpython->AddIncludeDir($pyprefix . '/include/python3.10');
+ $plpython->AddLibrary($pyprefix . "/lib/python$pyver.lib");
$plpython->AddReference($postgres);
# Add transform modules dependent on plpython

View File

@@ -0,0 +1,17 @@
diff --git a/src/pl/plpython/plpython.h b/src/pl/plpython/plpython.h
index 3a1f0d56d..6a8a09a20 100644
--- a/src/pl/plpython/plpython.h
+++ b/src/pl/plpython/plpython.h
@@ -45,12 +45,10 @@
#if defined(_MSC_VER) && defined(_DEBUG)
/* Python uses #pragma to bring in a non-default libpython on VC++ if
* _DEBUG is defined */
-#undef _DEBUG
/* Also hide away errcode, since we load Python.h before postgres.h */
#define errcode __msvc_errcode
#include <Python.h>
#undef errcode
-#define _DEBUG
#elif defined (_MSC_VER)
#define errcode __msvc_errcode
#include <Python.h>

View File

@@ -0,0 +1,13 @@
diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm
index e2fbe95..8c4f279 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -226,7 +226,7 @@ sub mkvcbuild
$pltcl->AddIncludeDir($solution->{options}->{tcl} . '/include');
$pltcl->AddReference($postgres);
- for my $tclver (qw(86t 86 85 84))
+ for my $tclver (qw(90 90g 90s 90sg))
{
my $tcllib = $solution->{options}->{tcl} . "/lib/tcl$tclver.lib";
if (-e $tcllib)

View File

@@ -0,0 +1,43 @@
diff --git a/src/tools/msvc/pgflex.pl b/src/tools/msvc/pgflex.pl
index aceed5ffd..f6ed215e8 100644
--- a/src/tools/msvc/pgflex.pl
+++ b/src/tools/msvc/pgflex.pl
@@ -16,7 +16,7 @@ $ENV{CYGWIN} = 'nodosfilewarning';
do './src/tools/msvc/buildenv.pl' if -e 'src/tools/msvc/buildenv.pl';
-my ($flexver) = `flex -V`; # grab first line
+my ($flexver) = `win_flex -V`; # grab first line
$flexver = (split(/\s+/, $flexver))[1];
$flexver =~ s/[^0-9.]//g;
my @verparts = split(/\./, $flexver);
@@ -52,7 +52,7 @@ close($mf);
my $basetarg = basename($output);
my $flexflags = ($make =~ /^$basetarg:\s*FLEXFLAGS\s*=\s*(\S.*)/m ? $1 : '');
-system("flex $flexflags -o$output $input");
+system("win_flex $flexflags -o$output $input");
if ($? == 0)
{
diff --git a/src/tools/msvc/pgbison.pl b/src/tools/msvc/pgbison.pl
index 895e398c0..f5b524a5d 100644
--- a/src/tools/msvc/pgbison.pl
+++ b/src/tools/msvc/pgbison.pl
@@ -13,7 +13,7 @@ use File::Basename;
do './src/tools/msvc/buildenv.pl' if -e 'src/tools/msvc/buildenv.pl';
-my ($bisonver) = `bison -V`; # grab first line
+my ($bisonver) = `win_bison -V`; # grab first line
$bisonver = (split(/\s+/, $bisonver))[3]; # grab version number
unless ($bisonver eq '1.875' || $bisonver ge '2.2')
@@ -51,5 +51,5 @@ close($mf);
my $nodep = $bisonver ge '3.0' ? "-Wno-deprecated" : "";
-system("bison $nodep $headerflag $input -o $output");
+system("win_bison $nodep $headerflag $input -o $output");
exit $? >> 8;

343
externals/vcpkg/ports/libpq/portfile.cmake vendored Executable file
View File

@@ -0,0 +1,343 @@
set(PORT_VERSION 14.1)
# NOTE: the python patches must be regenerated on version update
## Download and extract sources
vcpkg_download_distfile(ARCHIVE
URLS "https://ftp.postgresql.org/pub/source/v${PORT_VERSION}/postgresql-${PORT_VERSION}.tar.bz2"
FILENAME "postgresql-${PORT_VERSION}.tar.bz2"
SHA512 4a0bec157d5464bb9e5f5c0eb0efdede55526e03f6f4d660b87d161a47705eb152fa0878960b1581bce42a5ed28a1f457825ea54e8d22e34b5b8eb36473ceefd
)
set(PATCHES
patches/windows/install.patch
patches/windows/win_bison_flex.patch
patches/windows/openssl_exe_path.patch
patches/windows/Solution.patch
patches/windows/MSBuildProject_fix_gendef_perl.patch
patches/windows/msgfmt.patch
patches/windows/python_lib.patch
patches/windows/fix-compile-flag-Zi.patch
patches/windows/tcl_version.patch
patches/fix-configure.patch
)
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
list(APPEND PATCHES patches/windows/MSBuildProject-static-lib.patch)
list(APPEND PATCHES patches/windows/Mkvcbuild-static-lib.patch)
endif()
if(VCPKG_CRT_LINKAGE STREQUAL "static")
list(APPEND PATCHES patches/windows/MSBuildProject-static-crt.patch)
endif()
if(VCPKG_TARGET_ARCHITECTURE MATCHES "arm")
list(APPEND PATCHES patches/windows/arm.patch)
list(APPEND PATCHES patches/windows/host_skip_openssl.patch) # Skip openssl.exe version check since it cannot be executed by the host
endif()
if(NOT "${FEATURES}" MATCHES "client")
list(APPEND PATCHES patches/windows/minimize_install.patch)
else()
set(HAS_TOOLS TRUE)
endif()
vcpkg_extract_source_archive_ex(
OUT_SOURCE_PATH SOURCE_PATH
ARCHIVE "${ARCHIVE}"
PATCHES ${PATCHES}
)
unset(buildenv_contents)
# Get paths to required programs
set(REQUIRED_PROGRAMS PERL)
if(VCPKG_TARGET_IS_WINDOWS)
list(APPEND REQUIRED_PROGRAMS BISON FLEX)
endif()
foreach(program_name ${REQUIRED_PROGRAMS})
# Need to rename win_bison and win_flex to just bison and flex
vcpkg_find_acquire_program(${program_name})
get_filename_component(${program_name}_EXE_PATH ${${program_name}} DIRECTORY)
vcpkg_add_to_path(PREPEND "${${program_name}_EXE_PATH}")
set(buildenv_contents "${buildenv_contents}\n\$ENV{'PATH'}=\$ENV{'PATH'} . ';${${program_name}_EXE_PATH}';")
endforeach()
## Setup build types
if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE MATCHES "[Rr][Ee][Ll][Ee][Aa][Ss][Ee]")
set(_buildtype RELEASE)
set(_short rel)
list(APPEND port_config_list ${_buildtype})
set(INSTALL_PATH_SUFFIX_${_buildtype} "")
set(BUILDPATH_${_buildtype} "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${_short}")
file(REMOVE_RECURSE "${BUILDPATH_${_buildtype}}") #Clean old builds
set(PACKAGE_DIR_${_buildtype} ${CURRENT_PACKAGES_DIR})
unset(_short)
unset(_buildtype)
endif()
if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE MATCHES "[Dd][Ee][Bb][Uu][Gg]")
set(_buildtype DEBUG)
set(_short dbg)
list(APPEND port_config_list ${_buildtype})
set(INSTALL_PATH_SUFFIX_${_buildtype} "/debug")
set(BUILDPATH_${_buildtype} "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${_short}")
file(REMOVE_RECURSE "${BUILDPATH_${_buildtype}}") #Clean old builds
set(PACKAGE_DIR_${_buildtype} "${CURRENT_PACKAGES_DIR}${INSTALL_PATH_SUFFIX_${_buildtype}}")
unset(_short)
unset(_buildtype)
endif()
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/share/${PORT}")
## Do the build
if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW)
file(GLOB SOURCE_FILES ${SOURCE_PATH}/*)
foreach(_buildtype ${port_config_list})
# Copy libpq sources.
message(STATUS "Copying libpq source files to ${BUILDPATH_${_buildtype}}...")
foreach(SOURCE_FILE ${SOURCE_FILES})
file(COPY ${SOURCE_FILE} DESTINATION "${BUILDPATH_${_buildtype}}")
endforeach()
message(STATUS "Copying libpq source files... done")
vcpkg_apply_patches(
SOURCE_PATH "${BUILDPATH_${_buildtype}}"
PATCHES patches/windows/Solution_${_buildtype}.patch
patches/windows/python3_build_${_buildtype}.patch
)
message(STATUS "Patches applied!")
file(COPY "${CURRENT_PORT_DIR}/config.pl" DESTINATION "${BUILDPATH_${_buildtype}}/src/tools/msvc")
set(MSPROJ_PERL "${BUILDPATH_${_buildtype}}/src/tools/msvc/MSBuildProject.pm")
file(READ "${MSPROJ_PERL}" _contents)
string(REPLACE "perl" "\"${PERL}\"" _contents "${_contents}")
file(WRITE "${MSPROJ_PERL}" "${_contents}")
set(CONFIG_FILE "${BUILDPATH_${_buildtype}}/src/tools/msvc/config.pl")
file(READ "${CONFIG_FILE}" _contents)
## ldap => undef, # --with-ldap
## extraver => undef, # --with-extra-version=<string>
## gss => undef, # --with-gssapi=<path>
## icu => undef, # --with-icu=<path> ##done
## nls => undef, # --enable-nls=<path> ##done
## tap_tests => undef, # --enable-tap-tests
## tcl => undef, # --with-tcl=<path> #done
## perl => undef, # --with-perl
## python => undef, # --with-python=<path> ##done
## openssl => undef, # --with-openssl=<path> ##done
## uuid => undef, # --with-ossp-uuid
## xml => undef, # --with-libxml=<path> ##done
## xslt => undef, # --with-libxslt=<path> ##done
## iconv => undef, # (not in configure, path to iconv) ##done (needed by xml)
## zlib => undef # --with-zlib=<path> ##done
## Setup external dependencies
##"-DFEATURES=core;openssl;zlib" "-DALL_FEATURES=openssl;zlib;readline;libedit;python;tcl;nls;systemd;llvm;icu;bonjour;uuid;xml;xslt;"
if("${FEATURES}" MATCHES "icu")
string(REPLACE "icu => undef" "icu => \"${CURRENT_INSTALLED_DIR}\"" _contents "${_contents}")
endif()
if("${FEATURES}" MATCHES "nls")
string(REPLACE "nls => undef" "nls => \"${CURRENT_INSTALLED_DIR}\"" _contents "${_contents}")
vcpkg_acquire_msys(MSYS_ROOT PACKAGES gettext)
vcpkg_add_to_path("${MSYS_ROOT}/usr/bin")
endif()
if("${FEATURES}" MATCHES "openssl")
set(buildenv_contents "${buildenv_contents}\n\$ENV{'PATH'}=\$ENV{'PATH'} . ';${CURRENT_INSTALLED_DIR}/tools/openssl';")
#set(_contents "${_contents}\n\$ENV{PATH}=\$ENV{PATH} . ';${CURRENT_INSTALLED_DIR}/tools/openssl';")
string(REPLACE "openssl => undef" "openssl => \"${CURRENT_INSTALLED_DIR}\"" _contents "${_contents}")
endif()
if("${FEATURES}" MATCHES "python")
#vcpkg_find_acquire_program(PYTHON3)
#get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
#vcpkg_add_to_path("${PYTHON3_EXE_PATH}")
string(REPLACE "python => undef" "python => \"${CURRENT_INSTALLED_DIR}\"" _contents "${_contents}")
endif()
if("${FEATURES}" MATCHES "tcl")
string(REPLACE "tcl => undef" "tcl => \"${CURRENT_INSTALLED_DIR}\"" _contents "${_contents}")
endif()
if("${FEATURES}" MATCHES "xml")
string(REPLACE "xml => undef" "xml => \"${CURRENT_INSTALLED_DIR}\"" _contents "${_contents}")
string(REPLACE "iconv => undef" "iconv => \"${CURRENT_INSTALLED_DIR}\"" _contents "${_contents}")
endif()
if("${FEATURES}" MATCHES "xslt")
string(REPLACE "xslt => undef" "xslt => \"${CURRENT_INSTALLED_DIR}\"" _contents "${_contents}")
endif()
if("${FEATURES}" MATCHES "zlib")
string(REPLACE "zlib => undef" "zlib => \"${CURRENT_INSTALLED_DIR}\"" _contents "${_contents}")
endif()
if("${FEATURES}" MATCHES "lz4")
string(REPLACE "lz4 => undef" "lz4 => \"${CURRENT_INSTALLED_DIR}\"" _contents "${_contents}")
endif()
file(WRITE "${CONFIG_FILE}" "${_contents}")
file(WRITE "${BUILDPATH_${_buildtype}}/src/tools/msvc/buildenv.pl" "${buildenv_contents}")
vcpkg_get_windows_sdk(VCPKG_TARGET_PLATFORM_VERSION)
set(ENV{MSBFLAGS} "/p:PlatformToolset=${VCPKG_PLATFORM_TOOLSET}
/p:VCPkgLocalAppDataDisabled=true
/p:UseIntelMKL=No
/p:WindowsTargetPlatformVersion=${VCPKG_TARGET_PLATFORM_VERSION}
/m
/p:ForceImportBeforeCppTargets=\"${SCRIPTS}/buildsystems/msbuild/vcpkg.targets\"
/p:VcpkgTriplet=${TARGET_TRIPLET}
/p:VcpkgCurrentInstalledDir=\"${CURRENT_INSTALLED_DIR}\""
)
if(HAS_TOOLS)
if(VCPKG_TARGET_ARCHITECTURE STREQUAL x86)
set(ENV{MSBFLAGS} "$ENV{MSBFLAGS} /p:Platform=Win32")
endif()
message(STATUS "Building libpq ${TARGET_TRIPLET}-${_buildtype}...")
vcpkg_execute_required_process(
COMMAND ${PERL} build.pl ${_buildtype}
WORKING_DIRECTORY "${BUILDPATH_${_buildtype}}/src/tools/msvc"
LOGNAME "build-${TARGET_TRIPLET}-${_buildtype}"
)
message(STATUS "Building libpq ${TARGET_TRIPLET}-${_buildtype}... done")
else()
set(build_libs libpq libecpg_compat)
foreach(build_lib ${build_libs})
message(STATUS "Building ${build_lib} ${TARGET_TRIPLET}-${_buildtype}...")
vcpkg_execute_required_process(
COMMAND ${PERL} build.pl ${_buildtype} ${build_lib}
WORKING_DIRECTORY "${BUILDPATH_${_buildtype}}/src/tools/msvc"
LOGNAME "build-${build_lib}-${TARGET_TRIPLET}-${_buildtype}"
)
message(STATUS "Building ${build_lib} ${TARGET_TRIPLET}-${_buildtype}... done")
endforeach()
endif()
message(STATUS "Installing libpq ${TARGET_TRIPLET}-${_buildtype}...")
vcpkg_execute_required_process(
COMMAND ${PERL} install.pl "${CURRENT_PACKAGES_DIR}${INSTALL_PATH_SUFFIX_${_buildtype}}" client
WORKING_DIRECTORY "${BUILDPATH_${_buildtype}}/src/tools/msvc"
LOGNAME "install-${TARGET_TRIPLET}-${_buildtype}"
)
message(STATUS "Installing libpq ${TARGET_TRIPLET}-${_buildtype}... done")
endforeach()
message(STATUS "Cleanup libpq ${TARGET_TRIPLET}...")
#Cleanup
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/doc")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/tools")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/symbols")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/symbols")
if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin")
endif()
if(NOT HAS_TOOLS)
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/tools")
else()
vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}")
endif()
message(STATUS "Cleanup libpq ${TARGET_TRIPLET}... - done")
set(USE_DL OFF)
else()
file(COPY "${CMAKE_CURRENT_LIST_DIR}/Makefile" DESTINATION "${SOURCE_PATH}")
if("nls" IN_LIST FEATURES)
list(APPEND BUILD_OPTS --enable-nls)
set(ENV{MSGFMT} "${CURRENT_HOST_INSTALLED_DIR}/tools/gettext/bin/msgfmt${VCPKG_HOST_EXECUTABLE_SUFFIX}")
else()
list(APPEND BUILD_OPTS --disable-nls)
endif()
if("openssl" IN_LIST FEATURES)
list(APPEND BUILD_OPTS --with-openssl)
else()
list(APPEND BUILD_OPTS --without-openssl)
endif()
if("zlib" IN_LIST FEATURES)
list(APPEND BUILD_OPTS --with-zlib)
else()
list(APPEND BUILD_OPTS --without-zlib)
endif()
if("icu" IN_LIST FEATURES)
list(APPEND BUILD_OPTS --with-icu)
else()
list(APPEND BUILD_OPTS --without-icu)
endif()
if("lz4" IN_LIST FEATURES)
list(APPEND BUILD_OPTS --with-lz4)
else()
list(APPEND BUILD_OPTS --without-lz4)
endif()
if("readline" IN_LIST FEATURES)
list(APPEND BUILD_OPTS --with-readline)
else()
list(APPEND BUILD_OPTS --without-readline)
endif()
if("xml" IN_LIST FEATURES)
list(APPEND BUILD_OPTS --with-libxml)
else()
list(APPEND BUILD_OPTS --without-libxml)
endif()
if("xslt" IN_LIST FEATURES)
list(APPEND BUILD_OPTS --with-libxslt)
else()
list(APPEND BUILD_OPTS --without-libxslt)
endif()
if("python" IN_LIST FEATURES)
list(APPEND BUILD_OPTS --with-python)
else()
list(APPEND BUILD_OPTS --without-python)
endif()
if(VCPKG_TARGET_IS_ANDROID) # AND CMAKE_SYSTEM_VERSION LESS 26)
list(APPEND BUILD_OPTS ac_cv_header_langinfo_h=no)
endif()
if(VCPKG_OSX_SYSROOT)
list(APPEND BUILD_OPTS "PG_SYSROOT=${VCPKG_OSX_SYSROOT}")
endif()
vcpkg_configure_make(
AUTOCONFIG
SOURCE_PATH "${SOURCE_PATH}"
COPY_SOURCE
DETERMINE_BUILD_TRIPLET
OPTIONS
${BUILD_OPTS}
OPTIONS_DEBUG
--enable-debug
)
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
set(ENV{LIBPQ_LIBRARY_TYPE} shared)
else()
set(ENV{LIBPQ_LIBRARY_TYPE} static)
endif()
if(VCPKG_TARGET_IS_MINGW)
set(ENV{USING_MINGW} yes)
endif()
vcpkg_install_make()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/bin")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
if(NOT HAS_TOOLS)
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin")
else()
vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin")
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/tools/${PORT}/debug")
endif()
if(VCPKG_TARGET_IS_MINGW AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/bin")
file(RENAME "${CURRENT_PACKAGES_DIR}/lib/libpq.a" "${CURRENT_PACKAGES_DIR}/lib/libpq.dll.a")
file(RENAME "${CURRENT_PACKAGES_DIR}/lib/libpq.dll" "${CURRENT_PACKAGES_DIR}/bin/libpq.dll")
endif()
if (NOT VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/bin")
file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/libpq.a" "${CURRENT_PACKAGES_DIR}/debug/lib/libpq.dll.a")
file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/libpq.dll" "${CURRENT_PACKAGES_DIR}/debug/bin/libpq.dll")
endif()
endif()
if(VCPKG_TARGET_IS_MINGW)
set(USE_DL OFF)
else()
set(USE_DL ON)
endif()
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/postgresql/server/pg_config.h" "#define CONFIGURE_ARGS" "// #define CONFIGURE_ARGS")
vcpkg_replace_string("${CURRENT_PACKAGES_DIR}/include/pg_config.h" "#define CONFIGURE_ARGS" "// #define CONFIGURE_ARGS")
endif()
configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/postgresql/vcpkg-cmake-wrapper.cmake" @ONLY)
file(INSTALL "${CURRENT_PORT_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}")
file(INSTALL "${SOURCE_PATH}/COPYRIGHT" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
vcpkg_fixup_pkgconfig()

4
externals/vcpkg/ports/libpq/usage vendored Executable file
View File

@@ -0,0 +1,4 @@
The package libpq provides CMake integration:
find_package(PostgreSQL REQUIRED)
target_link_libraries(main PRIVATE PostgreSQL::PostgreSQL)

View File

@@ -0,0 +1,66 @@
# Give the CMake module a little bit of help to find the debug libraries
find_library(PostgreSQL_LIBRARY_DEBUG
NAMES pq
PATHS
"${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib"
NO_DEFAULT_PATH
)
_find_package(${ARGS})
if(PostgreSQL_FOUND AND @USE_DL@)
find_library(PostgreSQL_DL_LIBRARY NAMES dl)
if(PostgreSQL_DL_LIBRARY)
list(APPEND PostgreSQL_LIBRARIES "dl")
if(TARGET PostgreSQL::PostgreSQL)
set_property(TARGET PostgreSQL::PostgreSQL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "dl")
endif()
endif()
endif()
if(PostgreSQL_FOUND AND "@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static")
include(SelectLibraryConfigurations)
foreach(LIB_ITEM libpgport libpgcommon pgport pgcommon)
find_library(PostgreSQL_${LIB_ITEM}_LIBRARY_RELEASE
NAMES ${LIB_ITEM}
PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/lib" NO_DEFAULT_PATH
)
if(TARGET PostgreSQL::PostgreSQL AND PostgreSQL_${LIB_ITEM}_LIBRARY_RELEASE)
set_property(
TARGET PostgreSQL::PostgreSQL
APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$<\$<NOT:\$<CONFIG:DEBUG>>:${PostgreSQL_${LIB_ITEM}_LIBRARY_RELEASE}>"
)
endif()
find_library(PostgreSQL_${LIB_ITEM}_LIBRARY_DEBUG
NAMES ${LIB_ITEM}
PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug/lib" NO_DEFAULT_PATH
)
if(TARGET PostgreSQL::PostgreSQL AND PostgreSQL_${LIB_ITEM}_LIBRARY_DEBUG)
set_property(
TARGET PostgreSQL::PostgreSQL
APPEND PROPERTY INTERFACE_LINK_LIBRARIES "\$<\$<CONFIG:DEBUG>:${PostgreSQL_${LIB_ITEM}_LIBRARY_DEBUG}>"
)
endif()
if (PostgreSQL_${LIB_ITEM}_LIBRARY_RELEASE OR PostgreSQL_${LIB_ITEM}_LIBRARY_DEBUG)
select_library_configurations(PostgreSQL_${LIB_ITEM})
list(APPEND PostgreSQL_LIBRARIES ${PostgreSQL_${LIB_ITEM}_LIBRARY})
endif()
endforeach()
if(WIN32)
if(TARGET PostgreSQL::PostgreSQL)
set_property(TARGET PostgreSQL::PostgreSQL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "Secur32.lib")
endif()
list(APPEND PostgreSQL_LIBRARIES Secur32.lib)
endif()
cmake_policy(PUSH)
cmake_policy(SET CMP0057 NEW)
set(Z_VCPKG_PORT_FEATURES "@FEATURES@")
if("openssl" IN_LIST Z_VCPKG_PORT_FEATURES)
find_package(OpenSSL REQUIRED)
if(TARGET PostgreSQL::PostgreSQL)
set_property(TARGET PostgreSQL::PostgreSQL APPEND PROPERTY INTERFACE_LINK_LIBRARIES "OpenSSL::SSL")
endif()
list(APPEND PostgreSQL_LIBRARIES OpenSSL::SSL)
endif()
unset(Z_VCPKG_PORT_FEATURES)
cmake_policy(POP)
endif()

125
externals/vcpkg/ports/libpq/vcpkg.json vendored Executable file
View File

@@ -0,0 +1,125 @@
{
"name": "libpq",
"version": "14.1",
"port-version": 2,
"description": "The official database access API of postgresql",
"homepage": "https://www.postgresql.org/",
"license": "PostgreSQL",
"supports": "!uwp",
"dependencies": [
{
"name": "libpq",
"default-features": false,
"features": [
"bonjour"
],
"platform": "osx"
}
],
"default-features": [
"lz4",
"openssl",
"zlib"
],
"features": {
"bonjour": {
"description": "Build with Bonjour support (--with-bonjour)",
"supports": "osx"
},
"client": {
"description": "Build all client tools and libraries (dynamic only?)",
"supports": "!(windows & !mingw & static)"
},
"icu": {
"description": "Build with support for the ICU library (--with-icu)",
"dependencies": [
"icu"
]
},
"lz4": {
"description": "Use lz4 (else --without-lz4)",
"dependencies": [
"lz4"
]
},
"nls": {
"description": "Native Language Support (--enable-nls[=LANGUAGES])",
"dependencies": [
"gettext",
{
"name": "gettext",
"host": true,
"features": [
"tools"
]
}
]
},
"openssl": {
"description": "support for encrypted client connections and random number generation on platforms that do not have \"/dev/urandom\" (except windows) (--with-openssl)",
"dependencies": [
"openssl"
]
},
"python": {
"description": "build the PL/Python server programming language (dynamic only?) (--with-python)",
"supports": "!(windows & (static | mingw))",
"dependencies": [
{
"name": "libpq",
"default-features": false,
"features": [
"client"
]
},
"python3"
]
},
"readline": {
"description": "Use readline (else --without-readline)",
"supports": "!windows, mingw",
"dependencies": [
"readline"
]
},
"tcl": {
"description": "build the PL/Tcl procedural language(dynamic only?) (--with-tcl)",
"supports": "!(windows & (static | mingw))",
"dependencies": [
{
"name": "libpq",
"default-features": false,
"features": [
"client"
]
},
"tcl"
]
},
"xml": {
"description": "Build with libxml (--with-libxml)",
"dependencies": [
"libxml2"
]
},
"xslt": {
"description": "Build with libxslt (--with-libxslt)",
"dependencies": [
{
"name": "libpq",
"default-features": false,
"features": [
"xml"
]
},
"libxslt"
]
},
"zlib": {
"description": "Use zlib (else --without-zlib)",
"dependencies": [
"zlib"
]
}
}
}