Clutter, like GTK+ and GLib, has recently switched to a visibility-based
method of exporting symbols, so update the Visual Studio build files to
do likewise, by using __declspec (dllexport). This eliminats the need to
use a .def file to export the symbols. The pre-configured
config.h.win32.in is also updated accordingly for this purpose. The
clutter.symbols file can be dropped if it is not being used otherwise.
This adds a PlatformToolset tag for each configuration so that it is easier
to upgrade the projects to Visual Studio 2012/2013 formats, which are
largely the same as the Visual Studio 2010 projects. We can, for example,
use a script to change the values of the PlatformToolset to make these
projects usable out-of-the-box for Visual Studio 2012/2013.
Like the Visual Studio 2008 projects, give the Visual Studio 2010 projects
an overhaul, where:
-The property sheets are split up, so that they are easier to maintain and
each project only needs to include the necessary parts. The various
projects are updated accordingly, too. The copying of config.h.win32 and
clutter-config.h.win32(_GDK) are now done with custom build rules, so that
these files can be cleaned and/or recopied during a clean, rebuild or
update.
-Clean up the property sheets, to get rid of parts that are actually
repeated. Also update the build macros, so that we won't get warnings
for repeated #defines of macros and fix the build of the various tests/
demo programs.
-Make all projects use Unix line endings, except for the .sln and
README.txt files, which need to have Windows line endings. This makes it
easier to apply patches to these project files.
-Update the installation of headers, as headers are introduced/deprecated.
-Cosmetics: get rid of "\ No newline at end of file".
...and drop these project files, as the way how the conformance
tests are built has been totally reworked. Instead, in the future,
use NMake Makefiles to build them, which will be proposed later.
Cogl-1.16 has much deprecation that is done, which causes the build of
Clutter to generate lots of C4996 (deprecation) warnings. As in commit
fa8809d7 (Add COGL_DISABLE_DEPRECATION_WARNINGS to the build flags), do
likewise by adding this macro in the Visual C++ property sheets, so we
would have much less C4996 warnings during the build.
Please see bug 703877 for the rationale behind this.
-Combine entries in the property sheets and make it a bit more flexible,
and drop some redundant items
-Use Custom Build Rules for generating enumeration and marshalling sources,
and the .def file so that they can be wiped off when a "clean" is
requested, and regenerate automatically when the templates/.symbols
files are updated.
-Improve consistency by using ApiVersion rather than ClutterApiVersion
with the Visual Studio project for other components of the Clutter/GTK+
stack
-Get rid of unneeded configs in the "install" project
-Make things a bit cleaner by generating clutter.def in the intermediate
build folder
-Fix the include paths as config.h is now in clutter/
-Make things a little bit more consistent between vs9 and vs10 in terms of
the "install" stage
The C4819 warnings appear due to a bug on Visual C++ when running on
non-English locales, specifically CJK versions/locales of Windows.
Re-enable this, like what is done in GLib, and add a note in the
Visual C++ README.txt's to tell people about this, so that Cogl will be
built correctly.
Apparently the update to build the GDK backend broke the "installation"
process of the binaries. Fix that by grouping the binaries as Release or
Debug.
-Add configuration in Clutter projects to add option to build Clutter with
the GDK3 backend in addition to the Win32 backend
-Add another preconfigured clutter-config.h.win32_GDK which contains
backend configs for both GDK3 and Win32 windowing and input.
-"Install" the newly-introduced headers
-Fix the situation when the Clutter sources are not unpacked in the root
folder of a drive (ex: Clutter is unpacked in c:\blah or d:\blah, instead
of c:\ or d:\)
Use a pregenerated .bat file to generate the clutter-enum-types.[ch], which
will greatly simplify the maintenanace of the VS build files as public
headers are added or removed.
Update output DLL/LIB names to be consistent with the autotools output,
due to the newl-introduced multi-backend feature (only the Win32 backend
is supported here for now, GDK3 support will be added when it stabilizes)
In response to the following moved to deprecated in the following commits:
a39be454
main: Move deprecated symbols to a separate header
40d703a0
backend: Move deprecated symbols to a separate header
b19c9196
actor: Move deprecated symbols into separate headers
142cd0bf
Move clutter-keysyms-compat.h to the deprecated section
530b07f1
Don't use a -deprecated suffix for headers
11420a70
group: Move deprecated macro into its own header
98b467f9
stage: Move the deprecated macros to a separate header
-tests/interactive/Makefile.am, build/win32/Makefile.am: copy the
generated test-unit-names.h to build/win32 so that it can be
distributed in "make dist" (maybe we could dist the generated header
in tests/interactive directly?)
-Update test-interactive Visual C++ projects to include build/win32 in
the list of folders to look for headers