Commit Graph

264 Commits

Author SHA1 Message Date
Chun-wei Fan
b1bb8c2e85 build/: Force MSVC project file generation on Makefile.am changes
Make the Makefile.am targets for generating the Visual Studio projects re-generate the
project files and the header listings whenever the Makefile.am's that include
build/Makefile.msvcproj changes, so that whenever a source/header is added, they will
be reflected in the projects and in the property sheets that are used to copy the
headers.

Also ensure that these are applied to the vs11, vs12 and vs14 projects when this
happens, as they are copied and processed from the Visual Studio 2010 projects.
2016-10-19 18:49:14 +08:00
Chun-wei Fan
c2ba9ca810 Visual Studio builds: Make .pc generation more flexible
Allow the use of ${exec_prefix} for libdir and includedir when passing
them in as arguments to the script.
2016-06-22 15:22:58 +08:00
Chun-wei Fan
7a0941c090 Visual Studio builds: Refine "installation" process
Split out the part where we generate/update the caches for the GSchemas
and the icons, so that it is easier to ensure that things continue to
function correctly when we have GlibEtcInstallRoot != CopyDir.
2016-05-10 13:18:23 +08:00
Chun-wei Fan
8cda93d389 Visual Studio builds: Clean up projects a bit
Consolidate the .lib's that we need to link to for GDK and GTK+ into the
property sheets, and also link to setupapi.lib as that is needed by
the port to the new GdkMonitor API.
2016-05-09 15:35:26 +08:00
Chun-wei Fan
71bb1bebc0 Visual Studio builds: Generate .pc files
Generate .pc files for the package, so that it would be easier for
building introspection for packages that depend on GTK+.  Also split
PythonPath into PythonPath and PythonPathX64 to facilitate the build of
introspection files, which need to have Python that is built with the
same ac=rchitecture where GTK+ is built.

Clean up the formatting and spacing a bit.
2016-04-26 20:15:45 +08:00
Chun-wei Fan
9a87b6be2b MSVC builds: Update how introspection builds are done
This first adds a common autotools module that can be included by
the Makefile.am's to generate the file lists and the g-ir-scanner/
g-ir-compiler command lines to build the introspection files.

The autotools files for gdk/ and gtk/ are then updated to generate
the full file lists needed to build the introspection files, with
the full command lines for g-ir-scanner and g-ir-compiler as NMake
Makefile modules that can be used to build the introspection files
for Visual Studio builds.

https://bugzilla.gnome.org/show_bug.cgi?id=765195
2016-04-19 14:50:25 +08:00
Chun-wei Fan
ea8873da55 MSVC build: Drop crypt implementation for MSVC
We are actually not using the crypt() in GDK-Broadway for quite a while,
so the code implementation for MSVC is actually not used.  So, it's time
to get rid of this.
2016-03-02 16:52:30 +08:00
Chun-wei Fan
e15ab84e35 MSVC builds: Re-arrange include paths
Search also for the headers in include/gio-win32-2.0, as gio.h will
include those headers at some point, and arrange the include paths in a
dependency hierarchy style, top-to-down.
2016-03-02 13:02:30 +08:00
Chun-wei Fan
07d32687d8 MSVC 2008 builds: Fix previous commit
The previous commit had the MSVC 2008 property sheet in the wrong place.
Fix that.
2016-02-22 22:23:26 +08:00
Chun-wei Fan
5962daef4f Windows: Update how gtk-win32.rc is generated
On Visual Studio, unlike MinGW, manifest files are embedded via
including the manifest file as a resource file in the projects, not
via the .rc file.  This means that the line in the .rc file that
specifies the manifest file would cause trouble, so that line gets
removed when the full gtk3-win32.rc is generated on Visual Studio builds,
otherwise 2010+ Visual Studio will complain when compiling the .rc file.
Also, the inclusion of winuser.h will cause warnings during the
compilation of the .rc file.

Fix this by isolating the Win32 resource portions of gtk-win32.rc.in to
gtk-win32.rc.body.in and:
-On MinGW, construct the full gtk-win32.rc by doing the winver.h and
 winuser.h inclusion first, then append the contents of gtk-win32.rc.body,
 and then appending the line to embed the manifest file.
-On Visual Studio, simply copy the gtk-win32.rc.body to gtk-win32.rc,
 and generate the full libgtk3.manifest file.

https://bugzilla.gnome.org/show_bug.cgi?id=762311
2016-02-22 17:40:17 +08:00
Chun-wei Fan
1fec39ef0b Visual Studio builds: Use _USE_MATH_DEFINES
... to fix the build as some C99 math constant macros are being used, such
as M_SQRT2.
2016-01-06 21:12:19 +08:00
Chun-wei Fan
c049581f79 MSVC builds: Build more tools in gtk/
Build the gtk-update-icon-cache, gtk-builder-tool and gtk-query-settings
tools and run gtk-update-icon-cache as part of the post-build
"installation" process.

Pointed out (and reminded) by Paolo Borelli in bug 759436 that we should
build, "install" and run gtk-update-icon-cache in the MSVC builds as well.
2015-12-15 15:37:33 +08:00
Chun-wei Fan
dbe430f6ec MSVC builds: Use /opt:ref for release builds
glib-compile-resources have been updated to ensure that the symbols
generated are referred to, so that they will not be optimized out by the
linker in release builds.  We can change from /opt:noref to /opt:ref,
which should improve optimization a bit.
2015-11-12 18:16:33 +08:00
Chun-wei Fan
97b44e02a9 MSVC 2010+ builds: Do not explicitly use /LTCG
This partially reverts de16a4e.

As we now ensure that items using GResources and GConstructors are always
referenced so that the linker does not optimize them out in a default
Release build, we no longer need to enforce the use of /LTCG, so
/LTCG:incremental will work as well.
2015-11-12 15:53:47 +08:00
Chun-wei Fan
de16a4e07c MSVC release builds: Ensure that /LTCG is used
MSVC 2015 changed its default link-time code generation setting to
/LTCG:incremental, which causes problems if /opt:noref is to be used,
meaning that some code will be optimized out by the linker.

Avoid this situtation here by enforcing the use of /LTCG for MSVC 2010+
builds.
2015-10-23 10:33:41 +08:00
Chun-wei Fan
6f7029bb67 MSVC builds: Fix "install"
Use $(GlibEtcInstallRoot) when invoking glib-compile-schemas, as CopyDir
is not GlibInstallRoot for GTK+ (due to quoting issues), meaning that the
glib-compile-schemas tool may not be found in certain cases.

Issue pointed out by Ignacio Casal Quinteiro.
2015-10-12 23:22:35 +08:00
Matthias Clasen
c0e3b6ce71 fixup 2015-10-03 14:08:42 -04:00
Chun-wei Fan
8eea531f25 build/Makefile-newvs.am: Update Comments for Usage
Update the notes that this is also used for Visual Studio 2015 support,
and correct the MSVC_VER_LONG for MSVC 2015, which is 14, not 2015.

Also add a note that this can be used for other projects that have
Visual Studio build support.
2015-09-25 20:23:39 +08:00
Chun-wei Fan
e88e68c2bd Build: Make Makefile.msvcproj A Bit More Generic
Handle also the situation where $(srcdir) == $(top_srcdir), so that this
can also be used in cases like librsvg and gobject-introspection.
2015-09-25 20:23:38 +08:00
Chun-wei Fan
975e1cc41c build/win32: Fix 'make -jN dist'
The recent changes to build/win32/vs9|10/Makefile.am fixed 'make distclean'
but broke 'make -jN dist', so fix that by listing the *.headers and using
that list as a dependency and to remove those files in one single command
right after we generate the gtk-install.vsprops template, so that we don't
have to worry about them in 'make distclean'.
2015-09-23 18:31:22 +08:00
Matthias Clasen
52dd61ac45 Fix distclean 2015-09-21 22:02:14 -04:00
Chun-wei Fan
a3ba6f7475 MSVC Builds: Update Project GUIDs
This updates the Visual Studio Project GUIDs so that they don't repeat with
the GTK+-2.24.x ones, as the 3.x projects can be used with the 2.24.x in a
all-in-one solution file (such as when one wants to use a complete GTK+2
and GTK+3 stack when porting Windows applications from GTK+2 to GTK+3), and
each project in a solution file is expected to have an unique GUID.
2015-09-21 16:50:00 +08:00
Chun-wei Fan
78d2db383d MSVC Builds: Make Re-use Comment in Autotools Module Clearer 2015-09-17 09:19:10 +08:00
Chun-wei Fan
9a4990f4ca MSVC Builds: "Add" Visual Studio 2015 Projects
"Add" Visual Studio 2015 projects by what we did before: Copy the Visual
Studio 2010 project files and replace the items in there as needed, as
the formats of the 2010 and 2015 projects are largely the same.
2015-09-15 19:59:14 +08:00
Chun-wei Fan
a526f15b7d MSVC Builds: Remove Old MSVC Project-Related Files
Since we have the new files, remove the old ones.
2015-09-15 18:52:03 +08:00
Chun-wei Fan
6423a02c55 MSVC Builds: Massive Rename of Projects
We need to rename the projects so that when these projects are added
into an all-in-one solution file that will build the GTK+ 2/3 stack,
the names of the projects will not collide with the GTK+-2.x ones,
especially as GTK+-2.x and GTK+-3.x are done to co-exist on the same
system.  This is due to the case that the MSVC projects are directly
carried over from the GTK+-2.x ones and was then updated for 3.x.

We still need to update the GUIDs of the projects, so that they won't
conflict with the GTK+-2.x ones.
2015-09-15 18:51:33 +08:00
Chun-wei Fan
908850c087 MSVC Builds: Remove the Old Static Projects
Remove the static projects that were supereceded by the templates, which
are used to generate the complete projects during 'make dist'.

https://bugzilla.gnome.org/show_bug.cgi?id=681965
2015-09-15 18:49:49 +08:00
Chun-wei Fan
76825ffc6a Revert "MSVC Builds: Remove Old MSVC Project-Related Files"
Sorry, pushed the patch in the wrong order, should be done with
the renaming of the projects.

This reverts commit d963bd1d32.
2015-09-15 18:40:19 +08:00
Chun-wei Fan
d963bd1d32 MSVC Builds: Remove Old MSVC Project-Related Files
Since we have the new files, remove the old ones.
2015-09-15 18:39:01 +08:00
Chun-wei Fan
d836a52b68 build: Clean Up Visual Studio Project Generation
Use the common automake module from the previous commit in the
Makefile.am's, which means that the Makefile.am's in gdk/ and gtk/ can be
cleaned up as a result.  As a side effect, the property sheet that is used
to "install" the build results and headers can now be generated in terms of
the listing of headers to copy during 'make dist', where we can acquire
most of the list of headers to "install", so that we can largely avoid the
situation where the property sheet files are not updated in time for this,
causing missing headers when this build of GTK+ is being used.

Also use the Visual Studio Project file generation for the following
projects:
gtk3-demo
gtk3-demo-application
gtk3-icon-browser
gdk-win32
gdk-broadway
gail-util

So that the maintenace of these project files can be simplified as well.

https://bugzilla.gnome.org/show_bug.cgi?id=681965
2015-09-15 18:37:37 +08:00
Chun-wei Fan
deb632c9b6 build: Add Common Autotools Module for MSVC Projects
This adds a common autotools module that can be used by various projects to
generate the Visual Studio projects as needed, and if necessary, generate
the headers listings to "install" for that project, based on items passed
in to this.  This is modeled on the Makefile.introspection autotools file
that is used by many GNOME projects to generate the introspection files.

https://bugzilla.gnome.org/show_bug.cgi?id=681965
2015-09-15 18:33:37 +08:00
Chun-wei Fan
e8063bcb21 MSVC Introspection Builds: Remove GCC Requirement
Sorry, the last commit added a generated file instead of the
template.

G-I has been updated to not require a Windows GCC installation
anymore to generate the .gir files, so update the NMake Makefiles
that are used for this purpose.

As a result, it is no longer necessary to define time_t for the .gir
generation as we are on the same compiler throughout the process.
2015-08-17 19:20:04 +08:00
Chun-wei Fan
40a1905207 Revert "MSVC Introspection Builds: Remove GCC Requirement"
This reverts commit aea7809f55.
2015-08-17 19:18:03 +08:00
Chun-wei Fan
aea7809f55 MSVC Introspection Builds: Remove GCC Requirement
G-I has been updated to not require a Windows GCC installation
anymore to generate the .gir files, so update the NMake Makefiles
that are used for this purpose.

As a result, it is no longer necessary to define time_t for the .gir
generation as we are on the same compiler throughout the process.
2015-08-17 19:11:53 +08:00
Chun-wei Fan
9c37fe94d1 MSVC Builds: Fix Introspection Build
The deprecated and a11y sources of GTK+ were spun off some time ago into
their own Makefile.inc, which is then included by gtk/Makefile.am.  Fix the
generation of file sources for the GTK+ .gir.
2015-07-24 17:39:55 +08:00
Chun-wei Fan
28b8541847 gtk-demo: Don't Distribute demos.h
Since demos.h is now generated according to the platform for which GTK+ is
built, don't distribute it. Generate a Windows-specific demos.h.win32 and
distribute that instead, in which the Visual Studio build files will copy
it to demos.h, so that the build will proceed normally.

https://bugzilla.gnome.org/show_bug.cgi?id=749622
2015-06-19 23:46:05 +08:00
Rico Tzschichholz
ab72da0c41 build: Fix make dist
Revert 2 hunks introduced by 36c65c1aca
2015-06-02 17:12:18 +02:00
Chun-wei Fan
36c65c1aca Fix GDK MSVC Projects
We need to link to dwmapi.lib for all configs, not just the Broadway
ones, so fix the build.
2015-05-29 18:10:59 +08:00
Chun-wei Fan
2ba7977114 gtk3-demo: Fix Visual Studio Builds
Add the new cursors demo to the projects, so that gtk-demo will properly
build.
2015-05-20 17:36:44 +08:00
Simon McVittie
384a795275 Makefile-newvs: some .vcxproj.filters files are in builddir, some in srcdir
Without this change, out-of-tree distcheck doesn't get very far.

Similarly, allow *.vcxproj, *.props to be in either the builddir or
the srcdir.

Finally, since I'm touching these lines anyway, eliminate some
useless uses of cat: "cat x | sed 's/foo/bar/' > y" is
equivalent to "sed 's/foo/bar/' < x > y".

Bug: https://bugzilla.gnome.org/show_bug.cgi?id=748176
Reviewed-by: Chun-wei Fan <fanchunwei@src.gnome.org>
2015-04-29 15:26:17 +08:00
Chun-wei Fan
3d937b6b44 build/Makfile-newvs.am: Use Pattern Rules
Make use of pattern rules when generating the Visual Studio 2012/2013
Projects from the Visual Studio 2010 projects, which will help to clean up
the file and also avoid problems when running items like 'make -jN dist'.
2015-04-17 14:00:31 +08:00
Chun-wei Fan
b85f0ccc67 gdk-win32: Really Implement GdkScreen->is_composited()
The current GdkScreen->is_composited() is a stub as we were having Windows
XP being supported, which does not support Desktop Window Manager (DWM),
which is used by Windows for composition.

Windows Vista and later support DWM, and it is always enabled on Windows 8/
Server 2012 and later.

Please note that as we are dropping XP support in this cycle, this is the
commit that would say goodbye to Windows XP support for GTK+-3.x, by
linking directly to dwmapi.dll.  This means, we only check whether we are
on Windows 8 or Server 2012 (or later) to see whether we unconditionally
have composition enabled.

https://bugzilla.gnome.org/show_bug.cgi?id=741849
2015-04-17 11:23:53 +08:00
Chun-wei Fan
f53737ad03 Visual Studio Builds: Fix Header "Installation"
gtksidebar.h was renamed as gtkstacksidebar.h, so fix that in the header
"installation".
2015-04-10 16:21:11 +08:00
Chun-wei Fan
45da8bf045 MSVC Builds: "Install" .pdb Files
"Install" the .pdb files that were generated along with the build, to make
it easier for people to develop and debug GTK+, especially when used as a
stack, and as the .pdb files are already generated with all builds.

Also make the copy of the .dll, .lib and .exe files more selective so that
we do not accidently copy files that are not meant to be "installed", or
end up making extra copies of plugin DLLs in the wrong places, when the
projects here are included as a part of a grand solution that is used to
build the entire GTK+ stack, for example.
2015-03-06 10:40:46 +08:00
Chun-wei Fan
91bc414360 MSVC 2010+ Builds: Fix .pdb Generation
For Visual Studio 2010 and later, the .pdb filename needs to be explicitly
specified so that it will match the filename of the target, if the project
name differs from the filename of the target.  Make sure that is the case
for the 3 DLLs that we build for Visual Studio 2010 and later.
2015-03-06 10:25:18 +08:00
Chun-wei Fan
48c93fb347 MSVC 2008 Builds: Speed Up Release Builds
Use the /MP compiler option, where the build time for release builds can
be cut down by quite a bit.  This will however cause a brief warning with
debug builds due to the use of /Gm, but the code will otherwise build
normally.  Unlike the Visual Studio 2010+ builds, we can't use /d2Zi+ as
Visual Studio 2008 does not support that, so we can't get a better
debugging experience for release builds here.
2015-03-03 18:40:32 +08:00
Chun-wei Fan
163f7e75bf Fix "MSVC Builds: Update icon-browser Projects"
The Visual Studio 2008 Project was not updated correctly, so fix that.
2015-03-03 18:37:26 +08:00
Chun-wei Fan
05ef31362d MSVC Builds: Update icon-browser Projects
There is a new source file that needs to be built, so fix the projects...
2015-03-03 14:08:51 +08:00
Chun-wei Fan
a4f69408ac MSVC Builds: Improve Build Speed and Debugging
Use Multiprocessor compilation which can cut down build times by quite a
bit and use the /d2Zi+ flag to have better debugging info being logged to
the .pdb for release builds.

These are only applicable for Visual Studio 2010/2012 and later.
2015-03-03 14:07:26 +08:00
Chun-wei Fan
2820c342f6 MSVC Builds: Rename "install" Projects
Rename the "install" projects as "gtk-install" as we are planning to have a
grand solution file that incorporates all project files of the GTK+ stack
with their dependencies, to make it easier for people to build GTK+ from
scratch from a stock installation of Visual Studio 2008 and later.
2015-02-04 13:06:16 +08:00
Chun-wei Fan
8f3bd8ef0c MSVC Builds: "Install" autocleanup headers
These are public headers that are needed in the package, although the
macros are essentially no-ops for Visual Studio builds currently.
2015-02-04 12:42:24 +08:00
David King
9a50203408 docs: Fix some old live.gnome.org URLs 2015-01-09 14:08:20 +00:00
Chun-wei Fan
14e5ca584b Visual Studio Builds: Update Header "Installation"
The list of headers became a bit out-of-date as development went on, so
make it up-to-date.
2014-12-18 15:31:58 +08:00
Chun-wei Fan
6f3385aa60 MSVC Builds: Build and "Install" GDK-Win32 GL Items
Since the support for GL support in the GDK Windows backend has landed in
master, we need to build it in the Visual Studio builds.  Update the
projects for that and "install" the public header that was added.
2014-12-17 16:24:54 +08:00
Chun-wei Fan
8ec72dd2b1 Visual Studio Build: Update GTK DLL Build Flags
As the print preview command is moved into the sources, don't define it in
the preprocessor definitions.  However, define the
GTK_PRINT_BACKEND_ENABLE_UNSUPPORTED in the preprocessor definitions, to
make the build in-line with the autotools builds.
2014-12-02 09:26:35 +08:00
Chun-wei Fan
79e916f6af MSVC Builds: Finish Removal of the gtk-inspector Projects
The files for build of GtkInspector have been intergrated into the build of
the main GTK+ DLL, and the Visual Studio project templates for those have
been removed as well.  Make that removal complete by removing from the
solution files references to it and make the 'gtk' project not to depend on
the gtk-inspector project.
2014-12-01 12:06:28 +08:00
Matthias Clasen
13b5e0b6e6 Drop vs build stuff for inspector
Now that the inspector sources are built as part of gtk/, this should
no longer be needed.
2014-11-30 19:05:09 -05:00
Chun-wei Fan
4744058832 Visual Studio Builds: Fix gdkconfig.h Generation
...for Broadway builds, as it was producing a wrongly-named check file for
that configuration, so that a clean would not be correctly performed and
subsequently affected rebuilds.
2014-11-20 22:35:05 +08:00
Chun-wei Fan
579c56ffd7 Visual Studio Builds: Update "Installation"
Add the newly-added public headers for GDK and GTK into the list of files
to "install".
2014-10-24 15:59:18 +08:00
Chun-wei Fan
8b1648fe5b Visual Studio Builds: Update the gtk3-demo Projects
The gtkglarea and sidebar demos have been added, so build them in the
projects.  Note that the gtkglarea code is not usable under Windows at this
point as implementation is needed for the GDK-Win32 backend.
2014-10-24 15:58:20 +08:00
Chun-wei Fan
aa47269273 Visual Studio Builds: Link to libepoxy
Patches have been submitted to the libepoxy project so that it can be built
under Visual Studio.  This will allow the GDK, GTK and gtk3-demo projects
to build, but the gtkglarea code is not usable at this time as
implementation needs to be added to the GDK-Win32 backend for it.
2014-10-24 15:56:46 +08:00
Chun-wei Fan
a8c79c2da1 Fix Up Visual Studio Property Sheets
"Install" gdkbroadwaydisplay.h, as it is a public header of GDK Broadway,
also fix the MSVC 2010+ gtk-copy-gdk-broadway.props property sheet as a
'>' is missing.  Sorry for not noting these issues earlier, as MSVC
Broadway builds were recently restored.  My bad :|
2014-10-24 12:53:51 +08:00
Chun-wei Fan
4e66cca58d Visual Studio Builds: Fix broadwayd Build
There is now a broadway-buffer.c source that needs to be built for this, so
add it into the projects.  Since crypt() is no longer used, don't include
crypt.c in the builds, and so clean up the projects a bit.
2014-10-22 19:40:48 +08:00
Chun-wei Fan
64fb9a6eb2 Update README.txt for MSVC Builds
Tell people that they need to download and install the Adwaita icon theme,
by following the instructions given on
https://live.gnome.org/GTK%2B/Win32/MSVCCompilationOfGTKStack.

Also tell people they can either use IJG JPEG or libjpeg-turbo for non-GDI+
builds of GDK-Pixbuf.
2014-09-30 13:01:17 +08:00
Chun-wei Fan
96065db38d Fix MSVC 2010+ Build for Icon Browser
A needed include path was missed, make up for that.
2014-09-23 19:02:51 +08:00
Chun-wei Fan
8e508f8bd9 MSVC Builds: Build and Install gtk3-icon-browser
Add the icon browser demo to the Visual Studio projects, and "install" it
as well.
2014-09-23 18:54:34 +08:00
Chun-wei Fan
a14c7cbfa1 MSVC Builds: Update "Installation" Process
This updates the property sheets that are used to "install" builds of GTK+
after the libraries and the gtk3-demo programs are built.  Note that these
are generated with scripts in regards to the headers part, so that we can
move the header installation part to use autocompletion by the autotools
build files in the next dev cycle or so, like the "gdk" and "gtk" project
files.
2014-09-15 12:51:52 +08:00
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