[gtk+] MSVC builds: Update how introspection builds are done
- From: Chun-wei Fan <fanchunwei src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] MSVC builds: Update how introspection builds are done
- Date: Tue, 19 Apr 2016 06:52:18 +0000 (UTC)
commit 9a87b6be2ba7bac1cba26afd1515cdde991978c7
Author: Chun-wei Fan <fanchunwei src gnome org>
Date: Tue Sep 8 14:14:46 2015 +0800
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
build/Makefile.am | 11 +-
build/Makefile.msvc-introspection | 125 ++++++++++
build/gen-file-list-gtk.py | 100 --------
build/gtk-introspection-msvc.mak.in | 101 --------
build/introspection-msvc.mak | 65 -----
build/msvcfiles.py | 261 --------------------
build/win32/Makefile.am | 33 +++-
.../detectenv-msvc.mak} | 21 ++-
build/win32/gtk-introspection-msvc.mak | 43 ++++
build/win32/introspection-msvc.mak | 94 +++++++
configure.ac | 1 -
gdk/Makefile.am | 50 ++++-
gtk/Makefile.am | 75 +++++-
13 files changed, 423 insertions(+), 557 deletions(-)
---
diff --git a/build/Makefile.am b/build/Makefile.am
index 1e6b825..b243d64 100644
--- a/build/Makefile.am
+++ b/build/Makefile.am
@@ -1,14 +1,5 @@
include $(top_srcdir)/Makefile.decl
-SUBDIRS = \
- win32
-
-EXTRA_DIST += \
- msvcfiles.py \
- gen-file-list-gtk.py \
- detectenv_msvc.mak \
- introspection-msvc.mak \
- gtk-introspection-msvc.mak.in \
- gtk-introspection-msvc.mak
+SUBDIRS = win32
-include $(top_srcdir)/git.mk
diff --git a/build/Makefile.msvc-introspection b/build/Makefile.msvc-introspection
new file mode 100644
index 0000000..6c90964
--- /dev/null
+++ b/build/Makefile.msvc-introspection
@@ -0,0 +1,125 @@
+# Author: Fan, Chun-wei
+# Common autotools file for constructing the g-ir-scanner and
+# g-ir-compiler command lines for Visual Studio builds.
+
+# This is copied from $(srcroot)/build from the gobject-introspection
+# project, which may be included in projects that support both
+# Visual Studio builds and introspection.
+
+# * Input variables:
+#
+# MSVC_INTROSPECT_GIRS - List of .gir's that should be built
+# in the NMake Makefiles
+#
+# * Simple tutorial
+#
+# Add this to Makefile.am where your library/program is built:
+# (Either YourLib_1_0_gir_MSVC_LIBS or YourLib_1_0_gir_MSVC_PROGRAM
+# is required unless --headers-only is specified in
+# YourLib_1_0_gir__MSVC_SCANNERFLAGS)
+#
+# include $(top_srcdir)/build/Makefile.msvc-introspection
+# MSVC_INTROSPECT_GIRS = YourLib-1.0.gir
+# YourLib_1_0_gir_NAMESPACE = YourLib # This is optional
+# YourLib_1_0_gir_VERSION = 1.0 # This is optional
+# YourLib_1_0_gir_MSVC_LIBS = yourlib-1.0
+# YourLib_1_0_gir_MSVC_FILES = $(libyourlib_1_0_SOURCES)
+# YourLib_1_0_gir_MSVC_PROGRAM = YourProgram
+# YourLib_1_0_gir_MSVC_PACKAGES = (Dependent .pc files)
+# YourLib_1_0_gir_MSVC_INCLUDE_GIRS = (Dependent external .gir's)
+# YourLiv_1_0_gir_MSVC_EXPORT_PACKAGES = (Packages exported by this .gir)
+
+# Private functions
+
+## Transform the MSVC project filename (no filename extensions) to something which can reference through a
variable
+## without automake/make complaining, eg Gtk-2.0 -> Gtk_2_0
+_gir_name=$(subst /,_,$(subst -,_,$(subst .,_,$(1))))
+
+# Namespace and Version is either fetched from the gir filename
+# or the _NAMESPACE/_VERSION variable combo
+_gir_namespace_msvc = $(or $($(_gir_name)_NAMESPACE),$(firstword $(subst -, ,$(notdir $(1)))))
+_gir_version_msvc = $(or $($(_gir_name)_VERSION),$(lastword $(subst -, ,$(1:.gir=))))
+_typelib_basename_msvc = $(_gir_namespace_msvc)'-'$(_gir_version_msvc)
+
+# _PROGRAM is an optional variable which needs its own --program argument
+_gir_program_msvc = $(if $($(_gir_name)_MSVC_PROGRAM),--program=$($(_gir_name)_MSVC_PROGRAM))
+
+# Deduce the sub-folder from $(srcroot) where the sources reside in
+_gir_source_path_raw_msvc:=$(subst $(abs_top_srcdir),,$(abs_srcdir))
+_gir_source_path_msvc=$(subst /,\\,$(_gir_source_path_raw_msvc))
+_gir_source_subdir_int_msvc=$(subst \\\\,\\,\\$(_gir_source_path_msvc)\\)
+_gir_source_subdir_msvc=$(subst \\.\\,\\,$(_gir_source_subdir_int_msvc))
+
+_gir_files_raw_msvc=$(subst /,\\,$($(_gir_name)_MSVC_FILES))
+_gir_files_msvc=$(subst $(srcdir)\\,,$(subst $(builddir)\\,,$(subst
$(top_builddir)\\$(_gir_source_path_msvc)\\,\\,$(_gir_files_raw_msvc))))
+
+# Create a list of items for:
+# - Libraries
+# - Packages
+# - GIRs to include
+# - packages to export
+
+_gir_libraries_msvc = $(foreach lib,$($(_gir_name)_MSVC_LIBS),--library=$(lib))
+_gir_packages_msvc = $(foreach pkg,$($(_gir_name)_MSVC_PACKAGES),--pkg=$(pkg))
+_gir_includes_msvc = $(foreach include,$($(_gir_name)_MSVC_INCLUDE_GIRS),--include=$(include))
+_gir_export_packages_msvc = $(foreach pkg,$($(_gir_name)_MSVC_EXPORT_PACKAGES),--pkg-export=$(pkg))
+
+#
+# Create NMake Makefile Sections for Building Introspection files
+# from autotools files
+# $(1) - File Name of the .gir that is to be generated
+#
+
+define gir-nmake-builder
+
+# Basic sanity check, to make sure required variables are set
+$(if $($(_gir_name)_MSVC_FILES),,$(error Need to define $(_gir_name)_MSVC_FILES))
+$(if $(or $(findstring --header-only,$($(_gir_name)_MSVC_SCANNERFLAGS)),
+ $($(_gir_name)_MSVC_LIBS),
+ $($(_gir_name)_MSVC_PROGRAM)),,
+ $(error Need to define $(_gir_name)_MSVC_LIBS or $(_gir_name)_MSVC_PROGRAM))
+
+$(top_builddir)/build/win32/$(_gir_name)_list:
+ for F in $(_gir_files_msvc); do \
+ case $$$$F in \
+ *.c|*.cpp|*.cc|*.cxx|*.h|*.hpp|*.hh|*.hxx) \
+ echo '..\..'$(_gir_source_subdir_msvc)$$$$F
$(top_builddir)/build/win32/$(_gir_name)_list \
+ ;; \
+ esac; \
+ done
+
+$(top_builddir)/build/win32/$(1).msvc.introspect:
+ -$(RM) $(top_builddir)/build/win32/$(1).msvc.introspect
+
+# Assemble the Command to Run g-ir-scanner
+ echo $(1)': '$(_gir_name)'_list
'$($(_gir_name)_MSVC_GIR_DEPS)>>$(top_builddir)/build/win32/$(1).msvc.introspect
+ echo ' @-echo Generating $$$$ '>>$(top_builddir)/build/win32/$(1).msvc.introspect
+ echo ' $$$$(PYTHON) $$$$(G_IR_SCANNER) \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
+ echo ' --verbose -no-libtool \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
+ echo ' --namespace='$(_gir_namespace_msvc)' \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
+ echo ' --nsversion='$(_gir_version_msvc)' \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
+ echo ' '$(_gir_packages_msvc)' \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
+ echo ' '$(_gir_libraries_msvc)' \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
+ echo ' '$(_gir_program_msvc)' \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
+ echo ' --add-include-path=$$$$(G_IR_INCLUDEDIR)
\'>>$(top_builddir)/build/win32/$(1).msvc.introspect
+ echo ' '$(_gir_includes_msvc)' \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
+ echo ' '$(_gir_export_packages_msvc)' \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
+ echo ' --cflags-begin \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
+ echo ' '$($(_gir_name)_MSVC_CFLAGS)' \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
+ echo ' --cflags-end \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
+ echo ' '$($(_gir_name)_MSVC_SCANNERFLAGS)' \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
+ echo ' --filelist='$(_gir_name)'_list \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
+ echo ' -o $$$$@'>>$(top_builddir)/build/win32/$(1).msvc.introspect
+ echo '' >>$(top_builddir)/build/win32/$(1).msvc.introspect
+
+# Finally Assemble the Command to Compile the generated .gir
+ echo '$(_typelib_basename_msvc).typelib:
'$(_typelib_basename_msvc)'.gir'>>$(top_builddir)/build/win32/$(1).msvc.introspect
+ echo ' @-echo Compiling $$$$ '>>$(top_builddir)/build/win32/$(1).msvc.introspect
+ echo ' $$$$(G_IR_COMPILER) \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
+ echo ' --includedir=. --debug --verbose \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
+ echo ' '$(1)' \'>>$(top_builddir)/build/win32/$(1).msvc.introspect
+ echo ' -o $$$$@'>>$(top_builddir)/build/win32/$(1).msvc.introspect
+ echo '' >>$(top_builddir)/build/win32/$(1).msvc.introspect
+endef
+
+$(foreach gir,$(MSVC_INTROSPECT_GIRS),$(eval $(call gir-nmake-builder,$(gir))))
diff --git a/build/win32/Makefile.am b/build/win32/Makefile.am
index 6563fb3..1385018 100644
--- a/build/win32/Makefile.am
+++ b/build/win32/Makefile.am
@@ -1,5 +1,31 @@
include $(top_srcdir)/Makefile.decl
+if HAVE_INTROSPECTION
+GENERATED_ITEMS = \
+ introspection.body.mak \
+ Gdk_3_0_gir_list \
+ GdkWin32_3_0_gir_list \
+ Gtk_3_0_gir_list
+
+MSVC_INTROSPECTION_INTERMEDIATE_FILES = Gdk-3.0.gir.msvc.introspect GdkWin32-3.0.gir.msvc.introspect
Gtk-3.0.gir.msvc.introspect
+
+introspection.body.mak: $(MSVC_INTROSPECTION_INTERMEDIATE_FILES)
+ -$(RM) introspection.body.mak
+ for F in `ls *.msvc.introspect`; do \
+ case $$F in \
+ *) cat $(top_builddir)/build/win32/$$F >>introspection.body.mak \
+ ;; \
+ esac; \
+ done
+ $(RM) $(MSVC_INTROSPECTION_INTERMEDIATE_FILES)
+
+DISTCLEANFILES = $(GENERATED_ITEMS)
+
+else
+GENERATED_ITEMS =
+DISTCLEANFILES =
+endif
+
SUBDIRS = \
vs9 \
vs10 \
@@ -7,6 +33,11 @@ SUBDIRS = \
vs12 \
vs14
-EXTRA_DIST += replace.py
+EXTRA_DIST += \
+ detectenv-msvc.mak \
+ introspection-msvc.mak \
+ gtk-introspection-msvc.mak \
+ replace.py \
+ $(GENERATED_ITEMS)
-include $(top_srcdir)/git.mk
diff --git a/build/detectenv_msvc.mak b/build/win32/detectenv-msvc.mak
similarity index 68%
rename from build/detectenv_msvc.mak
rename to build/win32/detectenv-msvc.mak
index 020548a..61f979d 100644
--- a/build/detectenv_msvc.mak
+++ b/build/win32/detectenv-msvc.mak
@@ -1,3 +1,8 @@
+# Common NMake Makefile module for checking the build environment
+# This can be copied from $(glib_srcroot)\build\win32 for GNOME items
+# that support MSVC builds and introspection under MSVC, and can be used
+# for building test programs as well.
+
# Check to see we are configured to build with MSVC (MSDEVDIR, MSVCDIR or
# VCINSTALLDIR) or with the MS Platform SDK (MSSDK or WindowsSDKDir)
!if !defined(VCINSTALLDIR) && !defined(WINDOWSSDKDIR)
@@ -35,6 +40,8 @@ VSVER = 10
VSVER = 11
!elseif $(VCVERSION) > 1799 && $(VCVERSION) < 1900
VSVER = 12
+!elseif $(VCVERSION) > 1899 && $(VCVERSION) < 2000
+VSVER = 14
!else
VSVER = 0
!endif
@@ -42,20 +49,24 @@ VSVER = 0
!if "$(VSVER)" == "0"
MSG = ^
This NMake Makefile set supports Visual Studio^
-9 (2008) through 12 (2013). Your Visual Studio^
+9 (2008) through 14 (2015). Your Visual Studio^
version is not supported.
!error $(MSG)
!endif
VALID_CFGSET = FALSE
-!if "$(CFG)" == "release" || "$(CFG)" == "debug"
+!if "$(CFG)" == "release" || "$(CFG)" == "debug" || "$(CFG)" == "Release" || "$(CFG)" == "Debug"
VALID_CFGSET = TRUE
!endif
-!if "$(CFG)" == "release"
-CFLAGS_ADD = /MD /O2
+# We want debugging symbols logged for all builds,
+# using .pdb files for release builds
+CFLAGS_BASE = /Zi
+
+!if "$(CFG)" == "release" || "$(CFG)" == "Release"
+CFLAGS_ADD = /MD /O2 $(CFLAGS_BASE)
!else
-CFLAGS_ADD = /MDd /Od /Zi
+CFLAGS_ADD = /MDd /Od $(CFLAGS_BASE)
!endif
!if "$(PLAT)" == "x64"
diff --git a/build/win32/gtk-introspection-msvc.mak b/build/win32/gtk-introspection-msvc.mak
new file mode 100644
index 0000000..2149650
--- /dev/null
+++ b/build/win32/gtk-introspection-msvc.mak
@@ -0,0 +1,43 @@
+# NMake Makefile to build Introspection Files for GTK+
+
+!include detectenv-msvc.mak
+
+APIVERSION = 3.0
+
+CHECK_PACKAGE = gdk-pixbuf-2.0 atk pangocairo gio-2.0
+
+built_install_girs = Gdk-$(APIVERSION).gir GdkWin32-$(APIVERSION).gir Gtk-$(APIVERSION).gir
+built_install_typelibs = Gdk-$(APIVERSION).typelib GdkWin32-$(APIVERSION).typelib Gtk-$(APIVERSION).typelib
+
+!include introspection-msvc.mak
+
+!if "$(BUILD_INTROSPECTION)" == "TRUE"
+
+!if "$(PLAT)" == "x64"
+AT_PLAT=x86_64
+!else
+AT_PLAT=i686
+!endif
+
+all: setgirbuildenv $(built_install_girs) $(built_install_typelibs)
+
+setgirbuildenv:
+ @set PYTHONPATH=$(PREFIX)\lib\gobject-introspection
+ @set PATH=vs$(VSVER)\$(CFG)\$(PLAT)\bin;$(PREFIX)\bin;$(PATH)
+ @set PKG_CONFIG_PATH=$(PKG_CONFIG_PATH)
+ @set LIB=vs$(VSVER)\$(CFG)\$(PLAT)\bin;$(LIB)
+
+!include introspection.body.mak
+
+install-introspection: all
+ @-copy *.gir $(G_IR_INCLUDEDIR)
+ @-copy /b *.typelib $(G_IR_TYPELIBDIR)
+
+!else
+all:
+ @-echo $(ERROR_MSG)
+!endif
+
+clean:
+ @-del /f/q *.typelib
+ @-del /f/q *.gir
diff --git a/build/win32/introspection-msvc.mak b/build/win32/introspection-msvc.mak
new file mode 100644
index 0000000..8739844
--- /dev/null
+++ b/build/win32/introspection-msvc.mak
@@ -0,0 +1,94 @@
+# Common NMake Makefile module for checking the build environment is sane
+# for building introspection files under MSVC/NMake.
+# This can be copied from $(gi_srcroot)\build\win32 for GNOME items
+# that support MSVC builds and introspection under MSVC.
+
+# Can override with env vars as needed
+# You will need to have built gobject-introspection for this to work.
+# Change or pass in or set the following to suit your environment
+
+!if "$(PREFIX)" == ""
+PREFIX = ..\..\..\vs$(VSVER)\$(PLAT)
+!endif
+
+!if ![setlocal] && \
+ ![set PFX=$(PREFIX)] && \
+ ![for %P in (%PFX%) do @echo PREFIX_FULL=%~dpnfP > pfx.x]
+!endif
+!include pfx.x
+
+!if "$(PKG_CONFIG_PATH)" == ""
+PKG_CONFIG_PATH=$(PREFIX_FULL)\lib\pkgconfig
+!else
+PKG_CONFIG_PATH=$(PREFIX_FULL)\lib\pkgconfig;$(PKG_CONFIG_PATH)
+!endif
+
+!if ![del $(ERRNUL) /q/f pfx.x]
+!endif
+
+# Note: The PYTHON must be the Python release series that was used to build
+# the GObject-introspection scanner Python module!
+# Either having python.exe your PATH will work or passing in
+# PYTHON=<full path to your Python interpretor> will do
+
+# This is required, and gobject-introspection needs to be built
+# before this can be successfully run.
+!if "$(PYTHON)" == ""
+PYTHON=python
+!endif
+
+# Path to the pkg-config tool, if not already in the PATH
+!if "$(PKG_CONFIG)" == ""
+PKG_CONFIG=pkg-config
+!endif
+
+# Don't change anything following this line!
+
+GIR_SUBDIR = share\gir-1.0
+GIR_TYPELIBDIR = lib\girepository-1.0
+G_IR_SCANNER = $(PREFIX)\bin\g-ir-scanner
+G_IR_COMPILER = $(PREFIX)\bin\g-ir-compiler.exe
+G_IR_INCLUDEDIR = $(PREFIX)\$(GIR_SUBDIR)
+G_IR_TYPELIBDIR = $(PREFIX)\$(GIR_TYPELIBDIR)
+
+VALID_PKG_CONFIG_PATH = FALSE
+
+MSG_INVALID_PKGCONFIG = You must set or specifiy a valid PKG_CONFIG_PATH
+MSG_INVALID_CFG = You need to specify or set CFG to be release or debug to use this Makefile to build the
Introspection Files
+
+ERROR_MSG =
+
+BUILD_INTROSPECTION = TRUE
+
+!if ![set PKG_CONFIG_PATH=$(PKG_CONFIG_PATH)] \
+ && ![$(PKG_CONFIG) --print-errors --errors-to-stdout $(CHECK_PACKAGE) > pkgconfig.x] \
+ && ![setlocal] \
+ && ![set file="pkgconfig.x"] \
+ && ![FOR %A IN (%file%) DO @echo PKG_CHECK_SIZE=%~zA > pkgconfig.chksize] \
+ && ![del $(ERRNUL) /q/f pkgconfig.x]
+!endif
+
+!include pkgconfig.chksize
+!if "$(PKG_CHECK_SIZE)" == "0"
+VALID_PKG_CONFIG_PATH = TRUE
+!else
+VALID_PKG_CONFIG_PATH = FALSE
+!endif
+
+!if ![del $(ERRNUL) /q/f pkgconfig.chksize]
+!endif
+
+VALID_CFGSET = FALSE
+!if "$(CFG)" == "release" || "$(CFG)" == "debug" || "$(CFG)" == "Release" || "$(CFG)" == "Debug"
+VALID_CFGSET = TRUE
+!endif
+
+!if "$(VALID_PKG_CONFIG_PATH)" != "TRUE"
+BUILD_INTROSPECTION = FALSE
+ERROR_MSG = $(MSG_INVALID_PKGCONFIG)
+!endif
+
+!if "$(VALID_CFGSET)" != "TRUE"
+BUILD_INTROSPECTION = FALSE
+ERROR_MSG = $(MSG_INVALID_CFG)
+!endif
diff --git a/configure.ac b/configure.ac
index c788ee4..f200561 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1920,7 +1920,6 @@ docs/reference/libgail-util/Makefile
docs/reference/libgail-util/version.xml
docs/tools/Makefile
build/Makefile
-build/gtk-introspection-msvc.mak
build/win32/Makefile
build/win32/vs9/Makefile
build/win32/vs9/gtk3-version-paths.vsprops
diff --git a/gdk/Makefile.am b/gdk/Makefile.am
index b2d0c5c..74e321f 100644
--- a/gdk/Makefile.am
+++ b/gdk/Makefile.am
@@ -33,9 +33,13 @@ EXTRA_DIST += \
gdkenumtypes.h.template \
gdkversionmacros.h.in
-AM_CPPFLAGS = \
+GDK_CFLAGS_DEFINES = \
-DG_LOG_DOMAIN=\"Gdk\" \
- -DGDK_COMPILATION \
+ -DGDK_COMPILATION
+
+
+AM_CPPFLAGS = \
+ $(GDK_CFLAGS_DEFINES) \
-I$(top_builddir) \
-I$(top_builddir)/gdk \
-I$(top_srcdir) \
@@ -302,7 +306,6 @@ INTROSPECTION_GIRS += GdkX11-3.0.gir
endif # USE_X11
-if OS_WIN32
w32_introspection_files = \
win32/gdkcursor-win32.c \
win32/gdkdevicemanager-win32.c \
@@ -333,7 +336,7 @@ w32_introspection_files = \
win32/gdkwin32window.h \
win32/gdkwindow-win32.c
-
+if OS_WIN32
GdkWin32-3.0.gir: libgdk-3.la Gdk-3.0.gir Makefile
GdkWin32_3_0_gir_SCANNERFLAGS = \
--identifier-prefix=Gdk \
@@ -455,9 +458,46 @@ gdk_3_HEADERS_EXCLUDES = dummy
include $(top_srcdir)/build/Makefile.msvcproj
+if HAVE_INTROSPECTION
+# Introspection Items for MSVC
+MSVC_INTROSPECT_GIRS = Gdk-3.0.gir GdkWin32-3.0.gir
+
+BASE_MSVC_GIR_CFLAGS = \
+ $(GDK_CFLAGS_DEFINES) \
+ -I../.. -I../../gdk -I.../../gdk/win32
+
+INTROSPECTION_INTERMEDIATE_ITEMS = \
+ $(top_builddir)/build/win32/Gdk-3.0.gir.msvc.introspect \
+ $(top_builddir)/build/win32/Gdk_3_0_gir_list \
+ $(top_builddir)/build/win32/GdkWin32-3.0.gir.msvc.introspect \
+ $(top_builddir)/build/win32/GdkWin32_3_0_gir_list
+
+Gdk_3_0_gir_MSVC_FILES = $(introspection_files)
+Gdk_3_0_gir_MSVC_EXPORT_PACKAGES = $(Gdk_3_0_gir_EXPORT_PACKAGES)
+Gdk_3_0_gir_MSVC_INCLUDE_GIRS = $(Gdk_3_0_gir_INCLUDES)
+Gdk_3_0_gir_MSVC_LIBS = gdk-3.0
+Gdk_3_0_gir_MSVC_CFLAGS = $(BASE_MSVC_GIR_CFLAGS)
+Gdk_3_0_gir_MSVC_SCANNERFLAGS = $(Gdk_3_0_gir_SCANNERFLAGS)
+
+GdkWin32_3_0_gir_MSVC_FILES = $(w32_introspection_files)
+GdkWin32_3_0_gir_MSVC_INCLUDE_GIRS = $(GdkWin32_3_0_gir_INCLUDES)
+GdkWin32_3_0_gir_MSVC_LIBS = $(Gdk_3_0_gir_MSVC_LIBS)
+GdkWin32_3_0_gir_MSVC_CFLAGS = $(BASE_MSVC_GIR_CFLAGS)
+GdkWin32_3_0_gir_MSVC_SCANNERFLAGS = \
+ --identifier-prefix=Gdk \
+ --c-include="gdk/gdkwin32.h" \
+ --include-uninstalled=./Gdk-3.0.gir
+
+include $(top_srcdir)/build/Makefile.msvc-introspection
+
+else
+INTROSPECTION_INTERMEDIATE_ITEMS =
+endif
+
dist-hook: \
$(top_builddir)/build/win32/vs9/gdk-3.vcproj \
- $(top_builddir)/build/win32/vs9/gdk-3.headers
+ $(top_builddir)/build/win32/vs9/gdk-3.headers \
+ $(INTROSPECTION_INTERMEDIATE_ITEMS)
DISTCLEANFILES = gdkconfig.h stamp-gc-h
diff --git a/gtk/Makefile.am b/gtk/Makefile.am
index c9f3430..ba098d7 100644
--- a/gtk/Makefile.am
+++ b/gtk/Makefile.am
@@ -2,18 +2,24 @@ AUTOMAKE_OPTIONS = subdir-objects
include $(top_srcdir)/Makefile.decl
-AM_CPPFLAGS = \
+GTK_BASE_CFLAGS_DEFINES = \
-DG_LOG_DOMAIN=\"Gtk\" \
+ -DGTK_VERSION=\"$(GTK_VERSION)\" \
+ -DGTK_BINARY_VERSION=\"$(GTK_BINARY_VERSION)\" \
+ -DGTK_COMPILATION \
+ -DGTK_PRINT_BACKEND_ENABLE_UNSUPPORTED
+
+GTK_PLAT_CFLAGS_DEFINES = \
-DGTK_LIBDIR=\"$(libdir)\" \
-DGTK_DATADIR=\"$(datadir)\" \
-DGTK_DATA_PREFIX=\"$(prefix)\" \
-DGTK_SYSCONFDIR=\"$(sysconfdir)\" \
- -DGTK_VERSION=\"$(GTK_VERSION)\" \
- -DGTK_BINARY_VERSION=\"$(GTK_BINARY_VERSION)\" \
-DGTK_HOST=\"$(host)\" \
- -DGTK_COMPILATION \
- -DGTK_PRINT_BACKENDS=\"$(GTK_PRINT_BACKENDS)\" \
- -DGTK_PRINT_BACKEND_ENABLE_UNSUPPORTED \
+ -DGTK_PRINT_BACKENDS=\"$(GTK_PRINT_BACKENDS)\"
+
+AM_CPPFLAGS = \
+ $(GTK_BASE_CFLAGS_DEFINES) \
+ $(GTK_PLAT_CFLAGS_DEFINES) \
-DX11_DATA_PREFIX=\"$(X11_PREFIX)\" \
-I$(top_builddir) \
-I$(top_builddir)/gtk \
@@ -1434,9 +1440,60 @@ gtk_3_HEADERS_EXCLUDES = dummy
include $(top_srcdir)/build/Makefile.msvcproj
+if HAVE_INTROSPECTION
+# Introspection Items for MSVC
+MSVC_INTROSPECT_GIRS = Gtk-3.0.gir
+
+GTK_MSVC_GIR_CFLAGS = \
+ $(GTK_BASE_CFLAGS_DEFINES) \
+ -DGTK_LIBDIR=\\\"/dummy/lib\\\" \
+ -DGTK_DATADIR=\\\"/dummy/share\\\" \
+ -DGTK_DATA_PREFIX=\\\"/dummy\\\" \
+ -DGTK_SYSCONFDIR=\\\"/dummy/etc\\\" \
+ -DGTK_HOST=\\\"'$$$$(AT_PLAT)'-pc-vs'$$$$(VSVER)'\\\" \
+ -DGTK_PRINT_BACKENDS=\\\"file\\\" \
+ -DINCLUDE_IM_am_et \
+ -DINCLUDE_IM_cedilla \
+ -DINCLUDE_IM_cyrillic_translit \
+ -DINCLUDE_IM_ime \
+ -DINCLUDE_IM_inuktitu \
+ -DINCLUDE_IM_ipa \
+ -DINCLUDE_IM_multipress \
+ -DINCLUDE_IM_thai \
+ -DINCLUDE_IM_ti_er \
+ -DINCLUDE_IM_ti_et \
+ -DINCLUDE_IM_viqr \
+ -DGTK_TEXT_USE_INTERNAL_UNSUPPORTED_API \
+ -I../.. -I../../gtk -I../../gdk
+
+INTROSPECTION_INTERMEDIATE_ITEMS = \
+ $(top_builddir)/build/win32/Gtk-3.0.gir.msvc.introspect \
+ $(top_builddir)/build/win32/Gtk_3_0_gir_list
+
+Gtk_3_0_gir_MSVC_FILES = \
+ $(introspected_pub_headers) \
+ $(gtk_base_c_sources) \
+ $(gtk_os_win32_c_sources) \
+ gtktypebuiltins.h \
+ gtktypebuiltins.c
+
+Gtk_3_0_gir_MSVC_EXPORT_PACKAGES = $(Gtk_3_0_gir_EXPORT_PACKAGES)
+Gtk_3_0_gir_MSVC_INCLUDE_GIRS = Atk-1.0
+Gtk_3_0_gir_MSVC_LIBS = gtk-3.0 gdk-3.0
+Gtk_3_0_gir_MSVC_CFLAGS = $(GTK_MSVC_GIR_CFLAGS)
+Gtk_3_0_gir_MSVC_SCANNERFLAGS = --warn-all --add-include-path=. --include-uninstalled=./Gdk-3.0.gir
+
+include $(top_srcdir)/build/Makefile.msvc-introspection
+
+else
+INTROSPECTION_INTERMEDIATE_ITEMS =
+
+endif
+
dist-hook: \
$(top_builddir)/build/win32/vs9/gtk-3.vcproj \
- $(top_builddir)/build/win32/vs9/gtk-3.headers
+ $(top_builddir)/build/win32/vs9/gtk-3.headers \
+ $(INTROSPECTION_INTERMEDIATE_ITEMS)
# Install a RC file for the default GTK+ theme, and key themes
install-data-local: install-ms-lib install-def-file install-mac-key-theme
@@ -1457,8 +1514,10 @@ distclean-local:
fi
if HAVE_INTROSPECTION
+introspected_pub_headers = $(filter-out %private.h gtktextdisplay.h gtktextlayout.h gtkx.h,
$(gtkinclude_HEADERS) $(a11yinclude_HEADERS) $(deprecatedinclude_HEADERS))
+
introspection_files = \
- $(filter-out %private.h gtktextdisplay.h gtktextlayout.h gtkx.h, $(gtkinclude_HEADERS)
$(a11yinclude_HEADERS) $(deprecatedinclude_HEADERS)) \
+ $(introspected_pub_headers) \
$(filter-out %win32.c, $(gtk_base_c_sources)) \
gtkprintoperation-unix.c \
gtktypebuiltins.h \
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]