Skip to content

Commit

Permalink
Updated Windows Visual Studio build to include AVIF support
Browse files Browse the repository at this point in the history
  • Loading branch information
ruven committed Sep 5, 2024
1 parent da5b2de commit ce0232e
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 8 deletions.
2 changes: 1 addition & 1 deletion .azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ steps:
cd vcpkg
call .\bootstrap-vcpkg.bat
call .\vcpkg integrate install
call .\vcpkg install tiff openjpeg fastcgi libpng libwebp --triplet x64-windows
call .\vcpkg install tiff openjpeg fastcgi libpng libwebp libavif[aom] --triplet x64-windows
displayName: Install dependencies using vcpkg

- task: MSBuild@1
Expand Down
6 changes: 4 additions & 2 deletions README
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,12 @@ FEATURES
* High performance with inbuilt configurable cache
* Support for extremely large images: tera-pixel and multi gigapixel support
* TIFF and JPEG2000 input support
* JPEG, PNG and WebP output support: export of whole or regions of images at any size
* JPEG, PNG, WebP and AVIF output support: export of whole or regions of images at any size
* Supports IIP, Zoomify, DeepZoom and IIIF API's
* 1, 8, 16 and 32 bit image support including 32 bit floating point support
* CIELAB support with automatic CIELAB->sRGB color space conversion
* Multispectral and hyperspectral image support
* Support for XMP metadata and ICC profiles
* Image stacks and image sequence support
* Dynamic hillshading of 3D surface topologies
* Dynamic watermarking
Expand Down Expand Up @@ -60,6 +61,7 @@ Building iipsrv requires a C++ compiler and several development libraries.
- [OpenJPEG](http://www.openjpeg.org/) for JPEG2000 input support. OpenJPEG will be disabled if Kakadu support has been enabled. Use the `--with-openjpeg=<path>` configure option if this library is installed in a non-standard location
- [libpng](http://libpng.org/pub/png/) for PNG output support
- [libwebp](https://developers.google.com/speed/webp) for WebP output support
- [libavif](https://github.com/AOMediaCodec/libavif) for AVIF output support
- [libmemcached](https://libmemcached.org) for [Memcached](https://www.memcached.org), a high-performance, distributed memory object caching system. If enabled, IIPImage will cache results using this distributed cache, giving IIPImage added speed and scalability


Expand Down Expand Up @@ -109,7 +111,7 @@ For building on Windows, Visual Studio build files are available in the `windows

To install all required and optional dependencies using vcpkg:

.\vcpkg.exe install tiff openjpeg fastcgi libpng libwebp --triplet x64-windows
.\vcpkg.exe install tiff openjpeg fastcgi libpng libwebp libavif[aom] --triplet x64-windows

Make these available to Visual Studio:

Expand Down
17 changes: 12 additions & 5 deletions windows/Visual Studio 2022/iipsrv.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
<Keyword>Win32Proj</Keyword>
<RootNamespace>IIPIMAGE</RootNamespace>
<ProjectName>iipsrv</ProjectName>
<WindowsTargetPlatformVersion>10.0.19041.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
Expand Down Expand Up @@ -116,7 +116,7 @@
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;HAVE_OPENJPEG;VERSION="1.2";_USE_MATH_DEFINES;HAVE_TIME_H;HAVE_STL_CHRONO;HAVE_UNORDERED_MAP;HAVE_WEBP;_BASETSD_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;HAVE_OPENJPEG;VERSION="1.2";_USE_MATH_DEFINES;HAVE_TIME_H;HAVE_STL_CHRONO;HAVE_UNORDERED_MAP;HAVE_WEBP;HAVE_AVIF;_BASETSD_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(ProjectDir)\..\dependencies\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
Expand All @@ -126,6 +126,8 @@
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FloatingPointModel>Fast</FloatingPointModel>
<DebugInformationFormat>None</DebugInformationFormat>
<DiagnosticsFormat>Classic</DiagnosticsFormat>
<OpenMPSupport>false</OpenMPSupport>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
Expand Down Expand Up @@ -153,7 +155,7 @@
<Optimization>Disabled</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;HAVE_OPENJPEG;VERSION="1.2";_USE_MATH_DEFINES;HAVE_TIME_H;HAVE_STL_CHRONO;HAVE_UNORDERED_MAP;HAVE_WEBP;_BASETSD_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;HAVE_OPENJPEG;VERSION="1.2";_USE_MATH_DEFINES;HAVE_TIME_H;HAVE_STL_CHRONO;HAVE_UNORDERED_MAP;HAVE_WEBP;HAVE_AVIF;_BASETSD_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(ProjectDir)\..\dependencies\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>false</OmitFramePointers>
Expand Down Expand Up @@ -189,7 +191,7 @@
<Optimization>Full</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;HAVE_OPENJPEG;HAVE_PNG;VERSION="1.2";HAVE_TIME_H;HAVE_STL_CHRONO;HAVE_UNORDERED_MAP;HAVE_WEBP;_BASETSD_H;_USE_MATH_DEFINES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;HAVE_OPENJPEG;HAVE_PNG;VERSION="1.2";HAVE_TIME_H;HAVE_STL_CHRONO;HAVE_UNORDERED_MAP;HAVE_WEBP;HAVE_AVIF;_BASETSD_H;_USE_MATH_DEFINES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(ProjectDir)\..\dependencies\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
Expand All @@ -199,6 +201,9 @@
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FloatingPointModel>Fast</FloatingPointModel>
<DebugInformationFormat>None</DebugInformationFormat>
<OpenMPSupport>false</OpenMPSupport>
<LanguageStandard_C>stdc11</LanguageStandard_C>
<DiagnosticsFormat>Classic</DiagnosticsFormat>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
Expand All @@ -219,7 +224,7 @@
<Optimization>Disabled</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;HAVE_OPENJPEG;HAVE_PNG;VERSION="1.2";HAVE_TIME_H;HAVE_STL_CHRONO;HAVE_UNORDERED_MAP;HAVE_WEBP;_BASETSD_H;_USE_MATH_DEFINES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;HAVE_OPENJPEG;HAVE_PNG;VERSION="1.2";HAVE_TIME_H;HAVE_STL_CHRONO;HAVE_UNORDERED_MAP;HAVE_WEBP;HAVE_AVIF;_BASETSD_H;_USE_MATH_DEFINES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(ProjectDir)\..\dependencies\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
<OmitFramePointers>false</OmitFramePointers>
Expand All @@ -244,6 +249,7 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\src\AVIFCompressor.cc" />
<ClCompile Include="..\..\src\CVT.cc" />
<ClCompile Include="..\..\src\DeepZoom.cc" />
<ClCompile Include="..\..\src\DSOImage.cc" />
Expand Down Expand Up @@ -272,6 +278,7 @@
<ClCompile Include="..\Time.cc" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\AVIFCompressor.h" />
<ClInclude Include="..\..\src\Cache.h" />
<ClInclude Include="..\..\src\DSOImage.h" />
<ClInclude Include="..\..\src\Environment.h" />
Expand Down
12 changes: 12 additions & 0 deletions windows/Visual Studio 2022/iipsrv.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,12 @@
<ClCompile Include="..\..\src\PNGCompressor.cc">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\WebPCompressor.cc">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\AVIFCompressor.cc">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\Cache.h">
Expand Down Expand Up @@ -158,5 +164,11 @@
<ClInclude Include="..\..\src\PNGCompressor.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\WebPCompressor.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\src\AVIFCompressor.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

0 comments on commit ce0232e

Please sign in to comment.