Re: Windows Build System - Mailing list pgsql-hackers
From | Curtis Faith |
---|---|
Subject | Re: Windows Build System |
Date | |
Msg-id | 000f01c2c234$cb064970$a200a8c0@curtislaptop Whole thread Raw |
In response to | Re: Windows Build System was: Win32 port patches (Hannu Krosing <hannu@tm.ee>) |
List | pgsql-hackers |
Curtis Faith 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 wrote: > 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 script 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 easy format, and the folder/group mapping with directories 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#. Why does this matter? I didn't propose targeting Visual C#.NET. - Curtis
pgsql-hackers by date: