Re: [HACKERS] About CMake

2008-12-31 Thread James Mansion

Andrew Dunstan wrote:
Quite so. CMake outputs MSVC Project files, as I understand it. If you 
know of another cross-platform build tool that will do that then speak 
up.


I think the wxWidgets team have one, and I think scons has some support 
for doing that, though I haven't tried

that part of scons. The first uses Perl, scons uses Python.



--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] About CMake

2008-12-29 Thread Gregory Stark
Bruce Momjian br...@momjian.us writes:

 Jonah H. Harris wrote:
 On Mon, Dec 29, 2008 at 11:47 AM, Tom Lane t...@sss.pgh.pa.us wrote:
  But of course those are just as straightforward in autoconf.  It's
  the not-straightforward stuff that's going to be a PITA to translate.
 
 As much as I dislike autotools, I really despise CMake; it's a nasty
 piece of work and I hope we don't switch to it.  Though, as I must've
 missed it, what's the main complaint with the current build system?

 Impossible to use autoconf on Win32.

I don't think that's actually it. We used to use autoconf when we used cygwin
to build, didn't we? And there are other tools that use autoconf on windows.

We could use autoconf on win32 using cygwin utilities for things like sh and
awk. Just because we use those tools doesn't mean we have to use a cygwin
compiler or linker to actually do the build.

And we could always ship the preconfigured pg_config.h from a normal Windows
machine with cygwin installed since they're all the same (in theory).

I think it has more to do with the build-time tools. We have Makefile rules
that use awk or sed in them and those wouldn't work unless you have cygwin
installed when building. And in any case we want to use MSVC project files and
MSVC's make-equivalent to actually drive the build which kind of rules out
using the Makefile rules as-is.

-- 
  Gregory Stark
  EnterpriseDB  http://www.enterprisedb.com
  Ask me about EnterpriseDB's RemoteDBA services!

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] About CMake

2008-12-29 Thread Andrew Dunstan



Gregory Stark wrote:


We could use autoconf on win32 using cygwin utilities for things like sh and
awk. Just because we use those tools doesn't mean we have to use a cygwin
compiler or linker to actually do the build.
  


Making Cygwin a build time requirement for using MSVC is something we 
seriously wish to avoid.



And we could always ship the preconfigured pg_config.h from a normal Windows
machine with cygwin installed since they're all the same (in theory).

I think it has more to do with the build-time tools. We have Makefile rules
that use awk or sed in them and those wouldn't work unless you have cygwin
installed when building. And in any case we want to use MSVC project files and
MSVC's make-equivalent to actually drive the build which kind of rules out
using the Makefile rules as-is.

  


Quite so. CMake outputs MSVC Project files, as I understand it. If you 
know of another cross-platform build tool that will do that then speak up.


cheers

andrew



--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers


Re: [HACKERS] About CMake

2008-12-29 Thread Magnus Hagander
Gregory Stark wrote:
 Bruce Momjian br...@momjian.us writes:
 
 Jonah H. Harris wrote:
 On Mon, Dec 29, 2008 at 11:47 AM, Tom Lane t...@sss.pgh.pa.us wrote:
 But of course those are just as straightforward in autoconf.  It's
 the not-straightforward stuff that's going to be a PITA to translate.
 As much as I dislike autotools, I really despise CMake; it's a nasty
 piece of work and I hope we don't switch to it.  Though, as I must've
 missed it, what's the main complaint with the current build system?
 Impossible to use autoconf on Win32.
 
 I don't think that's actually it. We used to use autoconf when we used cygwin
 to build, didn't we? And there are other tools that use autoconf on windows.

No. We've never used cygwin for the win32 build, only for the cygwin build.

We've used mingw, which is completely different. But it's still a major
PITA to set up, and binaries produced using it aren't compatible with
windows tracing and debugging tools for example.

Heck, mingw is barely compatible with itself some days :-)


 We could use autoconf on win32 using cygwin utilities for things like sh and
 awk. Just because we use those tools doesn't mean we have to use a cygwin
 compiler or linker to actually do the build.

It does. autoconf is not compatible with MSVC. We did investigate that
before we shipped.


 And we could always ship the preconfigured pg_config.h from a normal Windows
 machine with cygwin installed since they're all the same (in theory).

That's basically what we do now (except it's not cygwin, and it's only
almost mingw since MSVC and mingw aren't entirely compatible)


 I think it has more to do with the build-time tools. We have Makefile rules
 that use awk or sed in them and those wouldn't work unless you have cygwin
 installed when building. And in any case we want to use MSVC project files and

Even so, unix style Makefiles don't work with MSVC. The compiler is
too different from all unix style compilers. We did try this...

But yes, the build time stuff is what's hard. If you look at the msvc
build stuff now it's mostly parsing our Makefiles and generating the
output. The autoconf stuff is a lot easier since we only target a single
platform.


 MSVC's make-equivalent to actually drive the build which kind of rules out
 using the Makefile rules as-is.

The point is that cmake generates both makefiles and project files.

What we *could* do is define our own metaformat for the build stuff,
and use that to *generate* our own makefiles. That would then be instead
of using the CMake format, we use our own perlscript or something. Some
projects do this - I think OpenSSL for example.

That way we'd have a single master, and keep using autoconf for what it
does.

//Magnus

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers