GNOME Bugzilla – Bug 735429
Cleanup MSVC Project Files Generation
Last modified: 2015-09-03 11:15:52 UTC
Hi, As it seems that it is more preferable to not add non-autotools external tools to read autotools files, and that the MSVC project file generation items are not that easily maintained in the main Makefile.am's, this bug report is meant to streamline that process, and enhance it a bit. I will post the patches shortly. With blessings, thank you!
Created attachment 284477 [details] [review] build: Add generic autotools module for generating the MSVC 2008/2010 projects from their respective templates Hi, This patch is for adding a common module (which I have also used successfully as-is on Pango[1] and GTK+[2]-any feedback there would be great!) that can be used by various projects to generating the complete MSVC 2008/2010 project files from their respective templates (the 2012/2013 projects are currently copied and updated from the 2010 ones with an autotools script, for records). As this module is meant to be generic and easy-to-adapt across projects, this is done in a similar manner like the introspection makefile (the $(INTROSPECTION_MAKEFILE)) that is used across many GNOME and GNOME-based projects. If it is preferable that this module end up in something like gnome-common, please let me know (in particular, how, as I am entirely new to that process). With blessings, thank you! [1]: https://bugzilla.gnome.org/show_bug.cgi?id=735039 [2]: https://bugzilla.gnome.org/show_bug.cgi?id=681965
Created attachment 284478 [details] [review] Cleanup and enhance the MSVC project generation by using the common autotools module Hi, This updates the MSVC project templates and the relevant Makefile.am's so that the common autotools module (attachment 284477 [details] [review]) is used, making those Makefile.am's cleaner. This also enhances the process a bit, as we can now generate the property sheets used to "install" GLib after the build, so that the headers listing can be kept up-to-date. With blessings, thank you!
Created attachment 302637 [details] [review] build: Add generic autotools module for generating the MSVC 2008/2010 projects from their respective templates (take ii) Hi, I have updated the generic module to not invoke the shell when filling in makefile variables, to avoid bashism, as suggested by Behdad during this cleanup in Pango...
Created attachment 302638 [details] [review] Cleanup and enhance the MSVC project generation by using the common autotools module (take ii) Hi, This updates the MSVC project templates and the relevant Makefile.am's so that the common autotools module (attachment 302637 [details] [review]) is used, making those Makefile.am's cleaner. This also enhances the process a bit, as we can now generate the property sheets used to "install" GLib after the build, so that the headers listing can be kept up-to-date. Also, generate the glib-compile-schemas and glib-compile-resources projects, so that they will be kept up-to-date if their source listing change. With blessings, thank you!
Review of attachment 302638 [details] [review]: Does this need to be updated?
Hi Nacho, I think this does not have to be updated, aside from the property sheet templates for copying the built files (glib-install.[vs]propsin), where we also need to copy gobject/gobjectnotifyqueue.c, which I accidentally removed from this patch set. I will double-check again tomorrow though. With blessings.
Fan: if this is uptodate and works I think you should just go ahead and push it: you are the de facto maintainer of the MSVC build and this only impacts that part. gnome-common is going to be deprecated, my suggestion is to add a note at the top of the Makefile.msvcproj saying that the canonical location for the original copy of the file is glib and that other projects should copy the file from there
Hi Paolo, Thanks for the suggestions, I have pushed the patches as: Attachment 302637 [details]: 700983c (with your suggested note added) Attachment 302638 [details]: 041e772 (with the fix I mentioned in comment 6) Additionally, I have removed the static projects that are replaced by those that are generated from the templates in commit 1387a16. These are checked with 'make -j8 distcheck' and srcdir != builddir. With blessings, thank you!