vcpkg/ports/libpq/patches/windows/install.patch
Long Huan eabb3ffe71
[libpq]fix windows build failure (#19031)
* fix windows build failure

fix Could not find debug or release binaries at libpq\x64-windows-rel\src\tools\msvc/Install.pm line 77.

* Update libpq.json
2021-07-22 13:41:26 -07:00

245 lines
7.6 KiB
Diff

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
@@ -63,8 +63,16 @@ sub Install
do "./config.pl" if (-f "config.pl");
}
- chdir("../../..") if (-f "../../../configure");
- chdir("../../../..") if (-f "../../../../configure");
+ # Move to the root path depending on the current location.
+ if (-f "../../../configure")
+ {
+ chdir("../../..");
+ }
+ elsif (-f "../../../../configure")
+ {
+ chdir("../../../..");
+ }
+
my $conf = "";
if (-d "debug")
{
@@ -106,7 +106,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/',
@@ -78,10 +78,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);
@@ -120,35 +120,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');
@@ -167,7 +167,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});
@@ -282,23 +282,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'
@@ -306,11 +309,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");
@@ -319,10 +322,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
@@ -339,7 +339,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 ".";
}
@@ -366,7 +366,7 @@ sub GenerateTimezoneFiles
print "Generating timezone files...";
my @args =
- ("$conf/zic/zic", '-d', "$target/share/timezone", '-p', "$posixrules");
+ ("$conf/zic/zic", '-d', "$target/share/libpq/timezone", '-p', "$posixrules");
foreach (@tzfiles)
{
my $tzfile = $_;
@@ -391,7 +391,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');
@@ -476,7 +476,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 '.';
}
@@ -494,7 +494,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 '.';
}
@@ -509,7 +509,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 '.';
}
@@ -572,7 +572,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 '.';
}
@@ -701,7 +701,7 @@ sub GenerateNLSFiles
my $majorver = shift;
print "Installing NLS files...";
- EnsureDirectories($target, "share/locale");
+ EnsureDirectories($target, "share/libpq/locale");
my @flist;
File::Find::find(
{
@@ -723,12 +723,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 ".";