Commit Graph

147 Commits

Author SHA1 Message Date
Chun-wei Fan
d8b8048faf GTK MSVC Projects: Fix Include Directories
Somehow the project files looked for includes in gdk/ before gtk/, which
is wrong.  Fix that.
2014-09-01 13:14:11 +08:00
Chun-wei Fan
8a2a5adc8f MSVC Build Files: Use Real GTK+ Version
Make the Visual C++-related build files contain the actual GTK+ version, by
generating them during the configure stage and dist'ing them in the release
tarballs.  This is especially important for builds of introspection files,
as one may need to look at the release version of GTK+ in those files.
2014-08-07 23:11:34 +08:00
Chun-wei Fan
37321f6fb8 MSVC Builds: Apply Visual Style for Win32 Print Dialog
Define ISOLATION_AWARE_ENABLED for the build of the GTK DLL so that visual
style can be applied to the Windows print dialog for all applications using
gtkprintoperation.

Update the script for the generation of gtk-win32.rc for MSVC to not try to
embed the manifest from it (but embed libgtk3.manifest by including it in
the project files, as we are now doing), and embedding the manifest file is
really not supported in MSVC 2010 and later.

Also fix up formatting in the GTK DLL projects.

https://bugzilla.gnome.org/show_bug.cgi?id=733773
2014-08-07 23:02:13 +08:00
Chun-wei Fan
285f1cc30f MSVC Builds: Create libgtk3.manifest
Use the Python script that was used to create gtk-win32.rc from
gtk-win32.rc.in to similarly create libgtk3.manifest.  As the wildcard
character can be used for all architectures, use that.

The libgtk3.manifest file needs to be specified explicitly in the projects,
so that it will be recognized and built into the GTK dll, so update the
project files as well on this part.

https://bugzilla.gnome.org/show_bug.cgi?id=733773
2014-08-06 15:42:23 +08:00
Chun-wei Fan
45ca4bd0b2 MSVC Builds: Build gtk-encode-symbolic-svg
This utility would likely be useful for Windows builds of GTK+, given the
reasons Alex cited for coming up with this utility[1], and MSVC build
support for librsvg is not available at this time (possible, but not
implemented yet).

[1]: https://bugzilla.gnome.org/show_bug.cgi?id=730450
2014-08-04 15:07:39 +08:00
Chun-wei Fan
d62bd12b86 MSVC Builds: Add Script to Generate gtk-win32.rc
In bug 733773, gtk-win32.rc was removed from the dist in the attempt to
make the print dialog on Windows themed, so this script was added so that
the gtk-win32.rc file can be generated during the Visual Studio builds of
GTK+ from the autotools scripts.  This is also intended for filling in the
arch of the build for MSVC builds for the manifest that is also required
for fixing bug 733773.  Python is used as it is already needed for

This is done as a custom build rule in the Visual Studio projects so that
it is easy to clean and rebuild gtk-win32.rc upon an update.

https://bugzilla.gnome.org/show_bug.cgi?id=733773
2014-08-04 13:34:15 +08:00
Chun-wei Fan
283a274d32 MSVC Introspection Builds: Filter Out gtkx.h
Like the autotools builds of the introspection files, don't include gtkx.h
in the introspection prepropcessing as it should not be included by other
GTK+ headers.
2014-07-16 18:04:38 +08:00
Chun-wei Fan
b238d55645 Fix "Installation" for Visual Studio 2010+
We need to enclose paths containing $(BinDir) with double quotes as it
points to something like c:\foo\gtk+-x.yy.zz, which the copy command on
Windows does not like "+" in paths unless enclosed in quotes.
2014-07-01 16:41:41 +08:00
Chun-wei Fan
e3f8b87741 Build: Provide Simple Support for MSVC 2012/2013
As the Visual Studio 2012/2013 are only slightly different from the Visual
Studio 2010 projects, we can provide support for them by using scripts to
copy the Visual Studio 2010 projects, and update the specific parts as
necessary.

Thus, there would be little maintenance overhead for these as only the 2010
projects need to be kept up-to-date as a result.  This might change when we
do get the stack working with WinRT/Metro, but that's going to be another
totally different issue.
2014-07-01 16:17:43 +08:00
Chun-wei Fan
dd9b34d753 Revert "Visual Studio Builds: "Install" the Stock Icons"
The stock icons are now built into the GTK+ DLL via resources, so don't
try to install the stock icons, and the icons don't reside in their former
positions anymore, causing messages indicating that the files cannot be
found.

This reverts commit 2e0ce67f8a.
2014-07-01 15:52:34 +08:00
Chun-wei Fan
ee9a6d0ace MSVC Builds: Fix Introspection Builds
Commit e26bdbda only partially made the necessary changes due to the use of
the deprecated headers in GDK.  Fix that.
2014-07-01 13:26:18 +08:00
Chun-wei Fan
9822891e48 MSVC Builds: Clean up Introspection Builds
Since g-i 1.40.0 we are using the .lib file(s) to determine the DLL(s) that
the introspection files should look for, instead of directly using the
DLL(s) directly, so it is no longer necessary to make copies of the GDK
.lib file to match the <namespace-name>-<namespace-version> convention when
we are building the introspection files for GdkWin32.  Remove that from the
introspection build process as a result.
2014-07-01 13:15:51 +08:00
Chun-wei Fan
abc1a0a65d build/win32/vs10/gtk.vcxprojin: Remove References to gtka11y
...so that Visual Studio will not warn about a reference that no longer
exists.
2014-06-30 18:00:26 +08:00
Chun-wei Fan
2e0ce67f8a Visual Studio Builds: "Install" the Stock Icons
Copy the icons in stock_icons accordingly, so that the built-in icons can
be found by GTK, as it seems that not all of them are built into
gtkbuiltincache.h.
2014-06-17 17:54:04 +08:00
Chun-wei Fan
37fbffaa1c Fix MSVC 2008 Projects
...Make up for a missed &#x0D;&#x0A; required for a new line in commands...
2014-06-09 14:39:35 +08:00
Chun-wei Fan
e26bdbda9b MSVC Builds: Update Introspection Build
The a11y headers are now listed with the main Makefile.am of GTK, and
GDK introduced deprecated headers, so we need to account for them for the
build of the introspection files.
2014-06-09 12:44:46 +08:00
Chun-wei Fan
bdc9d17edc Visual Studio Builds: Update Headers "Installation" 2014-06-09 12:42:56 +08:00
Chun-wei Fan
8e88a2e136 MSVC 2010+ Projects: Update "Installation" Process
Currently, due to the way that Visual Studio 2010+ projects are handled,
the "install" project does not re-build upon changes to the sources, as it
does not believe that its dependencies have changed, although the changed
sources are automatically recompiled.  This means that if a part or more
of the solution does not build, or if the sources need some other fixes
or enhancements, the up-to-date build is not copied automatically, which
can be misleading.

Improve on the situation by forcing the "install" project to trigger its
rebuild, so that the updated binaries can be copied.  This does trigger an
MSBuild warning, but having that warning is way better than not having an
up-to-date build, especially during testing and development.
2014-06-09 11:48:54 +08:00
Chun-wei Fan
61b9bcf1d5 MSVC Projects: "Generate" the gtk-inspector Projects
Like the GDK and GTK portions, use autotools scripts to generate the
complete projects for gtk-inspector as sources there seem to change from
time to time.

It might be so that this, like the a11y sources, will be referenced from
the main Makefile.am of GTK directly, but just do this so that the
projects can build properly.
2014-06-03 17:03:40 +08:00
Chun-wei Fan
ddc3f8eae7 MSVC Builds: Update the gtk-demo Projects
Add the gestures demo sources into the build, so that the build will
complete properly.
2014-06-03 16:55:46 +08:00
Chun-wei Fan
48533b7b60 Update Visual Studio Solution Files
Remove all references to the gtka11y projects as they are all built
together with the GTK DLL.

https://bugzilla.gnome.org/show_bug.cgi?id=730615
2014-06-03 16:46:53 +08:00
Rico Tzschichholz
eab39253ec build/win32: Drop a11y library references
In addition to 	4a4b23bfad
2014-05-24 09:23:52 +02:00
Chun-wei Fan
8d7c93ba47 Visual Studio Builds: Build GtkInspector
Add project files to build the GtkInspector sources, as gtk-inspector is a
required portion for GTK+.  "Install" the
org.gtk.Settings.Debug.gschema.xml gsettings schema file as well, so that
people can trigger GtkInspector as they develop and test their GTK+-based
programs.
2014-05-16 17:32:29 +08:00
Chun-wei Fan
3036a53667 Visual C++ Builds: Fix Header Installation
Make sure that gtk/a11y/gtkpopoveraccessible.h is copied, so that programs
using GTK+'s a11y will compile correctly.
2014-04-09 14:03:01 +08:00
Chun-wei Fan
46802d33e1 Visual C++ Builds: Build Introspection for GdkWin32
Add support to build the introspection files for GdkWin32, as done recently
in the autotools builds and clean up the NMake Makefile for building the
introspection files a bit.

For some reason, gdk_win32_display_manager_get_type() was not exported in
gdk-3.0.lib, force its export, so that the GdkWin32-3.0.gir can be built
properly with the Visual C++ builds.  This is a known problem that some
symbols in static libraries that are linked into a DLL in Visual C++, even
if they were marked with __declspec(dllexport) via _GDK_EXTERN.
2014-04-03 15:49:05 +08:00
Chun-wei Fan
78176cd311 MSVC Builds: Clean up gtk-version-paths.*props
Remove lines that are not really referred to.
2014-04-03 15:08:23 +08:00
Chun-wei Fan
dba7a676b4 MSVC Builds: Update Introspection Build Process
GObject-Introspection was recently changed to support acquiring the name of
the DLL from a library (.lib, etc) that was passed into g-ir-scanner on
Windows, like the *nix builds, instead of directly passing in the name of
the DLL.

This updates the introspection build process, so that introspection files
for GTK+ can continue to be properly built.
2014-02-25 13:32:13 +08:00
Chun-wei Fan
465005f929 Make Visual Studio Build Process A Bit Simpler
Add some flexibility in the property sheets for one building GTK+ that it
also searches for a settable installation path of Python, in addition to
searching the PATH for an installation of the Python interpretor.  This
currently defaults to Python 2.7.x, which is normally installed in
c:\python27 on Windows by default.  Also tell people in the README.txt's
for the Visual Studio builds
2014-02-21 18:00:29 +08:00
Chun-wei Fan
647dbf4e90 MSVC Builds: "Install" gtk3-demo.png
This is needed to show the gtk3-demo icon and is needed for the "Multiple
Views" demo to work.  Hmm, why couldn't I do a for loop for a batch in a
property sheet ? :|
2014-01-24 15:00:55 +08:00
Chun-wei Fan
186ecee4d4 Update Visual Studio Build Files
-"Install" the newly-added public gtkpopover.h
-Make the gtk3-demo projects up-to-date
2014-01-24 14:20:07 +08:00
Chun-wei Fan
202d9c4a35 build/: Rename a Shared MSVC NMake Makefile
Rename testsrules_msvc.mak to detectenv_msvc.mak and remove some package-
specific stuff from it, to reflect on the nature that this NMake Makefile
is shared.
2014-01-13 17:19:07 +08:00
Chun-wei Fan
7115ccd3b0 MSVC Builds: Rework Introspection Build
The current approach of building the introspection files for GTK works, but
is often cumbersome as one needs to set many environmental variables before
launching a solution file, which runs a Windows batch script to generate
the .gir/.typelib files. It was also possible to hand-run the batch script
from the Visual Studio command prompt, but even more environmental
variables need to be set.

This changes the approach to build the introspection files using an NMake
Makefile (but elimating from the Visual Studio Project Files the part to
build the introspection files) to:
-Make it clearer to the person building the introspection files what
 environmental variables are needed, specifically for PKG_CONFIG_PATH and
 MINGWDIR and CFG (formerly CONF). Setting stuff like VSVER, PLAT and BASEDIR
 is no longer required, which was a bit clunky.

-Allows some more easier flexibility on the build of the intropsection files.
2014-01-13 16:05:32 +08:00
Chun-wei Fan
f70c0afd65 Update gtk-install.*props
Make sure the needed public headers for GTK master is "installed", and re-
order some items so that it is easier when the headers lists are
automatically acquired from the various Makefile.am's.
2014-01-13 12:39:04 +08:00
Chun-wei Fan
396f01681b build/win32/vs9/Makefile: Fix typo 2014-01-13 12:02:12 +08:00
Chun-wei Fan
367b4eb0ff Rework the Visual Studio 2010 Projects a bit
Add a utility project to get config.h and gdkconfig.h from their *.h.win32
(or win32_broadway, if applicable) counterparts, using custom build rules,
so that these "generated" files can also be removed on clean and
"regenerated" upon update.  This also enables the removal of configs in
certain projects that isn't really needed as a result.

Also update and merge the projects and property sheets to include a single
property sheet that it needs, which will then in turn include the other
property sheets that is needed, so that things are cleaner.
2013-12-30 13:17:43 +08:00
Chun-wei Fan
e68f7eca6e Rework the Visual Studio 2008 Projects a bit
Add a utility project to get config.h and gdkconfig.h from their *.h.win32
(or win32_broadway, if applicable) counterparts, using custom build rules,
so that these "generated" files can also be removed on clean and
"regenerated" upon update.  This also enables the removal of configs in
certain projects that isn't really needed as a result.

Also update and merge the projects and property sheets to include a single
property sheet that it needs, which will then in turn include the other
property sheets that is needed, so that things are cleaner.

Updates to the Visual Studio 2010 projects will follow later.
2013-12-30 12:08:01 +08:00
Chun-wei Fan
26f8488a66 Update the gtk3-demo Visual C++ Projects
Add the sources of the headerbar and event_axes demos to the list of files
to build.
2013-12-26 16:23:14 +08:00
Chun-wei Fan
e7e57507b1 MSVC Projects: Use UNIX Line endings
...for all files except the README.txt and the .sln files, which have to
have DOS/Windows line endings.  This makes application of patches, when
applicable, easier.
2013-12-04 08:51:39 +08:00
Chun-wei Fan
dcfa3aa8cd build/win32/vs*/README.txt: Re-word a bit
Use PATH rather than path to make things clearer
2013-11-29 09:53:49 +08:00
Chun-wei Fan
c13c741143 Visual C++ Projects: Add rules to generate GTK DBus sources
Since commit 7c2a5072 the gtkdbusgenerated.[c|h] are not included in the
dist tarball and thus have to be generated, which broke the Visual C++
builds.

This patch adds property sheets and custom build rules for the Visual C++
projects so that gtkdbusgenerated.[c|h] will be generated upon building the
GTK+ DLL sources.

This also tells people building GTK+ from the projects that they need to
have Python 2/3 installed and the Python interpretor needs to be in their
PATH before building GTK+ from the projects.
2013-11-27 18:05:32 +08:00
Chun-wei Fan
fd134d8457 Update GDK-Broadway MSVC Projects
-Improve optimization a bit for broadwayd, by enabling link time code
 generation
-Add PlatformToolset tag for the Visual C++ 2010 projects, to ease
 transition to Visual C++ 2012/2013
2013-11-27 16:46:45 +08:00
Chun-wei Fan
8981de77bc Update Visual Studio Property Sheets
"Install" the GtkFlowBox headers
2013-10-07 13:00:14 +08:00
Chun-wei Fan
013e2bbb33 Visual Studio 2010 Property Sheets: Cosmetics
Make each file entry of non-autotools-completed .vcxproj.filters to be on
one line only, for consistency reasons.
2013-10-07 12:55:35 +08:00
Chun-wei Fan
1104c18752 Update gtk3-demo Visual Studio Projects
Build the recently-introduced flowbox.c demo into the gtk3-demo demo
program.
2013-10-07 12:17:04 +08:00
Chun-wei Fan
8ee5c0c2ba gengir_gtk.bat: Correctly handle time_t
...on x64 Windows/MSVC builds.  This is because time_t is a long long on
x64 arch on Windows.
2013-10-03 17:24:17 +08:00
Chun-wei Fan
cb867d88bb Update Demos Visual Studio Projects
Improve optimization, by re-enabling WholeProgramOptimization but changing
the linker optimization to not drop items that are not referenced in code
(such as compiled gresource sources that are not directly referenced in
code, as they are still needed for the demos to run properly).
2013-09-26 19:50:56 +08:00
Chun-wei Fan
00f9b1e769 MSVC Builds: "Install" gtklistboxrowaccessible.h
...which is an a11y header introduced in commit c22e27f9.
2013-09-22 22:10:28 +08:00
Chun-wei Fan
6c0769a47c MSVC Builds: Fix gengir Projects
Like the install projects that were fixed few days ago, the gengir projects
did not have info on the intermediate and output directories as a result of
the split up of the property sheets.  Fix this by including the appropriate
property sheet in the gtk-gengir property sheet so that we can avoid
confusing messages from Visual Studio on whether to reload the gengir
project as it was modified, at least on 2008.
2013-09-10 15:51:55 +08:00
Chun-wei Fan
feb72ad45e Visual C++ Builds: Fix "install" Projects
Due to the split up of the property sheets, the install projects did not
have info on the Intermediate and Output Paths, which caused confusing
messages from Visual Studio to show up upon completing build+"install" and
closing Visual Studio on whether to reload the install project, at least on
Visual Studio 2008.

Also clean up the Visual Studio 2008 install project a bit.

Include the property sheet which defines these properties to fix this.
2013-09-05 14:33:22 +08:00
Chun-wei Fan
b264d27c4f MSVC Builds: Fix Build of Introspection Files
We need to copy the GDK .lib/.dll from Release_Broadway\<Platform>\bin
or Debug_Broadway\<Platform>\bin to Release\<Platform>\bin or
Debug\<Platform>\bin respectively during the build of Broadway flavors of
GDK, as the MSVC introspection builds expects the GDK .lib/.dll to be
in Release\<Platform>\bin or Debug\<Platform>\bin.

Use a new property sheet to do so for Broadway builds of GDK-during the
builds of Win32-only GDK, the broadway builds of the GDK .lib/.dll would
be cleared out prior to the build of the Win32-only GDK.
2013-08-28 14:27:02 +08:00