mirror of
https://github.com/signalwire/freeswitch.git
synced 2026-07-04 19:31:56 +00:00
[mod_v8] Use pre-compiled libnode 20.19.2 binary instead of custom v8-6.1 lib on Windows. (#3053)
This commit is contained in:
+2
-2
@@ -566,8 +566,8 @@ opal
|
||||
|
||||
/zeromq-*/
|
||||
/jpeg-8d/
|
||||
/v8-*/
|
||||
/v8-*.zip
|
||||
/libnode-*/
|
||||
/libnode-*.zip
|
||||
|
||||
# build products we should remove
|
||||
!/libg722_1/config/depcomp
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup Label="ProjectConfigurations">
|
||||
<ProjectConfiguration Include="Debug|Win32">
|
||||
@@ -47,7 +47,7 @@
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
||||
<Import Project="$(SolutionDir)\w32\curl.props" />
|
||||
<Import Project="$(SolutionDir)\w32\v8.props" />
|
||||
<Import Project="$(SolutionDir)\w32\libnode.props" />
|
||||
<ImportGroup Label="ExtensionSettings">
|
||||
</ImportGroup>
|
||||
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<?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">
|
||||
<V8Version>6.1.298</V8Version>
|
||||
<LibNodeVersion>20.19.2</LibNodeVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<V8VersionImported>true</V8VersionImported>
|
||||
<LibNodeVersionImported>true</LibNodeVersionImported>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup />
|
||||
<ItemDefinitionGroup />
|
||||
<ItemGroup>
|
||||
<BuildMacro Include="V8Version">
|
||||
<Value>$(V8Version)</Value>
|
||||
<BuildMacro Include="LibNodeVersion">
|
||||
<Value>$(LibNodeVersion)</Value>
|
||||
</BuildMacro>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
</Project>
|
||||
@@ -0,0 +1,79 @@
|
||||
<?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="libnode-version.props" Condition=" '$(LibNodeVersionImported)' == '' "/>
|
||||
<Import Project="downloadpackage.task" Condition=" '$(downloadpackagetask_Imported)' == '' " />
|
||||
</ImportGroup>
|
||||
|
||||
<PropertyGroup Label="UserMacros">
|
||||
<LibNodeDir>$(BaseDir)libs\libnode-$(LibNodeVersion)</LibNodeDir>
|
||||
</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="libnodeBinariesDownloadTarget" BeforeTargets="CustomBuild" DependsOnTargets="7za">
|
||||
<DownloadPackageTask
|
||||
package="https://github.com/freeswitch/libnode-packaging/releases/download/libnode-v$(LibNodeVersion)/libnode-$(LibNodeVersion)-binaries-$(Platform.ToLower())-$(Configuration.ToLower()).zip"
|
||||
expectfileordirectory="$(LibNodeDir)\binaries\$(Platform)\$(Configuration)\libnode.dll"
|
||||
outputfolder=""
|
||||
outputfilename=""
|
||||
extractto="$(BaseDir)libs\"
|
||||
/>
|
||||
</Target>
|
||||
<Target Name="libnodeHeadersDownloadTarget" BeforeTargets="CustomBuild" DependsOnTargets="7za">
|
||||
<DownloadPackageTask
|
||||
package="https://github.com/freeswitch/libnode-packaging/releases/download/libnode-v$(LibNodeVersion)/libnode-$(LibNodeVersion)-headers.zip"
|
||||
expectfileordirectory="$(LibNodeDir)\include\v8.h"
|
||||
outputfolder=""
|
||||
outputfilename=""
|
||||
extractto="$(BaseDir)libs\"
|
||||
/>
|
||||
</Target>
|
||||
|
||||
<Target Name="libnodeCopyTarget" BeforeTargets="CustomBuild" DependsOnTargets="libnodeBinariesDownloadTarget">
|
||||
<Message Text="Copying libnode.dll to the freeswitch output folder." Importance="High" />
|
||||
<ItemGroup>
|
||||
<libnodeFiles Include="$(LibNodeDir)\binaries\$(Platform)\$(Configuration)\*.dll"/>
|
||||
</ItemGroup>
|
||||
<Copy Condition="!exists('$(BaseDir)\$(Platform)\$(Configuration)\libnode.dll')"
|
||||
SourceFiles="@(libnodeFiles)"
|
||||
DestinationFiles="@(libnodeFiles->'$(BaseDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension)')"
|
||||
/>
|
||||
</Target>
|
||||
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<!-- V8 14.x headers require C++20 (v8config.h hard-errors otherwise). On MSVC,
|
||||
__cplusplus stays 199711L unless /Zc:__cplusplus is passed, so v8config.h's
|
||||
`#if __cplusplus <= 201703L` fires even with /std:c++20. Set both here. -->
|
||||
<LanguageStandard>stdcpp20</LanguageStandard>
|
||||
<AdditionalOptions>/Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)libs\libnode-$(LibNodeVersion)\include;$(SolutionDir)src\mod\languages\mod_v8;$(SolutionDir)src\mod\languages\mod_v8\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>USING_V8_SHARED;USING_V8_PLATFORM_SHARED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalLibraryDirectories>$(SolutionDir)libs\libnode-$(LibNodeVersion)\binaries\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>libnode.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
</Project>
|
||||
@@ -1,74 +0,0 @@
|
||||
<?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="v8-version.props" Condition=" '$(V8VersionImported)' == '' "/>
|
||||
<Import Project="downloadpackage.task" Condition=" '$(downloadpackagetask_Imported)' == '' " />
|
||||
</ImportGroup>
|
||||
|
||||
<PropertyGroup Label="UserMacros">
|
||||
<V8libDir>$(BaseDir)libs\v8-$(V8Version)</V8libDir>
|
||||
</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="v8BinariesDownloadTarget" BeforeTargets="CustomBuild" DependsOnTargets="7za">
|
||||
<DownloadPackageTask
|
||||
package="http://files.freeswitch.org/windows/packages/v8/$(V8Version)/v8-$(V8Version)-binaries-$(Platform.ToLower())-$(Configuration.ToLower()).zip"
|
||||
expectfileordirectory="$(V8libDir)\binaries\$(Platform)\$(Configuration)\v8.dll"
|
||||
outputfolder=""
|
||||
outputfilename=""
|
||||
extractto="$(BaseDir)libs\"
|
||||
/>
|
||||
</Target>
|
||||
<Target Name="v8HeadersDownloadTarget" BeforeTargets="CustomBuild" DependsOnTargets="7za">
|
||||
<DownloadPackageTask
|
||||
package="http://files.freeswitch.org/windows/packages/v8/$(V8Version)/v8-$(V8Version)-headers.zip"
|
||||
expectfileordirectory="$(V8libDir)\include\v8.h"
|
||||
outputfolder=""
|
||||
outputfilename=""
|
||||
extractto="$(BaseDir)libs\"
|
||||
/>
|
||||
</Target>
|
||||
|
||||
<Target Name="v8copyTarget" BeforeTargets="CustomBuild" DependsOnTargets="v8BinariesDownloadTarget">
|
||||
<Message Text="Copying v8 libraries to the freeswitch output folder." Importance="High" />
|
||||
<ItemGroup>
|
||||
<v8Files Include="$(V8libDir)\binaries\$(Platform)\$(Configuration)\*.dll"/>
|
||||
</ItemGroup>
|
||||
<Copy Condition="!exists('$(BaseDir)\$(Platform)\$(Configuration)\v8.dll')"
|
||||
SourceFiles="@(v8Files)"
|
||||
DestinationFiles="@(v8Files->'$(BaseDir)\$(Platform)\$(Configuration)\%(Filename)%(Extension)')"
|
||||
/>
|
||||
</Target>
|
||||
|
||||
<ItemDefinitionGroup>
|
||||
<ClCompile>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<TreatWarningAsError>true</TreatWarningAsError>
|
||||
<AdditionalIncludeDirectories>$(SolutionDir)libs\v8-$(V8Version)\include;$(SolutionDir)src\mod\languages\mod_v8;$(SolutionDir)src\mod\languages\mod_v8\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
||||
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
||||
</ClCompile>
|
||||
<Link>
|
||||
<AdditionalLibraryDirectories>$(SolutionDir)libs\v8-$(V8Version)\binaries\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>v8.dll.lib;v8_libbase.dll.lib;v8_libplatform.dll.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
||||
</Link>
|
||||
</ItemDefinitionGroup>
|
||||
</Project>
|
||||
Reference in New Issue
Block a user