diff options
author | Tor Lillqvist <tml@iki.fi> | 2010-02-10 15:30:12 +0200 |
---|---|---|
committer | Tor Lillqvist <tml@iki.fi> | 2010-03-15 23:25:26 +0200 |
commit | b68d520e9ff526be4301f6db09c0faa077cd864a (patch) | |
tree | 2a5d959733f966f72b0b128799fa35b184b0ddf4 /pango | |
parent | 6118d5891fee776a087855c335a73c79fdaf036c (diff) | |
download | pango-b68d520e9ff526be4301f6db09c0faa077cd864a.tar.gz |
Add solution and project files for Visual Studio builds
The VS files are kept in build/win32/vs9, the same relative location
as in GLib, mostly for historical reasons.
Update README.win32 to reflect the VS possibility.
Include the VS solution and project files in the tarball when doing a
release.
To avoid having to list source files in several locations, generate
files listing source files at "make dist" time in the corresponding
source directories. Use the C preprocessor to preprocess .vcprojin
files that include said list files into the actual .vcproj project
files.
Provide a rc file for the pangocairo DLL, too.
Construct and provide in the tarball a pregenerated config.h.win32
which can be used as config.h when building with Visual C without
running any configure script. Provide pregenerarated
module-defs.h.win32, module-defs-lang.c.win32 files too.
Define PANGO_MODULE_PREFIX appropriately in the relevant module source
files if not available from the compilation command line.
Update module-defs-fc.c.win32 and module-defs-win32.c.win32 to match
what the configure script provides.
Diffstat (limited to 'pango')
-rw-r--r-- | pango/Makefile.am | 55 | ||||
-rw-r--r-- | pango/mini-fribidi/Makefile.am | 10 | ||||
-rw-r--r-- | pango/module-defs-fc.c.win32 | 40 | ||||
-rw-r--r-- | pango/module-defs-lang.c.win32 | 11 | ||||
-rw-r--r-- | pango/module-defs-win32.c.win32 | 26 | ||||
-rw-r--r-- | pango/module-defs.h.win32 | 74 | ||||
-rw-r--r-- | pango/opentype/Makefile.am | 10 |
7 files changed, 172 insertions, 54 deletions
diff --git a/pango/Makefile.am b/pango/Makefile.am index cef644f1..ce3d0b77 100644 --- a/pango/Makefile.am +++ b/pango/Makefile.am @@ -14,8 +14,6 @@ if HAVE_FREETYPE OPENTYPE_SUBDIR=opentype endif -EXTRA_DIST = - FRIBIDI_SUBDIR=mini-fribidi SUBDIRS = $(OPENTYPE_SUBDIR) $(FRIBIDI_SUBDIR) @@ -350,18 +348,23 @@ libpangocairo_1_0_la_LIBADD = \ $(libm) libpangocairo_1_0_la_DEPENDENCIES = \ libpango-$(PANGO_API_VERSION).la -libpangocairo_1_0_la_SOURCES = \ +pangocairo_core_sources = \ pangocairo-context.c \ pangocairo-font.c \ pangocairo-fontmap.c \ pangocairo-render.c \ pangocairo-private.h +libpangocairo_1_0_la_SOURCES = $(pangocairo_core_sources) + if HAVE_CAIRO_WIN32 if PLATFORM_WIN32 -libpangocairo_1_0_la_LDFLAGS += -export-symbols $(srcdir)/pangocairo.def -libpangocairo_1_0_la_DEPENDENCIES += pangocairo.def +libpangocairo_1_0_la_LDFLAGS += -export-symbols $(srcdir)/pangocairo.def -Wl,pangocairo-win32-res.o +libpangocairo_1_0_la_DEPENDENCIES += pangocairo-win32-res.o pangocairo.def endif +pangocairo-win32-res.o: pangocairo.rc + $(AM_V_GEN) $(WINDRES) $< $@ + libpangocairo_1_0_la_LIBADD += libpangowin32-$(PANGO_API_VERSION).la $(WIN32_LIBS) libpangocairo_1_0_la_DEPENDENCIES += libpangowin32-$(PANGO_API_VERSION).la @@ -556,9 +559,11 @@ pango_querymodules_LDADD += libpangowin32-$(PANGO_API_VERSION).la endif pango_querymodules_LDADD += libpango-$(PANGO_API_VERSION).la $(GLIB_LIBS) -EXTRA_DIST += \ +EXTRA_DIST = \ pango-enum-types.h \ module-defs.h \ + module-defs.h.win32 \ + module-defs-lang.c.win32 \ module-defs-fc.c.win32 \ module-defs-win32.c.win32 \ pango.def \ @@ -573,6 +578,8 @@ EXTRA_DIST += \ pangoft2.rc.in \ pangowin32.rc \ pangowin32.rc.in \ + pangocairo.rc \ + pangocairo.rc.in \ pangox.rc \ pangox.rc.in \ pangoxft.rc \ @@ -630,4 +637,40 @@ uninstall-local: uninstall-ms-lib uninstall-def-files TESTS = check.defs +dist-hook: \ + ../build/win32/vs9/pango.vcproj \ + ../build/win32/vs9/pangoft2.vcproj \ + ../build/win32/vs9/pangocairo.vcproj + +# pangowin32.vcproj is not automatically built, it is not being changed + +../build/win32/vs9/pango.vcproj: $(top_srcdir)/build/win32/vs9/pango.vcprojin mini-fribidi/libmini-fribidi.sourcefiles + for F in $(libpango_1_0_la_SOURCES); do \ + case $$F in \ + *.c) echo ' <File RelativePath="..\..\..\pango\'$$F'" />' \ + ;; \ + esac; \ + done >libpango.sourcefiles + $(CPP) -P - <$(top_srcdir)/build/win32/vs9/pango.vcprojin >$@ + +../build/win32/vs9/pangoft2.vcproj: $(top_srcdir)/build/win32/vs9/pangoft2.vcprojin opentype/libharfbuzz.sourcefiles + for F in $(libpangoft2_1_0_la_SOURCES); do \ + case $$F in \ + *.c) echo ' <File RelativePath="..\..\..\pango\'$$F'" />' \ + ;; \ + esac; \ + done >libpangoft2.sourcefiles + $(CPP) -P - <$(top_srcdir)/build/win32/vs9/pangoft2.vcprojin >$@ + +../build/win32/vs9/pangocairo.vcproj: $(top_srcdir)/build/win32/vs9/pangocairo.vcprojin +# Backend-specific sources for the libpangocairo DLL are explicitly +# listed in the vcprojin file + for F in $(pangocairo_core_sources); do \ + case $$F in \ + *.c) echo ' <File RelativePath="..\..\..\pango\'$$F'" />' \ + ;; \ + esac; \ + done >libpangocairo.sourcefiles + $(CPP) -P - <$(top_srcdir)/build/win32/vs9/pangocairo.vcprojin >$@ + -include $(top_srcdir)/git.mk diff --git a/pango/mini-fribidi/Makefile.am b/pango/mini-fribidi/Makefile.am index a9e08d6e..a0baa6b0 100644 --- a/pango/mini-fribidi/Makefile.am +++ b/pango/mini-fribidi/Makefile.am @@ -30,4 +30,14 @@ EXTRA_DIST = \ fribidi_types.i +dist-hook: libmini-fribidi.sourcefiles + +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 + -include $(top_srcdir)/git.mk diff --git a/pango/module-defs-fc.c.win32 b/pango/module-defs-fc.c.win32 index a6ae1cff..7a44537c 100644 --- a/pango/module-defs-fc.c.win32 +++ b/pango/module-defs-fc.c.win32 @@ -1,31 +1,17 @@ -/* Hand-written. Once the GNU configure mechanism is used - * on Win32, too, can be generated. -*/ +/* Autogenerated by configure and then saved for use when compiling with + Visual C. */ -#include "modules.h" - -#ifdef PANGO_MODULE_PREFIX -/* by defining PANGO_MODULE_PREFIX the basic module gets include in the - * backend library, here ../modules/basic/basic-fc.c - * It helps the backend to not fall on its nose even with a screwed module - * configuration. There should be at least enough fonts available to show - * an error message ... - */ -void _pango_basic_ft2_script_engine_list (PangoEngineInfo **engines, - gint *n_engines); -void _pango_basic_ft2_script_engine_init (GTypeModule *module); -void _pango_basic_ft2_script_engine_exit (void); -PangoEngine *_pango_basic_ft2_script_engine_create (const char *id); -#endif +#include "module-defs.h" PangoIncludedModule _pango_included_fc_modules[] = { -#ifdef PANGO_MODULE_PREFIX - { - _pango_basic_ft2_script_engine_list, - _pango_basic_ft2_script_engine_init, - _pango_basic_ft2_script_engine_exit, - _pango_basic_ft2_script_engine_create - }, -#endif - { NULL, NULL, NULL }, + { _pango_arabic_fc_script_engine_list, _pango_arabic_fc_script_engine_init, _pango_arabic_fc_script_engine_exit, _pango_arabic_fc_script_engine_create }, + { _pango_basic_fc_script_engine_list, _pango_basic_fc_script_engine_init, _pango_basic_fc_script_engine_exit, _pango_basic_fc_script_engine_create }, + { _pango_hangul_fc_script_engine_list, _pango_hangul_fc_script_engine_init, _pango_hangul_fc_script_engine_exit, _pango_hangul_fc_script_engine_create }, + { _pango_hebrew_fc_script_engine_list, _pango_hebrew_fc_script_engine_init, _pango_hebrew_fc_script_engine_exit, _pango_hebrew_fc_script_engine_create }, + { _pango_indic_fc_script_engine_list, _pango_indic_fc_script_engine_init, _pango_indic_fc_script_engine_exit, _pango_indic_fc_script_engine_create }, + { _pango_khmer_fc_script_engine_list, _pango_khmer_fc_script_engine_init, _pango_khmer_fc_script_engine_exit, _pango_khmer_fc_script_engine_create }, + { _pango_syriac_fc_script_engine_list, _pango_syriac_fc_script_engine_init, _pango_syriac_fc_script_engine_exit, _pango_syriac_fc_script_engine_create }, + { _pango_thai_fc_script_engine_list, _pango_thai_fc_script_engine_init, _pango_thai_fc_script_engine_exit, _pango_thai_fc_script_engine_create }, + { _pango_tibetan_fc_script_engine_list, _pango_tibetan_fc_script_engine_init, _pango_tibetan_fc_script_engine_exit, _pango_tibetan_fc_script_engine_create }, + { NULL, NULL, NULL, NULL }, }; diff --git a/pango/module-defs-lang.c.win32 b/pango/module-defs-lang.c.win32 new file mode 100644 index 00000000..d1fe979d --- /dev/null +++ b/pango/module-defs-lang.c.win32 @@ -0,0 +1,11 @@ +/* Autogenerated and saved for builds using Microsoft's compiler, + * when the configure mechanism isn't used. + */ + +#include "module-defs.h" + +PangoIncludedModule _pango_included_lang_modules[] = { + { _pango_arabic_lang_script_engine_list, _pango_arabic_lang_script_engine_init, _pango_arabic_lang_script_engine_exit, _pango_arabic_lang_script_engine_create }, + { _pango_indic_lang_script_engine_list, _pango_indic_lang_script_engine_init, _pango_indic_lang_script_engine_exit, _pango_indic_lang_script_engine_create }, + { NULL, NULL, NULL, NULL }, +}; diff --git a/pango/module-defs-win32.c.win32 b/pango/module-defs-win32.c.win32 index 80fc90a3..5c1698c6 100644 --- a/pango/module-defs-win32.c.win32 +++ b/pango/module-defs-win32.c.win32 @@ -1,25 +1,9 @@ -/* Hand-written, for builds using Microsoft's compiler and makefile.msc, - * where the configure mechanism isn't used. - */ +/* Autogenerated by configure and then saved for use when compiling with + Visual C. */ -#include "modules.h" - -#ifdef PANGO_MODULE_PREFIX -void _pango_basic_win32_script_engine_list (PangoEngineInfo **engines, - gint *n_engines); -void _pango_basic_win32_script_engine_init (GTypeModule *module); -void _pango_basic_win32_script_engine_exit (void); -PangoEngine *_pango_basic_win32_script_engine_create (const char *id); -#endif +#include "module-defs.h" PangoIncludedModule _pango_included_win32_modules[] = { -#ifdef PANGO_MODULE_PREFIX - { - _pango_basic_win32_script_engine_list, - _pango_basic_win32_script_engine_init, - _pango_basic_win32_script_engine_exit, - _pango_basic_win32_script_engine_create - }, -#endif - { NULL, NULL, NULL }, + { _pango_basic_win32_script_engine_list, _pango_basic_win32_script_engine_init, _pango_basic_win32_script_engine_exit, _pango_basic_win32_script_engine_create }, + { NULL, NULL, NULL, NULL }, }; diff --git a/pango/module-defs.h.win32 b/pango/module-defs.h.win32 new file mode 100644 index 00000000..463935ef --- /dev/null +++ b/pango/module-defs.h.win32 @@ -0,0 +1,74 @@ +/* Autogenerated by configure and then saved for use when compiling with + Visual C. */ + +#include "modules.h" + +extern void _pango_arabic_fc_script_engine_list (PangoEngineInfo **engines, int *n_engines); +extern void _pango_arabic_fc_script_engine_init (GTypeModule *module); +extern void _pango_arabic_fc_script_engine_exit (void); +extern PangoEngine *_pango_arabic_fc_script_engine_create (const char *id); + +extern void _pango_arabic_lang_script_engine_list (PangoEngineInfo **engines, int *n_engines); +extern void _pango_arabic_lang_script_engine_init (GTypeModule *module); +extern void _pango_arabic_lang_script_engine_exit (void); +extern PangoEngine *_pango_arabic_lang_script_engine_create (const char *id); + +extern void _pango_basic_fc_script_engine_list (PangoEngineInfo **engines, int *n_engines); +extern void _pango_basic_fc_script_engine_init (GTypeModule *module); +extern void _pango_basic_fc_script_engine_exit (void); +extern PangoEngine *_pango_basic_fc_script_engine_create (const char *id); + +extern void _pango_basic_win32_script_engine_list (PangoEngineInfo **engines, int *n_engines); +extern void _pango_basic_win32_script_engine_init (GTypeModule *module); +extern void _pango_basic_win32_script_engine_exit (void); +extern PangoEngine *_pango_basic_win32_script_engine_create (const char *id); + +extern void _pango_basic_x_script_engine_list (PangoEngineInfo **engines, int *n_engines); +extern void _pango_basic_x_script_engine_init (GTypeModule *module); +extern void _pango_basic_x_script_engine_exit (void); +extern PangoEngine *_pango_basic_x_script_engine_create (const char *id); + +extern void _pango_basic_atsui_script_engine_list (PangoEngineInfo **engines, int *n_engines); +extern void _pango_basic_atsui_script_engine_init (GTypeModule *module); +extern void _pango_basic_atsui_script_engine_exit (void); +extern PangoEngine *_pango_basic_atsui_script_engine_create (const char *id); + +extern void _pango_hangul_fc_script_engine_list (PangoEngineInfo **engines, int *n_engines); +extern void _pango_hangul_fc_script_engine_init (GTypeModule *module); +extern void _pango_hangul_fc_script_engine_exit (void); +extern PangoEngine *_pango_hangul_fc_script_engine_create (const char *id); + +extern void _pango_hebrew_fc_script_engine_list (PangoEngineInfo **engines, int *n_engines); +extern void _pango_hebrew_fc_script_engine_init (GTypeModule *module); +extern void _pango_hebrew_fc_script_engine_exit (void); +extern PangoEngine *_pango_hebrew_fc_script_engine_create (const char *id); + +extern void _pango_indic_fc_script_engine_list (PangoEngineInfo **engines, int *n_engines); +extern void _pango_indic_fc_script_engine_init (GTypeModule *module); +extern void _pango_indic_fc_script_engine_exit (void); +extern PangoEngine *_pango_indic_fc_script_engine_create (const char *id); + +extern void _pango_indic_lang_script_engine_list (PangoEngineInfo **engines, int *n_engines); +extern void _pango_indic_lang_script_engine_init (GTypeModule *module); +extern void _pango_indic_lang_script_engine_exit (void); +extern PangoEngine *_pango_indic_lang_script_engine_create (const char *id); + +extern void _pango_khmer_fc_script_engine_list (PangoEngineInfo **engines, int *n_engines); +extern void _pango_khmer_fc_script_engine_init (GTypeModule *module); +extern void _pango_khmer_fc_script_engine_exit (void); +extern PangoEngine *_pango_khmer_fc_script_engine_create (const char *id); + +extern void _pango_syriac_fc_script_engine_list (PangoEngineInfo **engines, int *n_engines); +extern void _pango_syriac_fc_script_engine_init (GTypeModule *module); +extern void _pango_syriac_fc_script_engine_exit (void); +extern PangoEngine *_pango_syriac_fc_script_engine_create (const char *id); + +extern void _pango_thai_fc_script_engine_list (PangoEngineInfo **engines, int *n_engines); +extern void _pango_thai_fc_script_engine_init (GTypeModule *module); +extern void _pango_thai_fc_script_engine_exit (void); +extern PangoEngine *_pango_thai_fc_script_engine_create (const char *id); + +extern void _pango_tibetan_fc_script_engine_list (PangoEngineInfo **engines, int *n_engines); +extern void _pango_tibetan_fc_script_engine_init (GTypeModule *module); +extern void _pango_tibetan_fc_script_engine_exit (void); +extern PangoEngine *_pango_tibetan_fc_script_engine_create (const char *id); diff --git a/pango/opentype/Makefile.am b/pango/opentype/Makefile.am index ebec8ce6..23bb55b3 100644 --- a/pango/opentype/Makefile.am +++ b/pango/opentype/Makefile.am @@ -55,4 +55,14 @@ main_LDADD = libharfbuzz.la $(GLIB_LIBS) EXTRA_DIST = README COPYING +dist-hook: libharfbuzz.sourcefiles + +libharfbuzz.sourcefiles: Makefile + for F in $(libharfbuzz_la_SOURCES); do \ + case $$F in \ + *.c|*.cc) echo ' <File RelativePath="..\..\..\pango\opentype\'$$F'" />' \ + ;; \ + esac; \ + done >libharfbuzz.sourcefiles + -include $(top_srcdir)/git.mk |