On 27/04/18 19:10, Yuriy Zhuravlev 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)
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.
I note that Mysql (yeah I know, we don't love 'em greatly, but their
product niche is similar to ours) and Ceph (ok it is a distributed
storage system but still a highly popular open src product) have
switched to using cmake (relatively) recently. Both these projects were
using autoconf etc related builds previously and seem to be doing just
fine with cmake.
regards
Mark