Thread: msvc directory missing in PostgreSQL 17.0

msvc directory missing in PostgreSQL 17.0

From
Mark Hill
Date:

I just downloaded the Postgresql 17.0 and the extracted directory postgresql-17.0/src/tools does not contain

the “msvc” directory as it has since I’ve been building Postgres 12, 14, and 16.   How am I supposed to build
PostgreSQL for Windows now?   I’m not sure what msvc_gendef.pl does.   How do we build Postgres for Windows
using Visual Studio?

Thanks, Mark

Re: msvc directory missing in PostgreSQL 17.0

From
Bill Smith
Date:
Check out this:

There's a table showing the setup & build commands using the old way and the new way (meson).

On Oct 21, 2024, at 4:12 PM, Mark Hill <Mark.Hill@sas.com> wrote:

Thanks Bill!   Do you have a sample meson command for building that you could share?

Thanks, Mark
 
From: Bill Smith <bill.smith@enterprisedb.com>
Sent: Friday, October 18, 2024 4:11 PM
To: Mark Hill <Mark.Hill@sas.com>
Cc: pgsql-hackers@lists.postgresql.org
Subject: Re: msvc directory missing in PostgreSQL 17.0
 

EXTERNAL

 


On Oct 18, 2024, at 4:05PM, Mark Hill <Mark.Hill@sas.com> wrote:
 
I just downloaded the Postgresql 17.0 and the extracted directory postgresql-17.0/src/tools does not contain

the “msvc” directory as it has since I’ve been building Postgres 12, 14, and 16.   How am I supposed to build
PostgreSQL for Windows now?   I’m not sure what msvc_gendef.pl does.   How do we build Postgres for Windows
using Visual Studio?

 
You’ll want to use meson to build PG.  See the docs here:


Thanks, Mark

Re: msvc directory missing in PostgreSQL 17.0

From
黄铎彦
Date:

I could hardly find detailed and complete tutorials on building the latest version with Visual Studio. I did use meson to generate sln and vcxproj files in Command Prompt (attatchment: 00meson_cmd_to_gen_sln.txt). But after opening the sln and run menu command "build -> build solution", it failed. The contents of the Output Window in Visual Studio are in the attatchment 01build_log.txt.

On 2024/10/27 15:07, Bill Smith wrote:
Check out this:

There's a table showing the setup & build commands using the old way and the new way (meson).

On Oct 21, 2024, at 4:12 PM, Mark Hill <Mark.Hill@sas.com> wrote:

Thanks Bill!   Do you have a sample meson command for building that you could share?

Thanks, Mark
 
From: Bill Smith <bill.smith@enterprisedb.com>
Sent: Friday, October 18, 2024 4:11 PM
To: Mark Hill <Mark.Hill@sas.com>
Cc: pgsql-hackers@lists.postgresql.org
Subject: Re: msvc directory missing in PostgreSQL 17.0
 

EXTERNAL

 


On Oct 18, 2024, at 4:05PM, Mark Hill <Mark.Hill@sas.com> wrote:
 
I just downloaded the Postgresql 17.0 and the extracted directory postgresql-17.0/src/tools does not contain

the “msvc” directory as it has since I’ve been building Postgres 12, 14, and 16.   How am I supposed to build
PostgreSQL for Windows now?   I’m not sure what msvc_gendef.pl does.   How do we build Postgres for Windows
using Visual Studio?

 
You’ll want to use meson to build PG.  See the docs here:


Thanks, Mark




Re: msvc directory missing in PostgreSQL 17.0

From
Dave Page
Date:

On Sun, 27 Oct 2024 at 10:17, 黄铎彦 <222200428@fzu.edu.cn> wrote:

I could hardly find detailed and complete tutorials on building the latest version with Visual Studio.


You can see how it’s done if you take a look at the actions in 
https://github.com/dpage/winpgbuild. The postgresql-dev one is probably the best example, as it only runs a single meson build, whilst the postgresql action is a matrix build that has to handle both the old style msvc and meson, and thus is much harder to read.

The repo also shows how to build (nearly) all the dependencies in a meson compatible way, or you can just download the build artefacts if you don’t want to do that yourself (see the bundle-deps action). You may not see the artefacts if you’re not logged in to Github.

I did use meson to generate sln and vcxproj files in Command Prompt (attatchment: 00meson_cmd_to_gen_sln.txt). But after opening the sln and run menu command "build -> build solution", it failed. The contents of the Output Window in Visual Studio are in the attatchment 01build_log.txt.

-----原始邮件-----
From: "Bill Smith" <bill.smith@enterprisedb.com>
Sent: 2024-10-27 15:07:39
To: "Mark Hill" <Mark.Hill@sas.com>
Subject: Re: msvc directory missing in PostgreSQL 17.0


Check out this:

There's a table showing the setup & build commands using the old way and the new way (meson).

On Oct 21, 2024, at 4:12 PM, Mark Hill <Mark.Hill@sas.com> wrote:

Thanks Bill!   Do you have a sample meson command for building that you could share?

Thanks, Mark
 
From: Bill Smith <bill.smith@enterprisedb.com>
Sent: Friday, October 18, 2024 4:11 PM
To: Mark Hill <Mark.Hill@sas.com>
Cc: pgsql-hackers@lists.postgresql.org
Subject: Re: msvc directory missing in PostgreSQL 17.0
 

EXTERNAL

 


On Oct 18, 2024, at 4:05PM, Mark Hill <Mark.Hill@sas.com> wrote:
 
I just downloaded the Postgresql 17.0 and the extracted directory postgresql-17.0/src/tools does not contain

the “msvc” directory as it has since I’ve been building Postgres 12, 14, and 16.   How am I supposed to build
PostgreSQL for Windows now?   I’m not sure what msvc_gendef.pl does.   How do we build Postgres for Windows
using Visual Studio?

 
You’ll want to use meson to build PG.  See the docs here:


Thanks, Mark

Re: Re: msvc directory missing in PostgreSQL 17.0

From
"huangdy2022@qq.com"
Date:
On Sun, 27 Oct 2024 at 16:38 GMT+8, Dave Page <dpage@pgadmin.org> wrote:


>You can see how it’s done if you take a look at the actions in

>https://github.com/dpage/winpgbuild. The postgresql-dev one is probably the

>best example, as it only runs a single meson build, whilst the postgresql

>action is a matrix build that has to handle both the old style msvc and

>meson, and thus is much harder to read.

>

>The repo also shows how to build (nearly) all the dependencies in a meson

>compatible way, or you can just download the build artefacts if you don’t

>want to do that yourself (see the bundle-deps action). You may not see the

>artefacts if you’re not logged in to Github.

That repo seems to be something like Github action. But I would like to generate sln and vcxproj files in my Windows
PC,then open Visual Studio, compile and navigate. 

(Just now I changed my email address)








Re: msvc directory missing in PostgreSQL 17.0

From
"huangdy2022@qq.com"
Date:
On Sun, 27 Oct 2024 at 17:38 GMT+8, 黄铎彦 <huangdy2022@qq.com> wrote:


>That repo seems to be something like Github action. But I would like to generate sln and vcxproj files in my Windows
PC,then open Visual Studio, compile and navigate. 


I used `meson setup --backend vs` but got compile error with the sln file.

Re: msvc directory missing in PostgreSQL 17.0

From
Andres Freund
Date:
Hi,

On October 27, 2024 5:50:51 AM EDT, "huangdy2022@qq.com" <huangdy2022@qq.com> wrote:
>On Sun, 27 Oct 2024 at 17:38 GMT+8, 黄铎彦 <huangdy2022@qq.com> wrote:
>
>
>>That repo seems to be something like Github action. But I would like to generate sln and vcxproj files in my Windows
PC,then open Visual Studio, compile and navigate. 
>
>
>I used `meson setup --backend vs` but got compile error with the sln file.

Without knowing the error it's hard for us to help...

Andres
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.



Re: msvc directory missing in PostgreSQL 17.0

From
Umar Hayat
Date:
Hi,
In my opinion the issue could be Active-state perl ( as I see in your
log file, activestate perl path). In  this thread [0] people faced
same problem and solved it using strawberry perl.

Regards
Umar Hayat

[0] https://www.postgresql.org/message-id/flat/CADK3HHLQ1MNmfXqEvQi36D_MQrheOZPcXv2H3s6otMbSmfwjzg%40mail.gmail.com


On Mon, 28 Oct 2024 at 10:31, 黄铎彦 <huangdy2022@qq.com> wrote:
>
> On Oct 28, 2024 1:58 GMT+8, Andres Freund <andres@anarazel.de> wrote:
> >Without knowing the error it's hard for us to help...
>
> The build log is attatched. Note current environment on my Windows PC can build pg 16.3 successfully, as I referenced
https://www.postgresql.org/docs/16/install-windows-full.html.
> I didn't make any change to my dependencies. I use Windows 10 Home and Visual Studio 2019.



Re: msvc directory missing in PostgreSQL 17.0

From
黄铎彦
Date:
On 2024-10-28 09:42 GMT+8 Umar Hayat <postgresql.wizard@gmail.com> wrote:
>[0] https://www.postgresql.org/message-id/flat/CADK3HHLQ1MNmfXqEvQi36D_MQrheOZPcXv2H3s6otMbSmfwjzg%40mail.gmail.com


It worked! Thank you Umar! My poor searching ability QwQ.
But may be a small bug about the order of generation. After I first executed "build -> build solution", I got an error
message"libpq.pdb not found". Then I executed for a second time and it returned complete success.