[Build-System] Windows: Upgrade libjpeg to v10_1 and use pre-compiled binaries (#3191)

This commit is contained in:
Andrey Volk
2026-09-27 20:20:28 +03:00
committed by GitHub
parent 8356b2ec5c
commit 542ea9fe61
9 changed files with 92 additions and 317 deletions
-40
View File
@@ -1,40 +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="downloadpackage.task" Condition=" '$(downloadpackagetask_Imported)' == '' " />
</ImportGroup>
<PropertyGroup>
<downloadlibjpegPropsImported>true</downloadlibjpegPropsImported>
</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="libjpegDownloadTarget" BeforeTargets="CustomBuild;PreBuildEvent;" DependsOnTargets="7za">
<DownloadPackageTask
package="https://files.freeswitch.org/downloads/libs/jpegsrc.v8d.tar.gz"
expectfileordirectory="$(BaseDir)libs\jpeg-8d\jpegint.h"
outputfolder=""
outputfilename=""
extractto="$(BaseDir)libs\"
/>
</Target>
</Project>
+21
View File
@@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros">
<libjpegVersion>10</libjpegVersion>
<libjpegBuildNumber>1</libjpegBuildNumber>
</PropertyGroup>
<PropertyGroup>
<libjpegVersionImported>true</libjpegVersionImported>
</PropertyGroup>
<PropertyGroup />
<ItemDefinitionGroup />
<ItemGroup>
<BuildMacro Include="libjpegVersion">
<Value>$(libjpegVersion)</Value>
</BuildMacro>
<BuildMacro Include="libjpegBuildNumber">
<Value>$(libjpegBuildNumber)</Value>
</BuildMacro>
</ItemGroup>
</Project>
+59
View File
@@ -0,0 +1,59 @@
<?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="libjpeg-version.props" Condition=" '$(libjpegVersionImported)' == '' "/>
<Import Project="downloadpackage.task" Condition=" '$(downloadpackagetask_Imported)' == '' " />
</ImportGroup>
<PropertyGroup Label="UserMacros">
<libjpegLibDir>$(BaseDir)libs\libjpeg-$(libjpegVersion)_$(libjpegBuildNumber)</libjpegLibDir>
</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="libjpegBinariesDownloadTarget" BeforeTargets="CustomBuild" DependsOnTargets="7za">
<DownloadPackageTask
package="https://github.com/freeswitch/windows-deps/releases/download/libjpeg-v$(libjpegVersion)_$(libjpegBuildNumber)/libjpeg-$(libjpegVersion)_$(libjpegBuildNumber)-binaries-$(Platform.ToLower())-$(Configuration.ToLower()).zip"
expectfileordirectory="$(libjpegLibDir)\binaries\$(Platform)\$(Configuration)\libjpeg.lib"
outputfolder=""
outputfilename=""
extractto="$(BaseDir)libs\"
/>
</Target>
<Target Name="libjpegHeadersDownloadTarget" BeforeTargets="CustomBuild" DependsOnTargets="7za">
<DownloadPackageTask
package="https://github.com/freeswitch/windows-deps/releases/download/libjpeg-v$(libjpegVersion)_$(libjpegBuildNumber)/libjpeg-$(libjpegVersion)_$(libjpegBuildNumber)-headers.zip"
expectfileordirectory="$(libjpegLibDir)\include\jpeglib.h"
outputfolder=""
outputfilename=""
extractto="$(BaseDir)libs\"
/>
</Target>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(libjpegLibDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<AdditionalLibraryDirectories>$(libjpegLibDir)\binaries\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>libjpeg.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
</Project>