Visual Studio builds: Use the Centricular fork of libffi

The latest upstream libffi is getting bit-rotten with the Windows/MSVC
builds, and since we are eventually moving to a Meson-based build system,
make use of the Centricular fork of libffi[1], which is better maintained
and tested for builds on Windows, with the use of DLLs over static libraries
and elimination of awkward build flags that we had to use for GObject.

[1]: https://github.com/centricular/libffi
This commit is contained in:
Chun-wei Fan 2017-06-14 10:51:55 +08:00
parent d52f789a29
commit 951fd642dc
6 changed files with 19 additions and 20 deletions

View File

@ -28,11 +28,11 @@ One may wish to build his/her own ZLib-It is recommended that ZLib is
built using the win32/Makefile.msc makefile with VS10 with the ASM routines
to avoid linking problems-see win32/Makefile.msc in ZLib for more details.
For LibFFI, please get version 3.0.10 or later, as Visual C++ build support
was added in the 3.0.10 release series. Please see the README file that
comes with the LibFFI source package for more details on how to build LibFFI
on Visual C++-please note that the mozilla-build package from Mozilla is needed
in order to build LibFFI on Windows.
For LibFFI, please use the Centricular fork of it, which can be found at
https://github.com/centricular/libffi. Please refer to the instructions
there on building, as it involves using the Meson build system and possibly
the Ninja build tool if the Visual Studio project generation is not used
or is unavailable.
Please note, although using one's own existing PCRE installation to build GLib
is possible, it is still recommended to build PCRE during the process of building

View File

@ -15,7 +15,7 @@
<GLibBuildDefines>$(GLibInBuildMacro);$(DllExportDefines);G_LOG_DOMAIN="GLib"</GLibBuildDefines>
<GThreadBuildDefines>G_LOG_DOMAIN="GThread"</GThreadBuildDefines>
<GModuleBuildDefines>G_LOG_DOMAIN="GModule"</GModuleBuildDefines>
<GObjectBuildDefines>GOBJECT_COMPILATION;$(DllExportDefines);G_LOG_DOMAIN="GLib-GObject";FFI_BUILDING</GObjectBuildDefines>
<GObjectBuildDefines>GOBJECT_COMPILATION;$(DllExportDefines);G_LOG_DOMAIN="GLib-GObject"</GObjectBuildDefines>
<GioBuildDefines>$(GioInBuildMacro);G_LOG_DOMAIN="GLib-GIO";$(DllExportDefines)</GioBuildDefines>
<WindowsNetworkingLibs>ws2_32.lib;shlwapi.lib;dnsapi.lib;iphlpapi.lib</WindowsNetworkingLibs>
</PropertyGroup>

View File

@ -83,7 +83,7 @@
<DebugInformationFormat>EditAndContinue</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>libffi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>ffi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(GlibDllPrefix)$(ProjectName)$(GlibDllSuffix).dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(GlibDllPrefix)$(ProjectName)$(GlibDllSuffix).pdb</ProgramDatabaseFile>
@ -105,7 +105,7 @@
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>libffi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>ffi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(GlibDllPrefix)$(ProjectName)$(GlibDllSuffix).dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(GlibDllPrefix)$(ProjectName)$(GlibDllSuffix).pdb</ProgramDatabaseFile>
@ -132,7 +132,7 @@
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>libffi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>ffi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(GlibDllPrefix)$(ProjectName)$(GlibDllSuffix).dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(GlibDllPrefix)$(ProjectName)$(GlibDllSuffix).pdb</ProgramDatabaseFile>
@ -154,7 +154,7 @@
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>libffi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>ffi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<OutputFile>$(OutDir)$(GlibDllPrefix)$(ProjectName)$(GlibDllSuffix).dll</OutputFile>
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(OutDir)$(GlibDllPrefix)$(ProjectName)$(GlibDllSuffix).pdb</ProgramDatabaseFile>

View File

@ -28,11 +28,10 @@ One may wish to build his/her own ZLib-It is recommended that ZLib is
built using the win32/Makefile.msc makefile with VS9 with the ASM routines
to avoid linking problems-see win32/Makefile.msc in ZLib for more details.
For LibFFI, please get version 3.0.10 or later, as Visual C++ build support
was added in the 3.0.10 release series. Please see the README file that
comes with the LibFFI source package for more details on how to build LibFFI
on Visual C++-please note that the mozilla-build package from Mozilla is needed
in order to build LibFFI on Windows.
For LibFFI, please use the Centricular fork of it, which can be found at
https://github.com/centricular/libffi. Please refer to the build instructions
there on how to build it, which involves using the Meson build system, and
the Ninja build tool.
Please note, although using one's own existing PCRE installation to build GLib
is possible, it is still recommended to build PCRE during the process of building

View File

@ -65,7 +65,7 @@
/>
<UserMacro
Name="GObjectBuildDefines"
Value="GOBJECT_COMPILATION;$(DllExportDefines);G_LOG_DOMAIN=\&quot;GLib-GObject\&quot;;FFI_BUILDING"
Value="GOBJECT_COMPILATION;$(DllExportDefines);G_LOG_DOMAIN=\&quot;GLib-GObject\&quot;"
/>
<UserMacro
Name="GioBuildDefines"

View File

@ -38,7 +38,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="libffi.lib"
AdditionalDependencies="ffi.lib"
OutputFile="$(OutDir)\$(GlibDllPrefix)$(ProjectName)$(GlibDllSuffix).dll"
LinkIncremental="2"
GenerateDebugInformation="true"
@ -66,7 +66,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="libffi.lib"
AdditionalDependencies="ffi.lib"
OutputFile="$(OutDir)\$(GlibDllPrefix)$(ProjectName)$(GlibDllSuffix).dll"
LinkIncremental="1"
GenerateDebugInformation="true"
@ -98,7 +98,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="libffi.lib"
AdditionalDependencies="ffi.lib"
OutputFile="$(OutDir)\$(GlibDllPrefix)$(ProjectName)$(GlibDllSuffix).dll"
LinkIncremental="2"
GenerateDebugInformation="true"
@ -126,7 +126,7 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="libffi.lib"
AdditionalDependencies="ffi.lib"
OutputFile="$(OutDir)\$(GlibDllPrefix)$(ProjectName)$(GlibDllSuffix).dll"
LinkIncremental="1"
GenerateDebugInformation="true"