autotools: Re-enable and enhance the completion of MSVC projects
authorChun-wei Fan <fanchunwei@src.gnome.org>
Tue, 21 Aug 2012 06:07:25 +0000 (14:07 +0800)
committerChun-wei Fan <fanchunwei@src.gnome.org>
Thu, 23 Aug 2012 13:57:24 +0000 (21:57 +0800)
-Isolate the creation of full MSVC projects for pango, pangoft2 and
 pangocairo in a seperate build/Makefile-msvcproj.am, so it can be included
 and used elsewhere.
-Update the Makefile.am's in pango/ and pango/mini-fribidi to include
 and use build/Makefile-msvcproj.am to create the MSVC project files
-Use templates for the property sheets so that the listings of header files
 to "install" can be filled in using build/Makefile-msvcproj.am, to
 simplify future maintenance.
-Re-enable the distribution of the created project files and property
 sheets

build/Makefile-msvcproj.am [new file with mode: 0644]
build/win32/vs10/Makefile.am
build/win32/vs10/pango.propsin [new file with mode: 0644]
build/win32/vs9/Makefile.am
build/win32/vs9/pango.vspropsin [new file with mode: 0644]
pango/Makefile.am
pango/mini-fribidi/Makefile.am

diff --git a/build/Makefile-msvcproj.am b/build/Makefile-msvcproj.am
new file mode 100644 (file)
index 0000000..d57dff0
--- /dev/null
@@ -0,0 +1,255 @@
+# Pango
+# Makefile-msvcproj.am
+# Makefile to fill in the various Visual C++ project files
+#
+# Copyright (C) 2012 Chun-wei Fan
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Library General Public
+# License as published by the Free Software Foundation; either
+# version 2 of the License, or (at your option) any later version.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# Library General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this library; if not, write to the
+# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+# Boston, MA 02111-1307, USA.
+
+########################################################################
+# Note:                                                                #
+# pangowin32.vcproj, pangowin32.vcxproj and pangowin32.vcxproj.filters #
+# are not automatically built, it is not being changed                 #
+########################################################################
+
+################################################################
+# The source file listings to input in the pango MSVC projects #
+################################################################
+fribidi_msvcproj_srcfiles = \
+       $(top_builddir)/build/libmini-fribidi.sourcefiles       \
+       $(top_builddir)/build/libmini-fribidi.vs10.sourcefiles  \
+       $(top_builddir)/build/libmini-fribidi.vs10.sourcefiles.filters
+
+#############################################
+# The various MSVC projects to be filled in #
+#############################################
+pango_vcproj_stuff = \
+       $(top_builddir)/build/win32/vs9/pango.vcproj    \
+       $(top_builddir)/build/win32/vs9/pangoft2.vcproj \
+       $(top_builddir)/build/win32/vs9/pangocairo.vcproj       \
+       $(top_builddir)/build/win32/vs9/pango.vs9.headers       \
+       $(top_builddir)/build/win32/vs10/pango.vcxproj  \
+       $(top_builddir)/build/win32/vs10/pango.vcxproj.filters  \
+       $(top_builddir)/build/win32/vs10/pangocairo.vcxproj     \
+       $(top_builddir)/build/win32/vs10/pangocairo.vcxproj.filters     \
+       $(top_builddir)/build/win32/vs10/pangocairo_fc.vcxproj  \
+       $(top_builddir)/build/win32/vs10/pangocairo_fc.vcxproj.filters  \
+       $(top_builddir)/build/win32/vs10/pangoft2.vcxproj       \
+       $(top_builddir)/build/win32/vs10/pangoft2.vcxproj.filters       \
+       $(top_builddir)/build/win32/vs10/pango.vs10.headers
+
+###################################################
+# Gather the source file listing for mini-fribidi #
+###################################################
+
+$(top_builddir)/build/libmini-fribidi.sourcefiles: Makefile
+       for F in $(libmini_fribidi_la_SOURCES); do \
+               case $$F in \
+               *.c) echo '                     <File RelativePath="..\..\..\pango\mini-fribidi\'$$F'" />' \
+                    ;; \
+               esac; \
+       done >$(top_builddir)/build/libmini-fribidi.sourcefiles
+
+$(top_builddir)/build/libmini-fribidi.vs10.sourcefiles: Makefile
+       for F in $(libmini_fribidi_la_SOURCES); do \
+               case $$F in \
+               *.c) echo '                     <ClCompile Include="..\..\..\pango\mini-fribidi\'$$F'" />' \
+                    ;; \
+               esac; \
+       done >$(top_builddir)/build/libmini-fribidi.vs10.sourcefiles
+
+$(top_builddir)/build/libmini-fribidi.vs10.sourcefiles.filters: Makefile
+       for F in $(libmini_fribidi_la_SOURCES); do \
+               case $$F in \
+               *.c) echo '                     <ClCompile Include="..\..\..\pango\mini-fribidi\'$$F'"><Filter>Source Files</Filter></ClCompile>' \
+                    ;; \
+               esac; \
+       done >$(top_builddir)/build/libmini-fribidi.vs10.sourcefiles.filters
+
+####################################################
+# Gather the source files listings for pangocairo  #
+# for MSVC 2010, as 2 projects are needed for that #
+# due to the case that one may or may not be using #
+# pango-ft2                                        #
+####################################################
+$(top_builddir)/build/libpangocairo.vs10.sourcefiles:
+       for F in $(pangocairo_core_sources); do \
+       case $$F in \
+               *.c) echo ' <ClCompile Include="..\..\..\pango\'$$F'" />' ;; \
+               esac; \
+       done >$(top_builddir)/build/libpangocairo.vs10.sourcefiles
+
+$(top_builddir)/build/libpangocairo.vs10.sourcefiles.filters:
+       for F in $(pangocairo_core_sources); do \
+       case $$F in \
+               *.c) echo ' <ClCompile Include="..\..\..\pango\'$$F'"><Filter>Source Files</Filter></ClCompile>' \
+               ;; \
+               esac; \
+       done >$(top_builddir)/build/libpangocairo.vs10.sourcefiles.filters
+
+######################################
+# Fill in the Pango DLL MSVC project #
+######################################
+
+$(top_builddir)/build/win32/vs9/pango.vcproj: \
+       $(top_srcdir)/build/win32/vs9/pango.vcprojin $(top_builddir)/build/libmini-fribidi.sourcefiles
+# (Seperator)
+       -$(RM) $@
+       for F in $(libpango_1_0_la_SOURCES); do \
+               case $$F in \
+                       *.c) echo ' <File RelativePath="..\..\..\pango\'$$F'" />' \
+                       ;; \
+               esac; \
+       done >$(top_builddir)/build/libpango.sourcefiles
+       $(CPP) -P -I$(top_builddir)/build - <$(top_srcdir)/build/win32/vs9/pango.vcprojin >$@
+       -$(RM) $(top_builddir)/build/libpango.sourcefiles
+       -$(RM) $(top_builddir)/build/libmini-fribidi.sourcefiles
+
+$(top_builddir)/build/win32/vs10/pango.vcxproj: \
+       $(top_srcdir)/build/win32/vs10/pango.vcxprojin $(top_builddir)/build/libmini-fribidi.vs10.sourcefiles
+# (Seperator)
+       -$(RM) $@
+       for F in $(libpango_1_0_la_SOURCES); do \
+               case $$F in \
+                       *.c) echo ' <ClCompile Include="..\..\..\pango\'$$F'" />' \
+                       ;; \
+               esac; \
+       done >$(top_builddir)/build/libpango.vs10.sourcefiles
+       $(CPP) -P -I$(top_builddir)/build - <$(top_srcdir)/build/win32/vs10/pango.vcxprojin >$@
+       -$(RM) $(top_builddir)/build/libpango.vs10.sourcefiles
+       -$(RM) $(top_builddir)/build/libmini-fribidi.vs10.sourcefiles
+
+$(top_builddir)/build/win32/vs10/pango.vcxproj.filters: \
+       $(top_srcdir)/build/win32/vs10/pango.vcxproj.filtersin $(top_builddir)/build/libmini-fribidi.vs10.sourcefiles.filters
+# (Seperator)
+       -$(RM) $@
+       for F in $(libpango_1_0_la_SOURCES); do \
+               case $$F in \
+                       *.c) echo ' <ClCompile Include="..\..\..\pango\'$$F'"><Filter>Source Files</Filter></ClCompile>' \
+                       ;; \
+               esac; \
+       done >$(top_builddir)/build/libpango.vs10.sourcefiles.filters
+       $(CPP) -I$(top_builddir)/build -P - <$(top_srcdir)/build/win32/vs10/pango.vcxproj.filtersin >$@
+       -$(RM) $(top_builddir)/build/libpango.vs10.sourcefiles.filters
+       -$(RM) $(top_builddir)/build/libmini-fribidi.vs10.sourcefiles.filters
+
+##########################################
+# Fill in the Pango-FT2 DLL MSVC project #
+##########################################
+
+$(top_builddir)/build/win32/vs9/pangoft2.vcproj: $(top_srcdir)/build/win32/vs9/pangoft2.vcprojin
+       -$(RM) $@
+       for F in $(libpangoft2_1_0_la_SOURCES); do \
+               case $$F in \
+               *.c) echo ' <File RelativePath="..\..\..\pango\'$$F'" />' ;; \
+               esac; \
+       done >$(top_builddir)/build/libpangoft2.sourcefiles
+       $(CPP) -I$(top_builddir)/build -P - <$(top_srcdir)/build/win32/vs9/pangoft2.vcprojin >$@
+       -$(RM) $(top_builddir)/build/libpangoft2.sourcefiles
+
+$(top_builddir)/build/win32/vs10/pangoft2.vcxproj: $(top_srcdir)/build/win32/vs10/pangoft2.vcxprojin
+       -$(RM) $@
+       for F in $(libpangoft2_1_0_la_SOURCES); do \
+               case $$F in \
+                       *.c) echo ' <ClCompile Include="..\..\..\pango\'$$F'" />' ;; \
+               esac; \
+       done >$(top_builddir)/build/libpangoft2.vs10.sourcefiles
+       $(CPP) -I$(top_builddir)/build -P - <$(top_srcdir)/build/win32/vs10/pangoft2.vcxprojin >$@
+       -$(RM) $(top_builddir)/build/libpangoft2.vs10.sourcefiles
+
+$(top_builddir)/build/win32/vs10/pangoft2.vcxproj.filters: $(top_srcdir)/build/win32/vs10/pangoft2.vcxproj.filtersin
+       -$(RM) $@
+       for F in $(libpangoft2_1_0_la_SOURCES); do \
+               case $$F in \
+               *.c) echo ' <ClCompile Include="..\..\..\pango\'$$F'"><Filter>Source Files</Filter></ClCompile>' ;; \
+               esac; \
+       done >$(top_builddir)/build/libpangoft2.vs10.sourcefiles.filters
+       $(CPP) -I$(top_builddir)/build -P - <$(top_srcdir)/build/win32/vs10/pangoft2.vcxproj.filtersin >$@
+       -$(RM) $(top_builddir)/build/libpangoft2.vs10.sourcefiles.filters
+
+############################################
+# Fill in the Pango-Cairo DLL MSVC project #
+#                                          #
+# Backend-specific sources for the         #
+# libpangocairo DLL are explicitly         #
+# listed in the vcprojin file              #
+############################################
+
+$(top_builddir)/build/win32/vs9/pangocairo.vcproj: $(top_srcdir)/build/win32/vs9/pangocairo.vcprojin
+       -$(RM) $@
+       for F in $(pangocairo_core_sources); do \
+               case $$F in \
+               *.c) echo ' <File RelativePath="..\..\..\pango\'$$F'" />' \
+               ;; \
+               esac; \
+       done >$(top_builddir)/build/libpangocairo.sourcefiles
+       $(CPP) -I$(top_builddir)/build -P - <$(top_srcdir)/build/win32/vs9/pangocairo.vcprojin >$@
+       -$(RM) $(top_builddir)/build/libpangocairo.sourcefiles
+
+$(top_builddir)/build/win32/vs10/pangocairo.vcxproj: \
+       $(top_srcdir)/build/win32/vs10/pangocairo.vcxprojin $(top_builddir)/build/libpangocairo.vs10.sourcefiles
+# (Seperator)
+       -$(RM) $@
+       $(CPP) -I$(top_builddir)/build -P - <$(top_srcdir)/build/win32/vs10/pangocairo.vcxprojin >$@
+
+$(top_builddir)/build/win32/vs10/pangocairo.vcxproj.filters: \
+       $(top_srcdir)/build/win32/vs10/pangocairo.vcxproj.filtersin $(top_builddir)/build/libpangocairo.vs10.sourcefiles.filters
+# (Seperator)
+       -$(RM) $@
+       $(CPP) -I$(top_builddir)/build -P - <$(top_srcdir)/build/win32/vs10/pangocairo.vcxproj.filtersin >$@
+
+$(top_builddir)/build/win32/vs10/pangocairo_fc.vcxproj: \
+       $(top_srcdir)/build/win32/vs10/pangocairo_fc.vcxprojin \
+       $(top_builddir)/build/libpangocairo.vs10.sourcefiles \
+       $(top_builddir)/build/win32/vs10/pangocairo.vcxproj
+# (Seperator)
+       -$(RM) $@
+       $(CPP) -I$(top_builddir)/build -P - <$(top_srcdir)/build/win32/vs10/pangocairo_fc.vcxprojin >$@
+       -$(RM) $(top_builddir)/build/libpangocairo.vs10.sourcefiles
+
+$(top_builddir)/build/win32/vs10/pangocairo_fc.vcxproj.filters: \
+       $(top_srcdir)/build/win32/vs10/pangocairo_fc.vcxproj.filtersin \
+       $(top_builddir)/build/libpangocairo.vs10.sourcefiles.filters \
+       $(top_builddir)/build/win32/vs10/pangocairo.vcxproj.filters
+# (Seperator)
+       -$(RM) $@
+       $(CPP) -I$(top_builddir)/build -P - <$(top_srcdir)/build/win32/vs10/pangocairo.vcxproj.filtersin >$@
+       -$(RM) $(top_builddir)/build/libpangocairo.vs10.sourcefiles.filters
+
+##############################################
+# Now fill in the header "installation" list #
+# We deal with the pangoft2 headers in the   #
+# property sheets directly                   #
+##############################################
+$(top_builddir)/build/win32/vs9/pango.vs9.headers:
+       echo 'mkdir $$(CopyDir)\include\pango-$$(PangoApiVersion)\pango&#x0D;&#x0A;' >$(top_builddir)/build/win32/vs9/pango.vs9.headers
+       echo '' >>$(top_builddir)/build/win32/vs9/pango.vs9.headers
+       for F in `echo $(pango_headers) $(pangocairo_headers) | tr '/' '\\'`; do \
+               case $$F in \
+               *.h) echo 'copy ..\..\..\pango\'$$F' $$(CopyDir)\include\pango-$$(PangoApiVersion)\pango&#x0D;&#x0A;' \
+                       ;; \
+               esac; \
+       done >>$(top_builddir)/build/win32/vs9/pango.vs9.headers
+
+$(top_builddir)/build/win32/vs10/pango.vs10.headers:
+       echo 'mkdir $$(CopyDir)\include\pango-$$(PangoApiVersion)\pango' >$(top_builddir)/build/win32/vs10/pango.vs10.headers
+       echo '' >>$(top_builddir)/build/win32/vs10/pango.vs10.headers
+       for F in `echo $(pango_headers) $(pangocairo_headers) | tr '/' '\\'`; do \
+               case $$F in \
+               *.h) echo 'copy ..\..\..\pango\'$$F' $$(CopyDir)\include\pango-$$(PangoApiVersion)\pango' \
+                       ;; \
+               esac; \
+       done >>$(top_builddir)/build/win32/vs10/pango.vs10.headers
index 310ac28..b52f9f1 100644 (file)
@@ -1,16 +1,33 @@
 EXTRA_DIST = \
        pango.sln \
        pango_fc.sln \
+       pango.propsin \
        pango.props \
+       pango.vcxproj \
+       pango.vcxproj.filters \
        pango.vcxprojin \
        pango.vcxproj.filtersin \
+       pangoft2.vcxproj \
+       pangoft2.vcxproj.filters \
        pangoft2.vcxprojin \
        pangoft2.vcxproj.filtersin \
+       pangowin32.vcxproj \
+       pangowin32.vcxproj.filters \
+       pangocairo.vcxproj \
+       pangocairo.vcxproj.filters \
        pangocairo.vcxprojin \
        pangocairo.vcxproj.filtersin \
+       pangocairo_fc.vcxproj \
+       pangocairo_fc.vcxproj.filters \
        pangocairo_fc.vcxprojin \
        pangocairo_fc.vcxproj.filtersin \
        install.vcxproj \
        README.txt
 
+pango.props: $(top_srcdir)/build/win32/vs10/pango.propsin pango.vs10.headers
+       $(CPP) -P - <$(top_srcdir)/build/win32/vs10/pango.propsin >$@
+       rm pango.vs10.headers
+
+DISTCLEANFILES = pango.props
+
 -include $(top_srcdir)/git.mk
diff --git a/build/win32/vs10/pango.propsin b/build/win32/vs10/pango.propsin
new file mode 100644 (file)
index 0000000..b91ce84
--- /dev/null
@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <PropertyGroup Label="UserMacros">
+    <PangoApiVersion>1.0</PangoApiVersion>
+    <PangoBinaryVersion>1.8.0</PangoBinaryVersion>
+    <PangoDummyPrefix>/dummy</PangoDummyPrefix>
+    <PangoDefines>G_LOG_DOMAIN="Pango";PANGO_ENABLE_BACKEND;PANGO_ENABLE_ENGINE;SYSCONFDIR="$(PangoDummyPrefix)/etc";LIBDIR="$(PangoDummyPrefix)/lib"</PangoDefines>
+    <NoFCDef>PANGO_VISUALC_NO_FC</NoFCDef>
+       <GlibEtcInstallRoot>..\..\..\..\vs10\$(Platform)</GlibEtcInstallRoot>
+       <CopyDir>$(GlibEtcInstallRoot)</CopyDir>
+    <PangoDoInstall>
+echo on
+
+mkdir $(CopyDir)\bin
+
+copy $(Configuration)\$(Platform)\bin\*.dll $(CopyDir)\bin
+
+copy $(Configuration)\$(Platform)\bin\*.exe $(CopyDir)\bin
+
+
+mkdir $(CopyDir)\lib
+
+copy $(Configuration)\$(Platform)\bin\*-$(PangoApiVersion).lib $(CopyDir)\lib
+
+
+#include "pango.vs10.headers"
+
+copy ..\..\..\pango\pango-features.h $(CopyDir)\include\pango-$(PangoApiVersion)\pango
+
+copy ..\..\..\pango\pango-enum-types.h $(CopyDir)\include\pango-$(PangoApiVersion)\pango
+
+copy ..\..\..\pango\pangowin32.h $(CopyDir)\include\pango-$(PangoApiVersion)\pango
+
+
+if not exist $(CopyDir)\etc\pango mkdir $(CopyDir)\etc\pango
+
+
+if exist $(CopyDir)\etc\pango\pango.aliases goto END
+
+echo tahoma = "tahoma,browallia new,mingliu,simhei,gulimche,ms gothic,latha,mangal" > $(CopyDir)\etc\pango\pango.aliases
+
+echo sans = "arial,browallia new,mingliu,simhei,gulimche,ms gothic,latha,mangal" >> $(CopyDir)\etc\pango\pango.aliases
+
+echo serif = "times new roman,angsana new,mingliu,simsun,gulimche,ms gothic,latha,mangal" >> $(CopyDir)\etc\pango\pango.aliases
+
+echo monospace = "courier new,courier monothai,mingliu,simsun,gulimche,ms gothic,latha,mangal" >> $(CopyDir)\etc\pango\pango.aliases
+
+:END
+</PangoDoInstall>
+<PangoInstallFCHeaders>
+copy ..\..\..\pango\pangofc-decoder.h $(CopyDir)\include\pango-$(PangoApiVersion)\pango
+
+copy ..\..\..\pango\pangofc-font.h $(CopyDir)\include\pango-$(PangoApiVersion)\pango
+
+copy ..\..\..\pango\pangofc-fontmap.h $(CopyDir)\include\pango-$(PangoApiVersion)\pango
+
+copy ..\..\..\pango\pango-ot.h $(CopyDir)\include\pango-$(PangoApiVersion)\pango
+
+copy ..\..\..\pango\pangoft2.h $(CopyDir)\include\pango-$(PangoApiVersion)\pango
+
+</PangoInstallFCHeaders>
+    <PangoLibtoolCompatibleDllPrefix>lib</PangoLibtoolCompatibleDllPrefix>
+    <PangoLibtoolCompatibleDllSuffix>-$(PangoApiVersion)-0</PangoLibtoolCompatibleDllSuffix>
+    <PangoSeparateVS10DllPrefix />
+    <PangoSeparateVS10DllSuffix>-1-vs10</PangoSeparateVS10DllSuffix>
+    <PangoDllPrefix>$(PangoSeparateVS10DllPrefix)</PangoDllPrefix>
+    <PangoDllSuffix>$(PangoSeparateVS10DllSuffix)</PangoDllSuffix>
+  </PropertyGroup>
+  <PropertyGroup>
+    <_PropertySheetDisplayName>pangoprops</_PropertySheetDisplayName>
+    <OutDir>$(SolutionDir)$(Configuration)\$(PlatformName)\bin\</OutDir>
+    <IntDir>$(SolutionDir)$(Configuration)\$(PlatformName)\obj\$(ProjectName)\</IntDir>
+  </PropertyGroup>
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalIncludeDirectories>..\..\..;..\..\..\pango;$(GlibEtcInstallRoot)\lib\glib-2.0\include;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\include;$(GlibEtcInstallRoot)\include\cairo;$(GlibEtcInstallRoot)\include\fontconfig;$(GlibEtcInstallRoot)\include\freetype2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PreprocessorDefinitions>HAVE_CONFIG_H;G_DISABLE_SINGLE_INCLUDES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+      <ForcedIncludeFiles>msvc_recommended_pragmas.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
+    </ClCompile>
+    <Link>
+      <AdditionalDependencies>gio-2.0.lib;gmodule-2.0.lib;gobject-2.0.lib;glib-2.0.lib;intl.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalLibraryDirectories>$(GlibEtcInstallRoot)\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+    </Link>
+    <PreBuildEvent>
+      <Command>
+if exist ..\..\..\config.h goto DONE_CONFIG_H
+
+copy ..\..\..\config.h.win32 ..\..\..\config.h
+
+:DONE_CONFIG_H
+
+
+if exist ..\..\..\pango\DONE_MODULE_DEFS_H goto DONE_MODULE_DEFS_H
+
+copy /y ..\..\..\pango\module-defs.h.win32 ..\..\..\pango\module-defs.h
+
+copy ..\..\..\pango\module-defs.h.win32 ..\..\..\pango\DONE_MODULE_DEFS_H
+
+:DONE_MODULE_DEFS_H
+
+
+if exist ..\..\..\pango\DONE_MODULE_DEFS_LANG_C goto DONE_MODULE_DEFS_LANG_C
+
+copy ..\..\..\pango\module-defs-lang.c.win32 ..\..\..\pango\module-defs-lang.c
+
+copy ..\..\..\pango\module-defs-lang.c.win32 ..\..\..\pango\DONE_MODULE_DEFS_LANG_C
+
+:DONE_MODULE_DEFS_LANG_C
+
+
+if exist ..\..\..\pango\DONE_MODULE_DEFS_FC_C goto DONE_MODULE_DEFS_FC_C
+
+copy ..\..\..\pango\module-defs-fc.c.win32 ..\..\..\pango\module-defs-fc.c
+
+copy ..\..\..\pango\module-defs-fc.c.win32 ..\..\..\pango\DONE_MODULE_DEFS_FC_C
+
+:DONE_MODULE_DEFS_FC_C
+
+
+if exist ..\..\..\pango\DONE_MODULE_DEFS_WIN32_C goto DONE_MODULE_DEFS_WIN32_C
+
+copy ..\..\..\pango\module-defs-win32.c.win32 ..\..\..\pango\module-defs-win32.c
+
+copy ..\..\..\pango\module-defs-win32.c.win32 ..\..\..\pango\DONE_MODULE_DEFS_WIN32_C
+
+:DONE_MODULE_DEFS_WIN32_C
+
+</Command>
+    </PreBuildEvent>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <BuildMacro Include="PangoApiVersion">
+      <Value>$(PangoApiVersion)</Value>
+    </BuildMacro>
+    <BuildMacro Include="PangoBinaryVersion">
+      <Value>$(PangoBinaryVersion)</Value>
+    </BuildMacro>
+    <BuildMacro Include="PangoDummyPrefix">
+      <Value>$(PangoDummyPrefix)</Value>
+    </BuildMacro>
+    <BuildMacro Include="PangoDefines">
+      <Value>$(PangoDefines)</Value>
+    </BuildMacro>
+    <BuildMacro Include="NoFCDef">
+      <Value>$(NoFCDef)</Value>
+    </BuildMacro>
+    <BuildMacro Include="PangoDoInstall">
+      <Value>$(PangoDoInstall)</Value>
+    </BuildMacro>
+    <BuildMacro Include="PangoInstallFCHeaders">
+      <Value>$(PangoInstallFCHeaders)</Value>
+    </BuildMacro>
+    <BuildMacro Include="PangoLibtoolCompatibleDllPrefix">
+      <Value>$(PangoLibtoolCompatibleDllPrefix)</Value>
+    </BuildMacro>
+    <BuildMacro Include="PangoLibtoolCompatibleDllSuffix">
+      <Value>$(PangoLibtoolCompatibleDllSuffix)</Value>
+    </BuildMacro>
+    <BuildMacro Include="PangoSeparateVS10DllPrefix">
+      <Value>$(PangoSeparateVS10DllPrefix)</Value>
+    </BuildMacro>
+    <BuildMacro Include="PangoSeparateVS10DllSuffix">
+      <Value>$(PangoSeparateVS10DllSuffix)</Value>
+    </BuildMacro>
+    <BuildMacro Include="PangoDllPrefix">
+      <Value>$(PangoDllPrefix)</Value>
+    </BuildMacro>
+    <BuildMacro Include="PangoDllSuffix">
+      <Value>$(PangoDllSuffix)</Value>
+    </BuildMacro>
+    <BuildMacro Include="GlibEtcInstallRoot">
+      <Value>$(GlibEtcInstallRoot)</Value>
+    </BuildMacro>
+  </ItemGroup>
+</Project>
\ No newline at end of file
index cc0ed72..93d304c 100644 (file)
@@ -1,12 +1,23 @@
 EXTRA_DIST = \
        pango.sln \
        pango_fc.sln \
+       pango.vspropsin \
        pango.vsprops \
        pango.vcprojin \
+       pango.vcproj \
        pangoft2.vcprojin \
+       pangoft2.vcproj \
        pangocairo.vcprojin \
+       pangocairo.vcproj \
+       pangowin32.vcproj \
        install.vcproj  \
        stdint.h \
        README.txt
 
+pango.vsprops: $(top_srcdir)/build/win32/vs9/pango.vspropsin pango.vs9.headers
+       $(CPP) -P - <$(top_srcdir)/build/win32/vs9/pango.vspropsin >$@
+       rm pango.vs9.headers
+
+DISTCLEANFILES = pango.vsprops
+
 -include $(top_srcdir)/git.mk
diff --git a/build/win32/vs9/pango.vspropsin b/build/win32/vs9/pango.vspropsin
new file mode 100644 (file)
index 0000000..6a6e204
--- /dev/null
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioPropertySheet
+       ProjectType="Visual C++"
+       Version="8.00"
+       Name="pangoprops"
+       OutputDirectory="$(SolutionDir)$(ConfigurationName)\$(PlatformName)\bin"
+       IntermediateDirectory="$(SolutionDir)$(ConfigurationName)\$(PlatformName)\obj\$(ProjectName)"
+       >
+       <Tool
+               Name="VCCLCompilerTool"
+               AdditionalIncludeDirectories="..\..\..;..\..\..\pango;$(GlibEtcInstallRoot)\lib\glib-2.0\include;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\include;$(GlibEtcInstallRoot)\include\cairo;$(GlibEtcInstallRoot)\include\fontconfig;$(GlibEtcInstallRoot)\include\freetype2"
+               PreprocessorDefinitions="HAVE_CONFIG_H;G_DISABLE_SINGLE_INCLUDES"
+               ForcedIncludeFiles="msvc_recommended_pragmas.h"
+       />
+       <Tool
+               Name="VCLinkerTool"
+               AdditionalDependencies="gio-2.0.lib gmodule-2.0.lib gobject-2.0.lib glib-2.0.lib intl.lib"
+               AdditionalLibraryDirectories="$(GlibEtcInstallRoot)\lib"
+       />
+       <Tool
+               Name="VCPreBuildEventTool"
+               CommandLine="
+if exist ..\..\..\config.h goto DONE_CONFIG_H&#x0D;&#x0A;
+copy ..\..\..\config.h.win32 ..\..\..\config.h&#x0D;&#x0A;
+:DONE_CONFIG_H&#x0D;&#x0A;
+
+if exist ..\..\..\pango\DONE_MODULE_DEFS_H goto DONE_MODULE_DEFS_H&#x0D;&#x0A;
+copy /y ..\..\..\pango\module-defs.h.win32 ..\..\..\pango\module-defs.h&#x0D;&#x0A;
+copy ..\..\..\pango\module-defs.h.win32 ..\..\..\pango\DONE_MODULE_DEFS_H&#x0D;&#x0A;
+:DONE_MODULE_DEFS_H&#x0D;&#x0A;
+
+if exist ..\..\..\pango\DONE_MODULE_DEFS_LANG_C goto DONE_MODULE_DEFS_LANG_C&#x0D;&#x0A;
+copy ..\..\..\pango\module-defs-lang.c.win32 ..\..\..\pango\module-defs-lang.c&#x0D;&#x0A;
+copy ..\..\..\pango\module-defs-lang.c.win32 ..\..\..\pango\DONE_MODULE_DEFS_LANG_C&#x0D;&#x0A;
+:DONE_MODULE_DEFS_LANG_C&#x0D;&#x0A;
+
+if exist ..\..\..\pango\DONE_MODULE_DEFS_FC_C goto DONE_MODULE_DEFS_FC_C&#x0D;&#x0A;
+copy ..\..\..\pango\module-defs-fc.c.win32 ..\..\..\pango\module-defs-fc.c&#x0D;&#x0A;
+copy ..\..\..\pango\module-defs-fc.c.win32 ..\..\..\pango\DONE_MODULE_DEFS_FC_C&#x0D;&#x0A;
+:DONE_MODULE_DEFS_FC_C&#x0D;&#x0A;
+
+if exist ..\..\..\pango\DONE_MODULE_DEFS_WIN32_C goto DONE_MODULE_DEFS_WIN32_C&#x0D;&#x0A;
+copy ..\..\..\pango\module-defs-win32.c.win32 ..\..\..\pango\module-defs-win32.c&#x0D;&#x0A;
+copy ..\..\..\pango\module-defs-win32.c.win32 ..\..\..\pango\DONE_MODULE_DEFS_WIN32_C&#x0D;&#x0A;
+:DONE_MODULE_DEFS_WIN32_C&#x0D;&#x0A;
+"
+       />
+       <UserMacro
+               Name="GlibEtcInstallRoot"
+               Value="..\..\..\..\vs9\$(PlatformName)"
+       />
+       <UserMacro
+               Name="CopyDir"
+               Value="$(GlibEtcInstallRoot)"
+       />
+       <UserMacro
+               Name="PangoApiVersion"
+               Value="1.0"
+       />
+       <UserMacro
+               Name="PangoBinaryVersion"
+               Value="1.8.0"
+       />
+       <UserMacro
+               Name="PangoDummyPrefix"
+               Value="/dummy"
+       />
+       <UserMacro
+               Name="PangoDefines"
+               Value="G_LOG_DOMAIN=\&quot;Pango\&quot;;PANGO_ENABLE_BACKEND;PANGO_ENABLE_ENGINE;SYSCONFDIR=\&quot;$(PangoDummyPrefix)/etc\&quot;;LIBDIR=\&quot;$(PangoDummyPrefix)/lib\&quot;"
+       />
+       <UserMacro
+               Name="NoFCDef"
+               Value="PANGO_VISUALC_NO_FC"
+       />
+       <UserMacro
+               Name="PangoDoInstall"
+               Value="
+echo on&#x0D;&#x0A;
+mkdir $(CopyDir)\bin&#x0D;&#x0A;
+copy $(ConfigurationName)\$(PlatformName)\bin\*.dll $(CopyDir)\bin&#x0D;&#x0A;
+copy $(ConfigurationName)\$(PlatformName)\bin\*.exe $(CopyDir)\bin&#x0D;&#x0A;
+
+mkdir $(CopyDir)\lib&#x0D;&#x0A;
+copy $(ConfigurationName)\$(PlatformName)\bin\*-$(PangoApiVersion).lib $(CopyDir)\lib&#x0D;&#x0A;
+
+#include "pango.vs9.headers"
+copy ..\..\..\pango\pango-features.h $(CopyDir)\include\pango-$(PangoApiVersion)\pango&#x0D;&#x0A;
+copy ..\..\..\pango\pango-enum-types.h $(CopyDir)\include\pango-$(PangoApiVersion)\pango&#x0D;&#x0A;
+copy ..\..\..\pango\pangowin32.h $(CopyDir)\include\pango-$(PangoApiVersion)\pango&#x0D;&#x0A;
+
+if not exist $(CopyDir)\etc\pango mkdir $(CopyDir)\etc\pango&#x0D;&#x0A;
+
+if exist $(CopyDir)\etc\pango\pango.aliases goto END&#x0D;&#x0A;
+echo tahoma = &quot;tahoma,browallia new,mingliu,simhei,gulimche,ms gothic,latha,mangal&quot; > $(CopyDir)\etc\pango\pango.aliases&#x0D;&#x0A;
+echo sans = &quot;arial,browallia new,mingliu,simhei,gulimche,ms gothic,latha,mangal&quot; >> $(CopyDir)\etc\pango\pango.aliases&#x0D;&#x0A;
+echo serif = &quot;times new roman,angsana new,mingliu,simsun,gulimche,ms gothic,latha,mangal&quot; >> $(CopyDir)\etc\pango\pango.aliases&#x0D;&#x0A;
+echo monospace = &quot;courier new,courier monothai,mingliu,simsun,gulimche,ms gothic,latha,mangal&quot; >> $(CopyDir)\etc\pango\pango.aliases&#x0D;&#x0A;
+:END
+"
+       />
+       <UserMacro
+               Name="PangoInstallFCHeaders"
+               Value="
+copy ..\..\..\pango\pangofc-decoder.h $(CopyDir)\include\pango-$(PangoApiVersion)\pango&#x0D;&#x0A;
+copy ..\..\..\pango\pangofc-font.h $(CopyDir)\include\pango-$(PangoApiVersion)\pango&#x0D;&#x0A;
+copy ..\..\..\pango\pangofc-fontmap.h $(CopyDir)\include\pango-$(PangoApiVersion)\pango&#x0D;&#x0A;
+copy ..\..\..\pango\pango-ot.h $(CopyDir)\include\pango-$(PangoApiVersion)\pango&#x0D;&#x0A;
+copy ..\..\..\pango\pangoft2.h $(CopyDir)\include\pango-$(PangoApiVersion)\pango&#x0D;&#x0A;
+"
+       />
+       <UserMacro
+               Name="PangoLibtoolCompatibleDllPrefix"
+               Value="lib"
+       />
+       <UserMacro
+               Name="PangoLibtoolCompatibleDllSuffix"
+               Value="-$(PangoApiVersion)-0"
+       />
+       <UserMacro
+               Name="PangoSeparateVS9DllPrefix"
+               Value=""
+       />
+       <UserMacro
+               Name="PangoSeparateVS9DllSuffix"
+               Value="-1-vs9"
+       />
+       <!-- Change these two to PangoLibtoolCompatibleDllPrefix and
+       PangoLibtoolCompatibleDllSuffix if that is what you want -->
+       <UserMacro
+               Name="PangoDllPrefix"
+               Value="$(PangoSeparateVS9DllPrefix)"
+       />
+       <UserMacro
+               Name="PangoDllSuffix"
+               Value="$(PangoSeparateVS9DllSuffix)"
+       />
+</VisualStudioPropertySheet>
index 3667f31..4c80a97 100644 (file)
@@ -488,6 +488,10 @@ MODULE_DEF_FILES = \
 $(MODULE_DEF_FILES): $(top_builddir)/config.status
        $(AM_V_GEN) cd $(top_builddir) && $(SHELL) ./config.status pango/$@
 
+include $(top_srcdir)/build/Makefile-msvcproj.am
+
+dist-hook: $(pango_vcproj_stuff)
+
 CLEANFILES =                   \
        pango-enum-types.h      \
        s-enum-types-h          \
@@ -502,7 +506,8 @@ MOSTLYCLEANFILES =          \
 
 DISTCLEANFILES =               \
        pango-features.h        \
-       $(MODULE_DEF_FILES)
+       $(MODULE_DEF_FILES)     \
+       $(pango_vcproj_stuff)
 
 install-exec-hook:
 if DISABLE_EXPLICIT_DEPS
index c73ccfb..0713366 100644 (file)
@@ -30,32 +30,10 @@ EXTRA_DIST =                        \
         fribidi_types.i
 
 
-dist-hook: libmini-fribidi.sourcefiles libmini-fribidi.vs10.sourcefiles libmini-fribidi.vs10.sourcefiles.filters
-
-libmini-fribidi.sourcefiles: Makefile
-       for F in $(libmini_fribidi_la_SOURCES); do \
-               case $$F in \
-               *.c) echo '                     <File RelativePath="..\..\..\pango\mini-fribidi\'$$F'" />' \
-                    ;; \
-               esac; \
-       done >libmini-fribidi.sourcefiles
-
-libmini-fribidi.vs10.sourcefiles: Makefile
-       for F in $(libmini_fribidi_la_SOURCES); do \
-               case $$F in \
-               *.c) echo '                     <ClCompile Include="..\..\..\pango\mini-fribidi\'$$F'" />' \
-                    ;; \
-               esac; \
-       done >libmini-fribidi.vs10.sourcefiles
-
-libmini-fribidi.vs10.sourcefiles.filters: Makefile
-       for F in $(libmini_fribidi_la_SOURCES); do \
-               case $$F in \
-               *.c) echo '                     <ClCompile Include="..\..\..\pango\mini-fribidi\'$$F'"><Filter>Source Files</Filter></ClCompile>' \
-                    ;; \
-               esac; \
-       done >libmini-fribidi.vs10.sourcefiles.filters
+include $(top_srcdir)/build/Makefile-msvcproj.am
+
+dist-hook: $(fribidi_msvcproj_srcfiles)
        
-DISTCLEANFILES = libmini-fribidi.sourcefiles libmini-fribidi.vs10.sourcefiles libmini-fribidi.vs10.sourcefiles.filters
+DISTCLEANFILES = $(fribidi_msvcproj_srcfiles)
 
 -include $(top_srcdir)/git.mk