Re: Is a modern build system acceptable for older platforms - Mailing list pgsql-hackers

From Yuriy Zhuravlev
Subject Re: Is a modern build system acceptable for older platforms
Date
Msg-id CANiD2e-soCTfXxSA_qTsFFw0dNVJM4wBLB=VNQ5xJteKxtn40g@mail.gmail.com
Whole thread Raw
In response to Re: Is a modern build system acceptable for older platforms  (Robert Haas <robertmhaas@gmail.com>)
Responses Re: Is a modern build system acceptable for older platforms  (Mark Kirkwood <mark.kirkwood@catalyst.net.nz>)
Re: Is a modern build system acceptable for older platforms  (Craig Ringer <craig@2ndquadrant.com>)
Re: Is a modern build system acceptable for older platforms  (Pavel Golub <pavel@microolap.com>)
List pgsql-hackers

 (2) it might make things easier on Windows,
which could be a sufficiently good reason but I don't think I've seen
anyone explain exactly how much easier it will make things and in what
ways.

1. You can remove tools/msvc folder because all your build rules will be universal. (cmake build now have much fewer lines of code)
2. You can forget about terminal in Windows (for windows guys it's important)
3. You can normally check environment on Windows, right now we have hardcoded headers and many options. Configure process will be same on all platforms.
4. You can generate not only GNU Make or MSVC project, you also can make Xcode projects, Ninja or NMake for build under MSVC Make. For Windows, you also can easily change MSVC to Clang it's not hardcoded at all. 
5. With CMake you have an easy way to build extra modules (plugins), I have already working prototype for windows PGXS.  A plugin should just include .cmake file generated with Postgres build.
Example: https://github.com/stalkerg/postgres_cmake/blob/cmake/contrib/adminpack/CMakeLists.txt If PGXS is True it's mean we build module outside postgres.

But in my opinion, you should just try CMake to figure out all benefits.

we can't judge whether they do without a clear explanation of what the gains will be

I think it's not that thing what easy to explain. Main benefits not in unix console area and C language...

pgsql-hackers by date:

Previous
From: Andrew Gierth
Date:
Subject: Re: Is there a memory leak in commit 8561e48?
Next
From: Mark Kirkwood
Date:
Subject: Re: Is a modern build system acceptable for older platforms