summaryrefslogtreecommitdiff
path: root/pango
diff options
context:
space:
mode:
authorTor Lillqvist <tml@iki.fi>2010-02-10 15:30:12 +0200
committerTor Lillqvist <tml@iki.fi>2010-03-15 23:25:26 +0200
commitb68d520e9ff526be4301f6db09c0faa077cd864a (patch)
tree2a5d959733f966f72b0b128799fa35b184b0ddf4 /pango
parent6118d5891fee776a087855c335a73c79fdaf036c (diff)
downloadpango-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.am55
-rw-r--r--pango/mini-fribidi/Makefile.am10
-rw-r--r--pango/module-defs-fc.c.win3240
-rw-r--r--pango/module-defs-lang.c.win3211
-rw-r--r--pango/module-defs-win32.c.win3226
-rw-r--r--pango/module-defs.h.win3274
-rw-r--r--pango/opentype/Makefile.am10
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