pg.ddx.io  pgsql-hackers@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Anton Voloshin <a.voloshin@postgrespro.ru>
To: Pg Hackers <pgsql-hackers@postgresql.org>
Subject: [PATCH] allow src/tools/msvc/*.bat files to be called from the root of the source tree
Date: Wed, 29 Dec 2021 17:16:46 +0700
Message-ID: <2b7a674b-5fb0-d264-75ef-ecc7a31e54f8@postgrespro.ru> (raw)

Hello,

currently, on Windows/MSVC, src\tools\msvc\*.bat files mostly require 
being in that src\tools\msvc directory first.

I suggest an obvious fix:

inline patch 1: src/tools/msvc/build.bat, src/tools/msvc/install.bat, src/tools/msvc/vcregress.bat (+3/-3 lines) download inline-1.patchdiff --git a/src/tools/msvc/build.bat b/src/tools/msvc/build.bat index 4001ac1d0d1..407b6559cfb 100755 --- a/src/tools/msvc/build.bat +++ b/src/tools/msvc/build.bat @@ -3,4 +3,4 @@ REM src/tools/msvc/build.bat REM all the logic for this now belongs in build.pl. This file really REM only exists so you don't have to type "perl build.pl" REM Resist any temptation to add any logic here. -@perl build.pl %* +@perl %~dp0\build.pl %* diff --git a/src/tools/msvc/install.bat b/src/tools/msvc/install.bat index d03277eff2b..98edf6bdffb 100644 --- a/src/tools/msvc/install.bat +++ b/src/tools/msvc/install.bat @@ -3,4 +3,4 @@ REM src/tools/msvc/install.bat REM all the logic for this now belongs in install.pl. This file really REM only exists so you don't have to type "perl install.pl" REM Resist any temptation to add any logic here. -@perl install.pl %* +@perl %~dp0\install.pl %* diff --git a/src/tools/msvc/vcregress.bat b/src/tools/msvc/vcregress.bat index a981d3a6aa1..0d65c823e13 100644 --- a/src/tools/msvc/vcregress.bat +++ b/src/tools/msvc/vcregress.bat @@ -3,4 +3,4 @@ REM src/tools/msvc/vcregress.bat REM all the logic for this now belongs in vcregress.pl. This file really REM only exists so you don't have to type "perl vcregress.pl" REM Resist any temptation to add any logic here. -@perl vcregress.pl %* +@perl %~dp0\vcregress.pl %*
This patch uses standard windows cmd's %~dp0 to get the complete path (drive, "d", and path, "p") of the currently executing .bat file to get proper path of a .pl file to execute. I find the following link useful whenever I need to remember details on cmd's %-substitution rules: https://ss64.com/nt/syntax-args.html With this change, one can call those .bat files, e.g. src\tools\msvc\build.bat, without leaving the root of the source tree. Not sure if similar change should be applied to pgflex.bat and pgbison.bat -- never used them on Windows and they seem to require being called from the root, but perhaps they deserve a similar change. If accepted, do you think this change is worthy of back-porting? Please advise if you think this change is a beneficial one. P.S. Yes, I am aware of very probable upcoming move to meson, but until then this little patch really helps me whenever I have to deal with Windows and MSVC from the command line. Besides, it could help old branches as well. -- Anton Voloshin https://postgrespro.ru Postgres Professional, The Russian Postgres Company Patches and attachments: download all (2 files, .tar.gz)
msvc-bat-path-fix.patch (text/x-patch, 1.3K) download diff --git a/src/tools/msvc/build.bat b/src/tools/msvc/build.bat index 4001ac1d0d1..407b6559cfb 100755 --- a/src/tools/msvc/build.bat +++ b/src/tools/msvc/build.bat @@ -3,4 +3,4 @@ REM src/tools/msvc/build.bat REM all the logic for this now belongs in build.pl. This file really REM only exists so you don't have to type "perl build.pl" REM Resist any temptation to add any logic here. -@perl build.pl %* +@perl %~dp0\build.pl %* diff --git a/src/tools/msvc/install.bat b/src/tools/msvc/install.bat index d03277eff2b..98edf6bdffb 100644 --- a/src/tools/msvc/install.bat +++ b/src/tools/msvc/install.bat @@ -3,4 +3,4 @@ REM src/tools/msvc/install.bat REM all the logic for this now belongs in install.pl. This file really REM only exists so you don't have to type "perl install.pl" REM Resist any temptation to add any logic here. -@perl install.pl %* +@perl %~dp0\install.pl %* diff --git a/src/tools/msvc/vcregress.bat b/src/tools/msvc/vcregress.bat index a981d3a6aa1..0d65c823e13 100644 --- a/src/tools/msvc/vcregress.bat +++ b/src/tools/msvc/vcregress.bat @@ -3,4 +3,4 @@ REM src/tools/msvc/vcregress.bat REM all the logic for this now belongs in vcregress.pl. This file really REM only exists so you don't have to type "perl vcregress.pl" REM Resist any temptation to add any logic here. -@perl vcregress.pl %* +@perl %~dp0\vcregress.pl %*

view thread (5+ messages)  latest in thread

Message-ID: <2b7a674b-5fb0-d264-75ef-ecc7a31e54f8@postgrespro.ru>
Permalink:  ../2b7a674b-5fb0-d264-75ef-ecc7a31e54f8@postgrespro.ru/
Also on:    postgresql.org/message-id/2b7a674b-5fb0-d264-75ef-ecc7a31e54f8@postgrespro.ru

 ·  · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-hackers@postgresql.org
  Cc: a.voloshin@postgrespro.ru
  Subject: Re: [PATCH] allow src/tools/msvc/*.bat files to be called from the root of the source tree
  In-Reply-To: <2b7a674b-5fb0-d264-75ef-ecc7a31e54f8@postgrespro.ru>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox