Regarding theWin32/Visual C++ project completion items
- From: fanc999 yahoo com tw
- To: gtk-devel-list <gtk-devel-list gnome org>
- Subject: Regarding theWin32/Visual C++ project completion items
- Date: Wed, 13 Nov 2013 17:10:59 +0800
Hello List,
As people here might know, the Visual C++ 2008/2010 projects to build
the GNOME parts of the GTK+ and Clutter stack are currently using
autotools to fill in the source file listings during 'make dist', which
was mostly doing the job for getting the project files to be kept
up-to-date for building these libraries on Windows, which is an idea
that was initiated by Tor Lillqvist when he started providing such
mechanism to provide Visual Studio build support aimed to ease
maintenance of such files.
However, as time progresses, it turns out that there are some
disadvantages with this approach:
-It adds significant bits to the various Makefile.am's.
-It is not easy for people using a GIT checkout to build the libraries
under Windows/Visual Studio directly (one must 'make dist' tarball from
a Linux system in order to get the necessary project files and source
files using autogen.sh), hence items from others have been used to
facilitate this kind of thing for GLib [1]
-There needs to be tailored filter lists to get the correct sources in
the project files, especially as the release tarballs are generated on
Linux, meaning the source files that are meant for Linux (not Windows)
will be picked up for the project files if those filters are not in
place, and these filters can be out-of sync from time-to-time
-Possibly some other issues with this as well.
I am, therefore, thinking about using sets of Python 2/3 scripts
(credits to Shixin Zeng for the original idea[1]) to facilitate the same
functionality to complete the various Visual Studio Project (and also
NMake Makefiles, where applicable), which has the following advantages
compared to the current approach that I've mentioned earlier in this
e-mail-a proposal for this can be found in [2]:
-It can be invoked rather easily during 'make dist' by calling the
Python script with the appropriate parameters
-It is split in 2 parts for GLib, for one universal part (msvcfiles.py)
can be used for various projects while the project-specfic parts can be
in another Python script (glib_msvc_files.py) , which includes the
needed items from the msvcfiles.py and creates the necessary project
files for the specific project/
-It can also be invoked from a standard Windows cmd.exe prompt using
Python, so that the necessary project files and/or NMake Makefiles can
be created to be used on the spot.
-The Python scripts will read from the various Makefile.am's using
Python regex functionality, so the necessary build conditions (such as
OS_WIN32) can be set to acquire the necessary source files for the msvc
project files/NMake Makefiles, so filtering off the Linux source files
can be significantly reduced, if not significantly eliminated. This
will simplify maintenance, at least on my side, as I am certainly not an
autotools expert.
-It is already extended to make the listing of headers to "install"
after building the various libraries, as the list of headers change from
time in a development cycle, also to simplify maintenance on my part.
The key purpose in this venture is to make it easier for other people
interested in using/developing the GTK+/Clutter (and its dependent
libraries/items) stack to contribute to their development and
maintenance on Windows, as I am inclined to believe people developing on
Windows are more leaned towards using MSVC over MinGW (no offense
intended here, even as I do not use MinGW most of the time, I still
believe it (and its derived projects) is a formidable project).
I just wanted to hear from people here about what they think about this,
especially:
-Whether this is a viable approach-i.e. whether Python 2/3 is readily
available on the Linux systems which people use to generate dist
tarballs (I am not too acquainted with the Python situation on Linux,
but I am inclined to believe that it is bundled with most Linux distros
at least), and whether people think this change is useful as a whole, so
that I can see whether this is something I want to really venture into
for the other parts of the GTK+/Clutter stack
-Any other comments on this approach.
[1]: Please see build/win32/setup.py by Shixin Zeng in the GLib GIT
checkout for an example for this.
[2]: Please see attachment 259242 ("Add NMake Makefiles to build the
GLib unit tests (take ii, automation added)") in Bug 711047 for a
proposal. This contains the parts necessary for the msvc project files
and property sheets, but the patch does not yet integrate completion of
the project files using those scripts (however, it can be done quite
easily by adding something like:
"glib.vcproj:
$(PYTHON) $(top_srcdir)/build/glib_msvc_files.py -t vs9"
in build/win32/vs9/Makefile.am for example
Thanks for the time, with blessings!
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]