On 27 April 2018 at 15:10, Yuriy Zhuravlev <stalkerg@gmail.com> wrote:
> 1. You can remove tools/msvc folder because all your build rules will be
> universal. (cmake build now have much fewer lines of code)
Which is nice, but not actually a major day to day impact.
> 2. You can forget about terminal in Windows (for windows guys it's
> important)
OK, but it's not really important for the PostgreSQL project, IMO.
Also, most people working on PostgreSQL are probably less bothered by
the terminal.
> 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.
Again, nice, but does that solve a real current problem?
> 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.
Yeah, that's nice, but again, what're the real world benefits?
> 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.
Yep. FWIW, I already use CMake for some PostgreSQL extensions because
of PGXS limitations and Windows support. I won't say I'm a big fan,
the documentation is a bit stale and it has some weird quirks and
limitations, but compared to autohell it's pure magic.
> But in my opinion, you should just try CMake to figure out all benefits.
I use it fairly regularly. I'd never use autotools for any project I
was starting myself.
But that doesn't mean converting the whole postgres project is a good idea.
I'd do it, personally. But it's not just up to me. I've yet to hear
something that's compelling to a team who still set Perl 5.8.8 as the
minimum version and support SunOS. You'll need a compelling argument
that it's worth the pain and distruption.
--
Craig Ringer http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services