From a194106c1b4468c74dbf6e83d845be86239844aa Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Fri, 18 May 2018 11:53:18 -0400 Subject: [PATCH] MSVC builds must use a separate stamp file for copying generated headers. Commit bad51a49a tried to use a shortcut with just one stamp file recording the actions of generating the pg_*_d.h headers and copying them to the src/include/catalog/ directory. That doesn't work in all scenarios though, so we must use two stamp files like the Makefiles do. John Naylor Discussion: https://postgr.es/m/CANFyU944GdHr=puPbA78STnqr=8kgMrGF-VDHck6aO_-qNDALg@mail.gmail.com --- src/tools/msvc/Solution.pm | 8 ++++++++ src/tools/msvc/clean.bat | 1 + 2 files changed, 9 insertions(+) diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm index 4ad1f8f8b4..a33e68eccf 100644 --- a/src/tools/msvc/Solution.pm +++ b/src/tools/msvc/Solution.pm @@ -501,7 +501,12 @@ EOF || confess "Could not touch bki-stamp"; close($f); chdir('../../..'); + } + if (IsNewer( + 'src/include/catalog/header-stamp', + 'src/backend/catalog/bki-stamp')) + { # Copy generated headers to include directory. opendir(my $dh, 'src/backend/catalog/') || die "Can't opendir src/backend/catalog/ $!"; @@ -516,6 +521,9 @@ EOF copyFile( 'src/backend/catalog/schemapg.h', 'src/include/catalog/schemapg.h'); + open(my $chs, '>', 'src/include/catalog/header-stamp') + || confess "Could not touch header-stamp"; + close($chs); } open(my $o, '>', "doc/src/sgml/version.sgml") diff --git a/src/tools/msvc/clean.bat b/src/tools/msvc/clean.bat index a041ef2ebd..65454421d7 100755 --- a/src/tools/msvc/clean.bat +++ b/src/tools/msvc/clean.bat @@ -49,6 +49,7 @@ if exist src\include\storage\lwlocknames.h del /q src\include\storage\lwlockname if exist src\include\utils\probes.h del /q src\include\utils\probes.h if exist src\include\catalog\schemapg.h del /q src\include\catalog\schemapg.h if exist src\include\catalog\pg_*_d.h del /q src\include\catalog\pg_*_d.h +if exist src\include\catalog\header-stamp del /q src\include\catalog\header-stamp if exist doc\src\sgml\version.sgml del /q doc\src\sgml\version.sgml if %DIST%==1 if exist src\backend\utils\fmgroids.h del /q src\backend\utils\fmgroids.h -- 2.39.5