[pango] Export symbols with compiler directives if possible



commit 1147da131ad13e583e73fed956e5c944e1497bf4
Author: Chun-wei Fan <fanchunwei src gnome org>
Date:   Mon Jun 6 19:49:25 2016 +0800

    Export symbols with compiler directives if possible
    
    Add a configure check to see whether compiler directives are available
    for exporting symbols, and use them if so.  Likewise, update
    the Visual Studio projects and config.h.win32.in to do likewise for
    Windows builds.
    
    We can then drop the .def files that were used to export symbols on
    Windows builds, which should clean up things a bit.

 build/win32/vs10/pango.vcxprojin      |    4 -
 build/win32/vs10/pangocairo.vcxprojin |    8 -
 build/win32/vs10/pangoft2.vcxprojin   |    4 -
 build/win32/vs10/pangowin32.vcxprojin |    4 -
 build/win32/vs9/pango.vcprojin        |    4 -
 build/win32/vs9/pangocairo.vcprojin   |    8 -
 build/win32/vs9/pangoft2.vcprojin     |    4 -
 build/win32/vs9/pangowin32.vcprojin   |    4 -
 config.h.win32.in                     |    7 +
 configure.ac                          |   35 +++
 pango/Makefile.am                     |   33 +--
 pango/check.defs                      |   34 ---
 pango/pango.def                       |  412 ---------------------------------
 pango/pangocairo.def                  |   35 ---
 pango/pangoft2.def                    |   88 -------
 pango/pangowin32.def                  |   30 ---
 pango/pangoxft.def                    |   24 --
 17 files changed, 55 insertions(+), 683 deletions(-)
---
diff --git a/build/win32/vs10/pango.vcxprojin b/build/win32/vs10/pango.vcxprojin
index 2458361..9aa7a1a 100644
--- a/build/win32/vs10/pango.vcxprojin
+++ b/build/win32/vs10/pango.vcxprojin
@@ -86,7 +86,6 @@
     </ClCompile>
     <Link>
       <OutputFile>$(OutDir)$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>..\..\..\pango\pango.def</ModuleDefinitionFile>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
@@ -105,7 +104,6 @@
     <Link>
       <OutputFile>$(OutDir)$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll</OutputFile>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
-      <ModuleDefinitionFile>..\..\..\pango\pango.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
       <OptimizeReferences>true</OptimizeReferences>
@@ -127,7 +125,6 @@
     </ClCompile>
     <Link>
       <OutputFile>$(OutDir)$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>..\..\..\pango\pango.def</ModuleDefinitionFile>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
@@ -145,7 +142,6 @@
     </ClCompile>
     <Link>
       <OutputFile>$(OutDir)$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>..\..\..\pango\pango.def</ModuleDefinitionFile>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
diff --git a/build/win32/vs10/pangocairo.vcxprojin b/build/win32/vs10/pangocairo.vcxprojin
index d756f2d..cba0088 100644
--- a/build/win32/vs10/pangocairo.vcxprojin
+++ b/build/win32/vs10/pangocairo.vcxprojin
@@ -151,7 +151,6 @@
       <AdditionalDependencies>cairo.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll</OutputFile>
       
<IgnoreSpecificDefaultLibraries>$(OutDir)pangoft2-$(ApiVersion).lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
-      <ModuleDefinitionFile>..\..\..\pango\pangocairo.def</ModuleDefinitionFile>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
@@ -172,7 +171,6 @@
       <AdditionalDependencies>cairo.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll</OutputFile>
       
<IgnoreSpecificDefaultLibraries>$(OutDir)pangoft2-$(ApiVersion).lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
-      <ModuleDefinitionFile>..\..\..\pango\pangocairo.def</ModuleDefinitionFile>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
@@ -198,7 +196,6 @@
       <AdditionalDependencies>cairo.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll</OutputFile>
       
<IgnoreSpecificDefaultLibraries>$(OutDir)pangoft2-$(ApiVersion).lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
-      <ModuleDefinitionFile>..\..\..\pango\pangocairo.def</ModuleDefinitionFile>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
@@ -218,7 +215,6 @@
     <Link>
       <AdditionalDependencies>cairo.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>..\..\..\pango\pangocairo.def</ModuleDefinitionFile>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
@@ -243,7 +239,6 @@
     <Link>
       <AdditionalDependencies>cairo.lib;$(PangoFT2Libs);%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>..\..\..\pango\pangocairo.def</ModuleDefinitionFile>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
@@ -263,7 +258,6 @@
     <Link>
       <AdditionalDependencies>cairo.lib;$(PangoFT2Libs);%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>..\..\..\pango\pangocairo.def</ModuleDefinitionFile>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
@@ -288,7 +282,6 @@
     <Link>
       <AdditionalDependencies>cairo.lib;$(PangoFT2Libs);%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>..\..\..\pango\pangocairo.def</ModuleDefinitionFile>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
@@ -308,7 +301,6 @@
     <Link>
       <AdditionalDependencies>cairo.lib;$(PangoFT2Libs);%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>..\..\..\pango\pangocairo.def</ModuleDefinitionFile>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
diff --git a/build/win32/vs10/pangoft2.vcxprojin b/build/win32/vs10/pangoft2.vcxprojin
index d7a3f58..0a81e6b 100644
--- a/build/win32/vs10/pangoft2.vcxprojin
+++ b/build/win32/vs10/pangoft2.vcxprojin
@@ -88,7 +88,6 @@
     <Link>
       <AdditionalDependencies>$(PangoFT2Libs);%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>..\..\..\pango\pangoft2.def</ModuleDefinitionFile>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
@@ -108,7 +107,6 @@
     <Link>
       <AdditionalDependencies>$(PangoFT2Libs);%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>..\..\..\pango\pangoft2.def</ModuleDefinitionFile>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
@@ -133,7 +131,6 @@
     <Link>
       <AdditionalDependencies>$(PangoFT2Libs);%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>..\..\..\pango\pangoft2.def</ModuleDefinitionFile>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
@@ -153,7 +150,6 @@
     <Link>
       <AdditionalDependencies>$(PangoFT2Libs);%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>..\..\..\pango\pangoft2.def</ModuleDefinitionFile>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
diff --git a/build/win32/vs10/pangowin32.vcxprojin b/build/win32/vs10/pangowin32.vcxprojin
index c9d5d47..ba458c8 100644
--- a/build/win32/vs10/pangowin32.vcxprojin
+++ b/build/win32/vs10/pangowin32.vcxprojin
@@ -103,7 +103,6 @@
     <Link>
       <AdditionalDependencies>usp10.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>..\..\..\pango\pangowin32.def</ModuleDefinitionFile>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
@@ -122,7 +121,6 @@
     <Link>
       <AdditionalDependencies>usp10.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>..\..\..\pango\pangowin32.def</ModuleDefinitionFile>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
@@ -146,7 +144,6 @@
     <Link>
       <AdditionalDependencies>usp10.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>..\..\..\pango\pangowin32.def</ModuleDefinitionFile>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
@@ -165,7 +162,6 @@
     <Link>
       <AdditionalDependencies>usp10.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll</OutputFile>
-      <ModuleDefinitionFile>..\..\..\pango\pangowin32.def</ModuleDefinitionFile>
       <ImportLibrary>$(TargetDir)$(ProjectName)-$(ApiVersion).lib</ImportLibrary>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <SubSystem>Windows</SubSystem>
diff --git a/build/win32/vs9/pango.vcprojin b/build/win32/vs9/pango.vcprojin
index f1a54e1..a00dd87 100644
--- a/build/win32/vs9/pango.vcprojin
+++ b/build/win32/vs9/pango.vcprojin
@@ -41,7 +41,6 @@
                                Name="VCLinkerTool"
                                OutputFile="$(OutDir)\$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll"
                                LinkIncremental="2"
-                               ModuleDefinitionFile="..\..\..\pango\pango.def"
                                GenerateDebugInformation="true"
                                SubSystem="2"
                                ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib"
@@ -69,7 +68,6 @@
                                Name="VCLinkerTool"
                                OutputFile="$(OutDir)\$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll"
                                LinkIncremental="1"
-                               ModuleDefinitionFile="..\..\..\pango\pango.def"
                                GenerateDebugInformation="true"
                                SubSystem="2"
                                OptimizeReferences="2"
@@ -99,7 +97,6 @@
                                Name="VCLinkerTool"
                                OutputFile="$(OutDir)\$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll"
                                LinkIncremental="2"
-                               ModuleDefinitionFile="..\..\..\pango\pango.def"
                                GenerateDebugInformation="true"
                                SubSystem="2"
                                ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib"
@@ -124,7 +121,6 @@
                                Name="VCLinkerTool"
                                OutputFile="$(OutDir)\$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll"
                                LinkIncremental="1"
-                               ModuleDefinitionFile="..\..\..\pango\pango.def"
                                GenerateDebugInformation="true"
                                SubSystem="2"
                                OptimizeReferences="2"
diff --git a/build/win32/vs9/pangocairo.vcprojin b/build/win32/vs9/pangocairo.vcprojin
index 8f014bb..8725d0a 100644
--- a/build/win32/vs9/pangocairo.vcprojin
+++ b/build/win32/vs9/pangocairo.vcprojin
@@ -43,7 +43,6 @@
                                AdditionalDependencies="cairo.lib $(PangoFT2Libs)"
                                OutputFile="$(OutDir)\$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll"
                                LinkIncremental="2"
-                               ModuleDefinitionFile="..\..\..\pango\pangocairo.def"
                                GenerateDebugInformation="true"
                                SubSystem="2"
                                ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib"
@@ -77,7 +76,6 @@
                                OutputFile="$(OutDir)\$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll"
                                LinkIncremental="2"
                                IgnoreDefaultLibraryNames="$(OutDir)\pangoft2-$(ApiVersion).lib"
-                               ModuleDefinitionFile="..\..\..\pango\pangocairo.def"
                                GenerateDebugInformation="true"
                                SubSystem="2"
                                ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib"
@@ -107,7 +105,6 @@
                                AdditionalDependencies="cairo.lib $(PangoFT2Libs)"
                                OutputFile="$(OutDir)\$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll"
                                LinkIncremental="1"
-                               ModuleDefinitionFile="..\..\..\pango\pangocairo.def"
                                GenerateDebugInformation="true"
                                SubSystem="2"
                                OptimizeReferences="2"
@@ -140,7 +137,6 @@
                                OutputFile="$(OutDir)\$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll"
                                LinkIncremental="1"
                                IgnoreDefaultLibraryNames="$(OutDir)\pangoft2-$(ApiVersion).lib"
-                               ModuleDefinitionFile="..\..\..\pango\pangocairo.def"
                                GenerateDebugInformation="true"
                                SubSystem="2"
                                OptimizeReferences="2"
@@ -172,7 +168,6 @@
                                AdditionalDependencies="cairo.lib $(PangoFT2Libs)"
                                OutputFile="$(OutDir)\$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll"
                                LinkIncremental="2"
-                               ModuleDefinitionFile="..\..\..\pango\pangocairo.def"
                                GenerateDebugInformation="true"
                                SubSystem="2"
                                ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib"
@@ -203,7 +198,6 @@
                                OutputFile="$(OutDir)\$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll"
                                LinkIncremental="2"
                                IgnoreDefaultLibraryNames="$(OutDir)\pangoft2-$(ApiVersion).lib"
-                               ModuleDefinitionFile="..\..\..\pango\pangocairo.def"
                                GenerateDebugInformation="true"
                                SubSystem="2"
                                ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib"
@@ -230,7 +224,6 @@
                                AdditionalDependencies="cairo.lib $(PangoFT2Libs)"
                                OutputFile="$(OutDir)\$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll"
                                LinkIncremental="1"
-                               ModuleDefinitionFile="..\..\..\pango\pangocairo.def"
                                GenerateDebugInformation="true"
                                SubSystem="2"
                                OptimizeReferences="2"
@@ -259,7 +252,6 @@
                                AdditionalDependencies="cairo.lib"
                                OutputFile="$(OutDir)\$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll"
                                LinkIncremental="1"
-                               ModuleDefinitionFile="..\..\..\pango\pangocairo.def"
                                GenerateDebugInformation="true"
                                SubSystem="2"
                                OptimizeReferences="2"
diff --git a/build/win32/vs9/pangoft2.vcprojin b/build/win32/vs9/pangoft2.vcprojin
index 598d5a8..74dbcfb 100644
--- a/build/win32/vs9/pangoft2.vcprojin
+++ b/build/win32/vs9/pangoft2.vcprojin
@@ -45,7 +45,6 @@
                                AdditionalDependencies="$(PangoFT2Libs)"
                                OutputFile="$(OutDir)\$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll"
                                LinkIncremental="2"
-                               ModuleDefinitionFile="..\..\..\pango\pangoft2.def"
                                GenerateDebugInformation="true"
                                SubSystem="2"
                                ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib"
@@ -75,7 +74,6 @@
                                AdditionalDependencies="$(PangoFT2Libs)"
                                OutputFile="$(OutDir)\$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll"
                                LinkIncremental="1"
-                               ModuleDefinitionFile="..\..\..\pango\pangoft2.def"
                                GenerateDebugInformation="true"
                                SubSystem="2"
                                OptimizeReferences="2"
@@ -107,7 +105,6 @@
                                AdditionalDependencies="$(PangoFT2Libs)"
                                OutputFile="$(OutDir)\$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll"
                                LinkIncremental="2"
-                               ModuleDefinitionFile="..\..\..\pango\pangoft2.def"
                                GenerateDebugInformation="true"
                                SubSystem="2"
                                ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib"
@@ -134,7 +131,6 @@
                                AdditionalDependencies="$(PangoFT2Libs)"
                                OutputFile="$(OutDir)\$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll"
                                LinkIncremental="1"
-                               ModuleDefinitionFile="..\..\..\pango\pangoft2.def"
                                GenerateDebugInformation="true"
                                SubSystem="2"
                                OptimizeReferences="2"
diff --git a/build/win32/vs9/pangowin32.vcprojin b/build/win32/vs9/pangowin32.vcprojin
index 71bb4a2..6c06721 100644
--- a/build/win32/vs9/pangowin32.vcprojin
+++ b/build/win32/vs9/pangowin32.vcprojin
@@ -44,7 +44,6 @@
                                AdditionalDependencies="usp10.lib"
                                OutputFile="$(OutDir)\$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll"
                                LinkIncremental="2"
-                               ModuleDefinitionFile="..\..\..\pango\pangowin32.def"
                                GenerateDebugInformation="true"
                                SubSystem="2"
                                ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib"
@@ -74,7 +73,6 @@
                                AdditionalDependencies="usp10.lib"
                                OutputFile="$(OutDir)\$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll"
                                LinkIncremental="1"
-                               ModuleDefinitionFile="..\..\..\pango\pangowin32.def"
                                GenerateDebugInformation="true"
                                SubSystem="2"
                                OptimizeReferences="2"
@@ -105,7 +103,6 @@
                                AdditionalDependencies="usp10.lib"
                                OutputFile="$(OutDir)\$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll"
                                LinkIncremental="2"
-                               ModuleDefinitionFile="..\..\..\pango\pangowin32.def"
                                GenerateDebugInformation="true"
                                SubSystem="2"
                                ImportLibrary="$(TargetDir)$(ProjectName)-$(ApiVersion).lib"
@@ -132,7 +129,6 @@
                                AdditionalDependencies="usp10.lib"
                                OutputFile="$(OutDir)\$(PangoDllPrefix)$(ProjectName)$(PangoDllSuffix).dll"
                                LinkIncremental="1"
-                               ModuleDefinitionFile="..\..\..\pango\pangowin32.def"
                                GenerateDebugInformation="true"
                                SubSystem="2"
                                OptimizeReferences="2"
diff --git a/config.h.win32.in b/config.h.win32.in
index 15dadba..4f05e11 100644
--- a/config.h.win32.in
+++ b/config.h.win32.in
@@ -144,3 +144,10 @@
 
 /* Version number of package */
 #define VERSION "@PANGO_VERSION@"
+
+/* defines how to decorate public symbols while building */
+#ifdef _MSC_VER
+#define _PANGO_EXTERN __declspec(dllexport) extern
+#else
+#define _PANGO_EXTERN __attribute__((visibility("default"))) __declspec(dllexport) extern
+#endif
diff --git a/configure.ac b/configure.ac
index b8ca930..e43e134 100644
--- a/configure.ac
+++ b/configure.ac
@@ -556,6 +556,41 @@ AC_ARG_ENABLE(installed_tests,
 AM_CONDITIONAL(BUILDOPT_INSTALL_TESTS, test x$enable_installed_tests = xyes)
 
 
+dnl *********************************************************************
+dnl * Check for -fvisibility=hidden to determine if we can do GNU-style *
+dnl * visibility attributes for symbol export control                   *
+dnl *********************************************************************
+
+PANGO_HIDDEN_VISIBILITY_CFLAGS=""
+case "$host" in
+  *-*-mingw*)
+    dnl on mingw32 we do -fvisibility=hidden and __declspec(dllexport)
+    AC_DEFINE([_PANGO_EXTERN], [__attribute__((visibility("default"))) __declspec(dllexport) extern],
+              [defines how to decorate public symbols while building])
+    CFLAGS="${CFLAGS} -fvisibility=hidden"
+    ;;
+  *)
+    dnl on other compilers, check if we can do -fvisibility=hidden
+    SAVED_CFLAGS="${CFLAGS}"
+    CFLAGS="-fvisibility=hidden"
+    AC_MSG_CHECKING([for -fvisibility=hidden compiler flag])
+    AC_TRY_COMPILE([], [return 0],
+                   AC_MSG_RESULT(yes)
+                   enable_fvisibility_hidden=yes,
+                   AC_MSG_RESULT(no)
+                   enable_fvisibility_hidden=no)
+    CFLAGS="${SAVED_CFLAGS}"
+
+    AS_IF([test "${enable_fvisibility_hidden}" = "yes"], [
+      AC_DEFINE([_PANGO_EXTERN], [__attribute__((visibility("default"))) extern],
+                [defines how to decorate public symbols while building])
+      PANGO_HIDDEN_VISIBILITY_CFLAGS="-fvisibility=hidden"
+    ])
+    ;;
+esac
+AC_SUBST(PANGO_HIDDEN_VISIBILITY_CFLAGS)
+
+
 AC_HEADER_DIRENT
 AC_CHECK_HEADERS(unistd.h)
 
diff --git a/pango/Makefile.am b/pango/Makefile.am
index b239170..423d374 100644
--- a/pango/Makefile.am
+++ b/pango/Makefile.am
@@ -29,7 +29,8 @@ INCLUDES =                                            \
        $(FREETYPE_CFLAGS)                              \
        $(FONTCONFIG_CFLAGS)                            \
        $(LIBTHAI_CFLAGS)                                       \
-       $(X_CFLAGS)
+       $(X_CFLAGS)                                     \
+       $(PANGO_HIDDEN_VISIBILITY_CFLAGS)
 
 BUILT_SOURCES = pango-enum-types.h pango-enum-types.c pango-features.h
 
@@ -55,8 +56,8 @@ libpango_1_0_la_LIBADD += mini-fribidi/libmini-fribidi.la
 libpango_1_0_la_DEPENDENCIES = mini-fribidi/libmini-fribidi.la
 
 if PLATFORM_WIN32
-libpango_1_0_la_LDFLAGS += -export-symbols $(srcdir)/pango.def -Wl,pango-win32-res.o
-libpango_1_0_la_DEPENDENCIES += pango-win32-res.o pango.def
+libpango_1_0_la_LDFLAGS += -Wl,pango-win32-res.o
+libpango_1_0_la_DEPENDENCIES += pango-win32-res.o
 endif
 pango-win32-res.o: pango.rc
        $(AM_V_GEN) $(WINDRES) $< $@
@@ -211,8 +212,8 @@ libpangoft2_1_0_la_SOURCES =        \
 
 
 if PLATFORM_WIN32
-libpangoft2_1_0_la_LDFLAGS += -export-symbols $(srcdir)/pangoft2.def -Wl,pangoft2-win32-res.o
-libpangoft2_1_0_la_DEPENDENCIES += pangoft2-win32-res.o pangoft2.def
+libpangoft2_1_0_la_LDFLAGS += -Wl,pangoft2-win32-res.o
+libpangoft2_1_0_la_DEPENDENCIES += pangoft2-win32-res.o
 endif
 pangoft2-win32-res.o: pangoft2.rc
        $(AM_V_GEN) $(WINDRES) $< $@
@@ -256,8 +257,8 @@ libpangoxft_1_0_la_DEPENDENCIES =           \
        libpango-$(PANGO_API_VERSION).la
 
 if PLATFORM_WIN32
-libpangoxft_1_0_la_LDFLAGS += -export-symbols $(srcdir)/pangoxft.def -Wl,pangoxft-win32-res.o
-libpangoxft_1_0_la_DEPENDENCIES += pangoxft-win32-res.o pangoxft.def
+libpangoxft_1_0_la_LDFLAGS += -Wl,pangoxft-win32-res.o
+libpangoxft_1_0_la_DEPENDENCIES += pangoxft-win32-res.o
 endif
 pangoxft-win32-res.o: pangoxft.rc
        $(AM_V_GEN) $(WINDRES) $< $@
@@ -313,8 +314,8 @@ 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 -Wl,pangocairo-win32-res.o
-libpangocairo_1_0_la_DEPENDENCIES += pangocairo-win32-res.o pangocairo.def
+libpangocairo_1_0_la_LDFLAGS += -Wl,pangocairo-win32-res.o
+libpangocairo_1_0_la_DEPENDENCIES += pangocairo-win32-res.o
 endif
 pangocairo-win32-res.o: pangocairo.rc
        $(AM_V_GEN) $(WINDRES) $< $@
@@ -399,8 +400,8 @@ libpangowin32_1_0_la_SOURCES =      \
        pangowin32-shape.c
 
 if PLATFORM_WIN32
-libpangowin32_1_0_la_LDFLAGS += -export-symbols $(srcdir)/pangowin32.def -Wl,pangowin32-win32-res.o
-libpangowin32_1_0_la_DEPENDENCIES += pangowin32-win32-res.o pangowin32.def
+libpangowin32_1_0_la_LDFLAGS += -Wl,pangowin32-win32-res.o
+libpangowin32_1_0_la_DEPENDENCIES += pangowin32-win32-res.o
 endif
 pangowin32-win32-res.o: pangowin32.rc
        $(AM_V_GEN) $(WINDRES) $< $@
@@ -423,11 +424,6 @@ EXTRA_DIST =                                       \
        pango-enum-types.h                      \
        pango-enum-types.h.template             \
        pango-enum-types.c.template             \
-       pango.def                               \
-       pangocairo.def                          \
-       pangowin32.def                          \
-       pangoft2.def                            \
-       pangoxft.def                            \
        pango.rc                                \
        pango.rc.in                             \
        pangoft2.rc                             \
@@ -440,8 +436,7 @@ EXTRA_DIST =                                        \
        pangoxft.rc.in                          \
        break-arabic.c                          \
        break-indic.c                           \
-       break-thai.c                            \
-       check.defs
+       break-thai.c
 
 CLEANFILES =                   \
        pango-enum-types.h      \
@@ -548,6 +543,4 @@ dist-hook: \
        $(top_builddir)/build/win32/vs9/pango.headers           \
        $(INTROSPECTION_INTERMEDIATE_ITEMS)
 
-TESTS = check.defs
-
 -include $(top_srcdir)/git.mk


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]