]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-11075: [mod_amqp] Add mod_amqp to the Windows build.
authorAndrey Volk <andywolk@gmail.com>
Thu, 29 Mar 2018 16:53:31 +0000 (19:53 +0300)
committerMuteesa Fred <muteesafred@hotmail.com>
Tue, 24 Jul 2018 07:21:44 +0000 (07:21 +0000)
.gitignore
Freeswitch.2015.sln
src/mod/event_handlers/mod_amqp/mod_amqp.2015.vcxproj [new file with mode: 0644]
src/mod/event_handlers/mod_amqp/mod_amqp.h
w32/Setup/Setup.2015.wixproj
w32/rabbitmq-c-version.props [new file with mode: 0644]
w32/rabbitmq-c.props [new file with mode: 0644]

index ff9c25c0e2fce2818c296b4dab919c5617dc2a18..b271188bbfaaf64514374e7c4052db0fa58aeb87 100644 (file)
@@ -254,4 +254,5 @@ libs/ilbc-*/
 libs/broadvoice-*/
 libs/libcodec2-*/
 libs/libsilk-*/
-
+libs/rabbitmq-c-*/
+libs/rabbitmq-c-*.zip
index e347bda003c7440cec08f3510ff3db8877d5d785..e544a4177947681ed1fabe20ab8412060a274f0e 100644 (file)
@@ -634,6 +634,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download libcodec2", "libs\
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download libsilk", "libs\win32\Download libsilk.2015.vcxproj", "{08782D64-E775-4E96-B707-CC633A226F32}"\r
 EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_amqp", "src\mod\event_handlers\mod_amqp\mod_amqp.2015.vcxproj", "{7AC7AB4F-5EF3-40A0-AD2B-CF4D9720FAC3}"\r
+EndProject\r
 Global\r
        GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
                All|Win32 = All|Win32\r
@@ -2906,6 +2908,18 @@ Global
                {08782D64-E775-4E96-B707-CC633A226F32}.Release|Win32.Build.0 = Release|Win32\r
                {08782D64-E775-4E96-B707-CC633A226F32}.Release|x64.ActiveCfg = Release|Win32\r
                {08782D64-E775-4E96-B707-CC633A226F32}.Release|x64.Build.0 = Release|Win32\r
+               {7AC7AB4F-5EF3-40A0-AD2B-CF4D9720FAC3}.All|Win32.ActiveCfg = Release|Win32\r
+               {7AC7AB4F-5EF3-40A0-AD2B-CF4D9720FAC3}.All|Win32.Build.0 = Release|Win32\r
+               {7AC7AB4F-5EF3-40A0-AD2B-CF4D9720FAC3}.All|x64.ActiveCfg = Release|x64\r
+               {7AC7AB4F-5EF3-40A0-AD2B-CF4D9720FAC3}.All|x64.Build.0 = Release|x64\r
+               {7AC7AB4F-5EF3-40A0-AD2B-CF4D9720FAC3}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {7AC7AB4F-5EF3-40A0-AD2B-CF4D9720FAC3}.Debug|Win32.Build.0 = Debug|Win32\r
+               {7AC7AB4F-5EF3-40A0-AD2B-CF4D9720FAC3}.Debug|x64.ActiveCfg = Debug|x64\r
+               {7AC7AB4F-5EF3-40A0-AD2B-CF4D9720FAC3}.Debug|x64.Build.0 = Debug|x64\r
+               {7AC7AB4F-5EF3-40A0-AD2B-CF4D9720FAC3}.Release|Win32.ActiveCfg = Release|Win32\r
+               {7AC7AB4F-5EF3-40A0-AD2B-CF4D9720FAC3}.Release|Win32.Build.0 = Release|Win32\r
+               {7AC7AB4F-5EF3-40A0-AD2B-CF4D9720FAC3}.Release|x64.ActiveCfg = Release|x64\r
+               {7AC7AB4F-5EF3-40A0-AD2B-CF4D9720FAC3}.Release|x64.Build.0 = Release|x64\r
        EndGlobalSection\r
        GlobalSection(SolutionProperties) = preSolution\r
                HideSolutionNode = FALSE\r
@@ -3136,5 +3150,6 @@ Global
                {CB4E68A1-8D19-4B5E-87B9-97A895E1BA17} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}\r
                {9CFA562C-C611-48A7-90A2-BB031B47FE6D} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
                {08782D64-E775-4E96-B707-CC633A226F32} = {C120A020-773F-4EA3-923F-B67AF28B750D}\r
+               {7AC7AB4F-5EF3-40A0-AD2B-CF4D9720FAC3} = {9ADF1E48-2F5C-4ED7-A893-596259FABFE0}\r
        EndGlobalSection\r
 EndGlobal\r
diff --git a/src/mod/event_handlers/mod_amqp/mod_amqp.2015.vcxproj b/src/mod/event_handlers/mod_amqp/mod_amqp.2015.vcxproj
new file mode 100644 (file)
index 0000000..f0ba526
--- /dev/null
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ItemGroup Label="ProjectConfigurations">
+    <ProjectConfiguration Include="Debug|Win32">
+      <Configuration>Debug</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Debug|x64">
+      <Configuration>Debug</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|Win32">
+      <Configuration>Release</Configuration>
+      <Platform>Win32</Platform>
+    </ProjectConfiguration>
+    <ProjectConfiguration Include="Release|x64">
+      <Configuration>Release</Configuration>
+      <Platform>x64</Platform>
+    </ProjectConfiguration>
+  </ItemGroup>
+  <PropertyGroup Label="Globals">
+    <ProjectName>mod_amqp</ProjectName>
+    <RootNamespace>mod_amqp</RootNamespace>
+    <Keyword>Win32Proj</Keyword>
+    <ProjectGuid>{7AC7AB4F-5EF3-40A0-AD2B-CF4D9720FAC3}</ProjectGuid>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v140</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v140</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v140</PlatformToolset>
+  </PropertyGroup>
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+    <ConfigurationType>DynamicLibrary</ConfigurationType>
+    <CharacterSet>MultiByte</CharacterSet>
+    <PlatformToolset>v140</PlatformToolset>
+  </PropertyGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <Import Project="..\..\..\..\w32\basedir.props" />
+  <Import Project="..\..\..\..\w32\rabbitmq-c.props" />
+  <ImportGroup Label="ExtensionSettings">
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="..\..\..\..\w32\module_release.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="..\..\..\..\w32\module_debug.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="..\..\..\..\w32\module_release.props" />
+  </ImportGroup>
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+    <Import Project="..\..\..\..\w32\module_debug.props" />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros" />
+  <PropertyGroup>
+    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
+  </PropertyGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+    <ClCompile>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+    </ClCompile>
+    <Link>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+    </Midl>
+    <ClCompile>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+    </ClCompile>
+    <Link>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+    <ClCompile>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+    </ClCompile>
+    <Link>
+      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+    <Midl>
+      <TargetEnvironment>X64</TargetEnvironment>
+    </Midl>
+    <ClCompile>
+      <AdditionalIncludeDirectories>%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <PrecompiledHeader>
+      </PrecompiledHeader>
+    </ClCompile>
+    <Link>
+      <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <RandomizedBaseAddress>false</RandomizedBaseAddress>
+      <DataExecutionPrevention>
+      </DataExecutionPrevention>
+      <TargetMachine>MachineX64</TargetMachine>
+    </Link>
+  </ItemDefinitionGroup>
+  <ItemGroup>
+    <ClCompile Include="mod_amqp.c" />
+    <ClCompile Include="mod_amqp_command.c" />
+    <ClCompile Include="mod_amqp_connection.c" />
+    <ClCompile Include="mod_amqp_logging.c" />
+    <ClCompile Include="mod_amqp_producer.c" />
+    <ClCompile Include="mod_amqp_utils.c" />
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="mod_amqp.h" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\..\..\..\w32\Library\FreeSwitchCore.2015.vcxproj">
+      <Project>{202d7a4e-760d-4d0e-afa1-d7459ced30ff}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+  <ImportGroup Label="ExtensionTargets">
+  </ImportGroup>
+</Project>
index 145d8112ffc50d85e8e1e60357456f952f9eabed..0282c1a34c617afffc614346255cc4ebcebbe37c 100644 (file)
 #include <amqp.h>
 #include <amqp_framing.h>
 #include <amqp_tcp_socket.h>
+
+#ifndef _MSC_VER
 #include <strings.h>
+#endif
 
 #define MAX_LOG_MESSAGE_SIZE 1024
 #define AMQP_MAX_HOSTS 4
index 92931d3f7d6265867c9308d750a4faa367e75963..6db627261cf40c0af977ba9590ab8c4e65d9084e 100644 (file)
       <RefProjectOutputGroups>Binaries;Content;Satellites</RefProjectOutputGroups>\r
       <RefTargetDir>INSTALLFOLDER</RefTargetDir>\r
     </ProjectReference>\r
+    <ProjectReference Include="..\..\src\mod\event_handlers\mod_amqp\mod_amqp.2015.vcxproj">\r
+      <Name>mod_amqp</Name>\r
+      <Project>{7ac7ab4f-5ef3-40a0-ad2b-cf4d9720fac3}</Project>\r
+      <Private>True</Private>\r
+      <DoNotHarvest>True</DoNotHarvest>\r
+      <RefProjectOutputGroups>Binaries;Content;Satellites</RefProjectOutputGroups>\r
+      <RefTargetDir>INSTALLFOLDER</RefTargetDir>\r
+    </ProjectReference>\r
     <ProjectReference Include="..\..\src\mod\event_handlers\mod_cdr_csv\mod_cdr_csv.2015.vcxproj">\r
       <Name>mod_cdr_csv</Name>\r
       <Project>{44d7deaf-fda5-495e-8b9d-1439e4f4c21e}</Project>\r
diff --git a/w32/rabbitmq-c-version.props b/w32/rabbitmq-c-version.props
new file mode 100644 (file)
index 0000000..cea5739
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ImportGroup Label="PropertySheets">
+    <Import Project="basedir.props" Condition=" '$(BaseDirImported)' == ''"/>
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros">
+    <rabbitmq_cVersion>0.8.0</rabbitmq_cVersion>
+  </PropertyGroup>
+  <PropertyGroup>
+    <rabbitmq_cVersionImported>true</rabbitmq_cVersionImported>
+  </PropertyGroup>
+  <PropertyGroup />
+  <ItemDefinitionGroup />
+  <ItemGroup>
+    <BuildMacro Include="rabbitmq_cVersion">
+      <Value>$(rabbitmq_cVersion)</Value>
+    </BuildMacro>
+  </ItemGroup>
+</Project>
diff --git a/w32/rabbitmq-c.props b/w32/rabbitmq-c.props
new file mode 100644 (file)
index 0000000..30db81d
--- /dev/null
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ImportGroup Label="PropertySheets">
+    <Import Project="rabbitmq-c-version.props" Condition=" '$(rabbitmq_cVersionImported)' == '' "/>
+    <Import Project="downloadpackage.task" Condition=" '$(downloadpackagetask_Imported)' == '' " />
+  </ImportGroup>
+
+  <PropertyGroup Label="UserMacros">
+    <rabbitmq_c_libDir>$(BaseDir)libs\rabbitmq-c-$(rabbitmq_cVersion)</rabbitmq_c_libDir>
+  </PropertyGroup>
+
+  <!-- 
+       Download Target.
+       Name must be unique. 
+       By design, targets are executed only once per project.
+       
+       Usage:
+       
+       package: URI
+
+       expectfileordirectory: Skips the download and extraction if exists
+
+       outputfolder: Folder to store a downloaded file. 
+                     By default "$(BaseDir)libs", if empty
+
+       outputfilename: If not empty, overrides filename from URI.
+                       .exe files don't get extracted
+
+       extractto: Folder to extract an archive to
+   -->
+
+  <Target Name="rabbitmq-c-binariesTarget" BeforeTargets="CustomBuild" DependsOnTargets="7za">  
+      <DownloadPackageTask 
+           package="http://files.freeswitch.org/windows/packages/rabbitmq-c/$(rabbitmq_cVersion)/rabbitmq-c-$(rabbitmq_cVersion)-binaries-$(Platform.ToLower())-$(Configuration.ToLower()).zip"
+           expectfileordirectory="$(rabbitmq_c_libDir)\binaries\$(Platform.ToLower())\$(Configuration.ToLower())\librabbitmq.4.lib" 
+           outputfolder=""
+           outputfilename="" 
+           extractto="$(BaseDir)libs"
+      />
+  </Target> 
+
+  <Target Name="rabbitmq-c-headersTarget" BeforeTargets="CustomBuild" DependsOnTargets="7za">  
+      <DownloadPackageTask 
+           package="http://files.freeswitch.org/windows/packages/rabbitmq-c/$(rabbitmq_cVersion)/rabbitmq-c-$(rabbitmq_cVersion)-headers.zip"
+           expectfileordirectory="$(rabbitmq_c_libDir)\include\amqp.h" 
+           outputfolder=""
+           outputfilename="" 
+           extractto="$(BaseDir)libs"
+      />
+  </Target> 
+
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalIncludeDirectories>$(rabbitmq_c_libDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <AdditionalLibraryDirectories>$(rabbitmq_c_libDir)\binaries\$(Platform)\$(Configuration)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>librabbitmq.4.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+
+</Project>