commit f52cd063f107d39fb14e4e3830666051321f403d
parent 7edd1902a3fadbec9045ac481301f92142f44e36
Author: Evgeny Grin (Karlson2k) <k2k@narod.ru>
Date: Sun, 4 Jan 2015 15:59:53 +0000
[w32] Use .dll resource for VC project
Diffstat:
7 files changed, 141 insertions(+), 6 deletions(-)
diff --git a/Makefile.am b/Makefile.am
@@ -2,7 +2,8 @@ ACLOCAL_AMFLAGS = -I m4
SUBDIRS = contrib src m4 .
EXTRA_DIST = acinclude.m4 libmicrohttpd.pc.in libmicrospdy.pc.in \
w32/VS2013/libmicrohttpd.sln w32/VS2013/libmicrohttpd.vcxproj w32/VS2013/libmicrohttpd.vcxproj.filters \
- w32/VS2013/hellobrowser.vcxproj w32/VS2013/hellobrowser.vcxproj.filters w32/VS2013/MHD_config.h
+ w32/VS2013/hellobrowser.vcxproj w32/VS2013/hellobrowser.vcxproj.filters w32/VS2013/MHD_config.h \
+ w32/VS2013/gen_dll_res.ps1 w32/VS2013/microhttpd_dll_res_vc.rc.in w32/VS2013/microhttpd_dll_res_vc.rc
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libmicrohttpd.pc libmicrospdy.pc
diff --git a/configure.ac b/configure.ac
@@ -770,6 +770,7 @@ AC_SUBST(LDFLAGS)
AC_CONFIG_FILES([
libmicrohttpd.pc
libmicrospdy.pc
+w32/VS2013/microhttpd_dll_res_vc.rc
Makefile
contrib/Makefile
doc/Makefile
diff --git a/src/microhttpd/microhttpd_dll_res.rc.in b/src/microhttpd/microhttpd_dll_res.rc.in
@@ -19,11 +19,11 @@ BEGIN
VALUE "ProductName", "GNU libmicrohttpd\0"
VALUE "ProductVersion", "@PACKAGE_VERSION@\0"
VALUE "FileVersion", "@PACKAGE_VERSION@\0"
- VALUE "FileDescription", "GNU libmicrohttpd dll for Windows\0"
+ VALUE "FileDescription", "GNU libmicrohttpd dll for Windows (GCC build)\0"
VALUE "InternalName", "libmicrohttpd\0"
VALUE "OriginalFilename", "libmicrohttpd.dll\0"
VALUE "CompanyName", "Free Software Foundation\0"
- VALUE "LegalCopyright", "Copyright (C) 2007-2014 Christian Grothoff and project contributors\0"
+ VALUE "LegalCopyright", "Copyright (C) 2007-2015 Christian Grothoff and project contributors\0"
VALUE "Comments", "http://www.gnu.org/software/libmicrohttpd/\0"
END
END
diff --git a/w32/VS2013/gen_dll_res.ps1 b/w32/VS2013/gen_dll_res.ps1
@@ -0,0 +1,38 @@
+param ([string]$BasePath = ".\")
+
+$Host.SetShouldExit(111) # Set non-zero return code until task successfully finished
+$ErrorActionPreference = "Stop" # Stop on any error
+
+Remove-Variable MHD_ver,MHD_ver_major,MHD_ver_minor,MHD_ver_patchlev -ErrorAction:SilentlyContinue
+
+Write-Output "Processing: ${BasePath}..\..\configure.ac"
+foreach($line in Get-Content "${BasePath}..\..\configure.ac")
+{
+ if ($line -match '^AC_INIT\(\[libmicrohttpd\],\[((\d+).(\d+).(\d+))\]')
+ {
+ [string]$MHD_ver = $Matches[1].ToString()
+ [string]$MHD_ver_major = $Matches[2].ToString()
+ [string]$MHD_ver_minor = $Matches[3].ToString()
+ [string]$MHD_ver_patchlev = $Matches[4].ToString()
+ break
+ }
+}
+if ("$MHD_ver" -eq "" -or "$MHD_ver_major" -eq "" -or "$MHD_ver_minor" -eq "" -or "$MHD_ver_patchlev" -eq "")
+{
+ Throw "Can't find MHD version in ${BasePath}..\..\configure.ac"
+}
+
+Write-Output "Detected MHD version: $MHD_ver"
+
+Write-Output "Generating ${BasePath}microhttpd_dll_res_vc.rc"
+Get-Content "${BasePath}microhttpd_dll_res_vc.rc.in" | ForEach-Object {
+ $_ -replace '@PACKAGE_VERSION_MAJOR@',"$MHD_ver_major" `
+ -replace '@PACKAGE_VERSION_MINOR@', "$MHD_ver_minor" `
+ -replace '@PACKAGE_VERSION_SUBMINOR@', "$MHD_ver_patchlev" `
+ -replace '@PACKAGE_VERSION@', "$MHD_ver"
+} | Out-File -FilePath "${BasePath}microhttpd_dll_res_vc.rc" -Force
+
+$Host.SetShouldExit(0) # Reset return code
+
+Write-Output "${BasePath}microhttpd_dll_res_vc.rc was generated "
+exit 0 # Exit with success code
diff --git a/w32/VS2013/libmicrohttpd.vcxproj b/w32/VS2013/libmicrohttpd.vcxproj
@@ -65,6 +65,31 @@
<ClInclude Include="..\..\src\microhttpd\tsearch.h" />
<ClInclude Include="MHD_config.h" />
</ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="microhttpd_dll_res_vc.rc">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release-static|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-static|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release-static|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-static|x64'">true</ExcludedFromBuild>
+ </ResourceCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <CustomBuild Include="microhttpd_dll_res_vc.rc.in">
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release-static|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-static|Win32'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release-static|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-static|x64'">true</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-dll|Win32'">false</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug-dll|x64'">false</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release-dll|Win32'">false</ExcludedFromBuild>
+ <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release-dll|x64'">false</ExcludedFromBuild>
+ <FileType>Document</FileType>
+ <Command>PowerShell.exe -Version 3.0 -NonInteractive -NoProfile -ExecutionPolicy Bypass -File "$(SolutionDir)gen_dll_res.ps1" -BasePath $(SolutionDir)</Command>
+ <Message>Generating .dll description resource</Message>
+ <Outputs>$(SolutionDir)microhttpd_dll_res_vc.rc</Outputs>
+ <AdditionalInputs>$(SolutionDir)gen_dll_res.ps1;$(SolutionDir).\..\..\configure.ac</AdditionalInputs>
+ </CustomBuild>
+ </ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{9CFB0342-A9E7-483E-BEE5-A1DE22584C5A}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
@@ -156,6 +181,7 @@
<OutDir>$(SolutionDir)\Output\</OutDir>
<IntDir>$(SolutionDir)$(ProjectName)\$(Configuration)\</IntDir>
<TargetName>$(ProjectName)_d</TargetName>
+ <CustomBuildBeforeTargets>ResourceCompile</CustomBuildBeforeTargets>
<CustomBuildAfterTargets>BuildLink</CustomBuildAfterTargets>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|Win32'">
@@ -163,7 +189,7 @@
<OutDir>$(SolutionDir)\Output\</OutDir>
<IntDir>$(SolutionDir)$(ProjectName)\$(Configuration)\</IntDir>
<TargetName>$(ProjectName)-dll_d</TargetName>
- <CustomBuildAfterTargets>BuildLink</CustomBuildAfterTargets>
+ <CustomBuildBeforeTargets>ResourceCompile</CustomBuildBeforeTargets>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-static|x64'">
<TargetName>$(ProjectName)_d</TargetName>
@@ -174,10 +200,10 @@
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug-dll|x64'">
<TargetName>$(ProjectName)-dll_d</TargetName>
- <CustomBuildAfterTargets>BuildLink</CustomBuildAfterTargets>
<IncludePath>$(SolutionDir)..\..\src\include;$(SolutionDir);$(IncludePath)</IncludePath>
<IntDir>$(SolutionDir)$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
<OutDir>$(SolutionDir)\Output\$(Platform)\</OutDir>
+ <CustomBuildBeforeTargets>ResourceCompile</CustomBuildBeforeTargets>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-static|Win32'">
<OutDir>$(SolutionDir)\Output\</OutDir>
@@ -189,9 +215,9 @@
<OutDir>$(SolutionDir)\Output\</OutDir>
<IntDir>$(SolutionDir)$(ProjectName)\$(Configuration)\</IntDir>
<IncludePath>$(SolutionDir)..\..\src\include;$(SolutionDir);$(IncludePath)</IncludePath>
- <CustomBuildAfterTargets>BuildLink</CustomBuildAfterTargets>
<PostBuildEventUseInBuild>false</PostBuildEventUseInBuild>
<TargetName>$(ProjectName)-dll</TargetName>
+ <CustomBuildBeforeTargets>ResourceCompile</CustomBuildBeforeTargets>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release-static|x64'">
<IncludePath>$(SolutionDir)..\..\src\include;$(SolutionDir);$(IncludePath)</IncludePath>
@@ -206,6 +232,7 @@
<IntDir>$(SolutionDir)$(ProjectName)\$(Configuration)\$(Platform)\</IntDir>
<PostBuildEventUseInBuild>false</PostBuildEventUseInBuild>
<TargetName>$(ProjectName)-dll</TargetName>
+ <CustomBuildBeforeTargets>ResourceCompile</CustomBuildBeforeTargets>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-static|Win32'">
<ClCompile>
@@ -263,6 +290,9 @@
<Outputs>$(OutputPath)microhttpd.h;%(Outputs)</Outputs>
<Inputs>$(SolutionDir)\..\..\src\include\microhttpd.h</Inputs>
</CustomBuildStep>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug-static|x64'">
<ClCompile>
@@ -320,6 +350,9 @@
<Outputs>$(OutputPath)microhttpd.h;%(Outputs)</Outputs>
<Inputs>$(SolutionDir)\..\..\src\include\microhttpd.h</Inputs>
</CustomBuildStep>
+ <ResourceCompile>
+ <PreprocessorDefinitions>_DEBUG;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-static|Win32'">
<ClCompile>
@@ -401,6 +434,9 @@
<Outputs>$(OutputPath)microhttpd.h;%(Outputs)</Outputs>
<Inputs>$(SolutionDir)\..\..\src\include\microhttpd.h</Inputs>
</CustomBuildStep>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release-static|x64'">
<ClCompile>
@@ -482,6 +518,9 @@
<Outputs>$(OutputPath)microhttpd.h;%(Outputs)</Outputs>
<Inputs>$(SolutionDir)\..\..\src\include\microhttpd.h</Inputs>
</CustomBuildStep>
+ <ResourceCompile>
+ <PreprocessorDefinitions>NDEBUG;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ResourceCompile>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
diff --git a/w32/VS2013/libmicrohttpd.vcxproj.filters b/w32/VS2013/libmicrohttpd.vcxproj.filters
@@ -16,6 +16,10 @@
<Filter Include="Source Files\platform_interface">
<UniqueIdentifier>{af799bf7-9787-4134-8e56-9e5aae50c7e3}</UniqueIdentifier>
</Filter>
+ <Filter Include="Template Files">
+ <UniqueIdentifier>{df5ad836-e372-437b-a0e3-299d3675d6b4}</UniqueIdentifier>
+ <Extensions>in</Extensions>
+ </Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\microhttpd\base64.c">
@@ -102,4 +106,14 @@
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
+ <ItemGroup>
+ <ResourceCompile Include="microhttpd_dll_res_vc.rc">
+ <Filter>Resource Files</Filter>
+ </ResourceCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <CustomBuild Include="microhttpd_dll_res_vc.rc.in">
+ <Filter>Template Files</Filter>
+ </CustomBuild>
+ </ItemGroup>
</Project>
\ No newline at end of file
diff --git a/w32/VS2013/microhttpd_dll_res_vc.rc.in b/w32/VS2013/microhttpd_dll_res_vc.rc.in
@@ -0,0 +1,42 @@
+/* W32 resources for .dll */
+
+#include <winresrc.h>
+
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION @PACKAGE_VERSION_MAJOR@,@PACKAGE_VERSION_MINOR@,@PACKAGE_VERSION_SUBMINOR@,0
+ PRODUCTVERSION @PACKAGE_VERSION_MAJOR@,@PACKAGE_VERSION_MINOR@,@PACKAGE_VERSION_SUBMINOR@,0
+ FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
+#if defined(_DEBUG)
+ FILEFLAGS VS_FF_DEBUG
+#else
+ FILEFLAGS 0
+#endif
+ FILEOS VOS_NT_WINDOWS32
+ FILETYPE VFT_DLL
+ FILESUBTYPE VFT2_UNKNOWN
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "04090000" /* Lang = US English, Charset = ASCII */
+ BEGIN
+ VALUE "ProductName", "GNU libmicrohttpd\0"
+ VALUE "ProductVersion", "@PACKAGE_VERSION@\0"
+ VALUE "FileVersion", "@PACKAGE_VERSION@\0"
+ VALUE "FileDescription", "GNU libmicrohttpd dll for Windows (VC build)\0"
+ VALUE "InternalName", "libmicrohttpd\0"
+#if defined(_DEBUG)
+ VALUE "OriginalFilename", "libmicrohttpd_d.dll\0"
+#else
+ VALUE "OriginalFilename", "libmicrohttpd.dll\0"
+#endif
+ VALUE "CompanyName", "Free Software Foundation\0"
+ VALUE "LegalCopyright", "Copyright (C) 2007-2015 Christian Grothoff and project contributors\0"
+ VALUE "Comments", "http://www.gnu.org/software/libmicrohttpd/\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x0409, 0 /* US English, ASCII */
+ END
+END