Re: Windows Build System

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Curtis Faith <curtis(at)galtair(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Windows Build System
Date: 2003-01-27 00:57:43
Message-ID: 200301270057.h0R0vhp21678@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers


Are there no already-written converters from Makefile to VC project
files?

---------------------------------------------------------------------------

Curtis Faith wrote:
> I (Curtis Faith) previously wrote:
> > > The Visual C++ Workspaces and Projects files are actually
> > > text files that have a defined format. I don't think the format is
> > > published but it looks pretty easy to figure out.
>
> Hannu Krosing replied:
> > will probably change between releases
>
> Even if the format changes, the environment always has a converter that
> updates the project and workspace files to the new format. In other
> words, Visual C++ 6.0 reads 5.0 projects, 7.0 reads 6.0, etc.
>
> The format is mostly a bunch of options specifications (which wouldn't
> get touched) followed by a set of named groups of source files. Even if
> the overall format changes, it will be much more likely to change in the
> specifications rather than the way lists of source file formats are
> specified.
>
> A conversion tool, call it BuildWindowsProjectFile, would only need to:
>
> 1) Read in the template file (containing all the options specifications
> and Visual C++ speficic stuff, debug and release target options,
> libraries to link in, etc.) This part might change with new versions of
> the IDE and would be manually created by someone with Visual C++
> experience.
>
> 2) Read in the postgreSQL group/directory map, or alternately just
> mirror the groups with the directories.
>
> 3) Output the files from the PostgreSQL directories in the appropriate
> grouping according to the project format into the appropriate space in
> the template.
>
> An excerpt of the format follows:
>
> # Begin Group "Access"
> # Begin Group "Common"
> # PROP Default_Filter "cpp;c;cxx"
> # Begin Source File
>
> SOURCE=.\access\common\heaptuple.c
> # End Source File
> # Begin Source File
>
> SOURCE=.access\common\indextuple.c
> # End Source File
>
> ... other files in access\common go here
> # End Group
>
> # Begin Group "Index"
>
> # PROP Default_Filter "cpp;c;cxx"
> # Begin Source File
>
> SOURCE=.\access\index\genam.c
> # End Source File
> # Begin Source File
>
> SOURCE=.access\index\indexam.c
> # End Source File
>
> ... other files in access\index go here
> # End Group
>
> # End Group
>
>
> As you can see, this is a really simple format, and the direct
> folder/group mapping to PostgreSQL directory is pretty natural and
> probably the way to go.
>
> Using the approach I outline, it should be possible to have the Unix
> make system automatically run the BuildWindowsProjectFile tool whenever
> any makefile changes so the Windows projects would stay up to date
> without additional work for Unix developers.
>
> Hannu Krosing also wrote:
> > (also I dont think you can easily compile C source on a
> > C# compiler) ;/
>
> I don't think it makes much sense target a compiler that won't compile
> the source, therefore, if what you say is true, we shouldn't bother with
> targeting C#.
>
> - Curtis
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://archives.postgresql.org
>

--
Bruce Momjian | http://candle.pha.pa.us
pgman(at)candle(dot)pha(dot)pa(dot)us | (610) 359-1001
+ If your life is a hard drive, | 13 Roberts Road
+ Christ can be your backup. | Newtown Square, Pennsylvania 19073

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Dave Cramer 2003-01-27 01:01:28 Request for qualified column names
Previous Message Tom Lane 2003-01-27 00:42:14 Re: Cannot connect to the database (PG 7.3)