Building AviSynth+'s external dependencies with Visual Studio¶
Starting with 3.7.4, we no longer ship copies of DevIL and SoundTouch inside the AviSynth+ git repository. There are a couple reasons for this:
The internal copy of DevIL was only ever used on Windows and shipped the binary DevIL.dll itself rather than building it as a submodule. All of the other OSes could already build against a newer version of the library or build ImageSeq with DevIL linked in statically (the macOS builds in the Releases are an example).
The embedded SoundTouch code was out of date, and since it was fully possible to build it against the current version (and on *nix, use the existing package, exactly like the DevIL case), there was no harm in moving it to the same model.
So those building AviSynth+ from source have much more flexibility in terms of making sure both SoundTouch and DevIL (and DevIL's dependencies) are actually up-to-date, and can configure the dependencies as static or shared according to their own preferences.
For building SoundTouch and DevIL on Windows using MSVC, we'll take advantage of the fact that CMake's internal install processes mimic the install directories on Linux, et al., which simplifies the ability to point at that singular spot and tell it to bring in the libraries we've built.
Make sure that pkg-config (or pkgconf), cmake, git, 7-zip, wget, sed, bash, autotools, patch, and meson are somewhere on the Windows %PATH%. An existing MSys2 MinGW64 installation that's been added to the %PATH% will suffice. pkg-config is necessary for SoundTouch to be found when configuring AviSynth+; we find DevIL using CMake's own FindDevIL.cmake script.
Even though we do need to piggy-back on some of MSys2's tools, the intention is that all - or at least, most - of this guide can be followed in the regular old Windows Terminal.
We'll use a central install spot for the libraries, by using a bit of environment trickery. Set the following variable as the root of one of your drives.
set AVS_DEPS_BUILD_HOME=E:
Note
If you want to use a drive other than E:, change it here. You can also set this to a subdirectory on the drive, but for simplicity's sake, the guide is just going with the root of the drive.
Then make that setting permanent, so you can close and re-open the Command Prompt and not have to worry about the variable getting erased.
setx AVS_DEPS_BUILD_HOME %AVS_DEPS_BUILD_HOME%
And make a directory to house the downloaded sources for SoundTouch, DevIL, and its dependencies:
mkdir %AVS_DEPS_BUILD_HOME%\avsplus-build-deps
To run the build process with as many cores as you have available, set the -j # parameter when invoking cmake --build. My i5-9400 has 6 cores, so I use -j 6. While Windows does have a CLI command to get this information, it can't be injected into the CMake process the way something like this can under Bash.
Launching the VS Command Prompt can be done from an existing cmd session by invoking one of the vcvarsall scripts in
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build
I have a directory at E:\Programs\ScriptTools
on my %PATH%, so I create
chained launchers to these launchers there, as they aren't otherwise available
on the %PATH%.
echo @ECHO OFF > E:\Programs\ScriptTools\msvc64.bat
echo "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat" >> E:\Programs\ScriptTools\msvc64.bat
echo @ECHO OFF > E:\Programs\ScriptTools\msvc32.bat
echo "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars32.bat" >> E:\Programs\ScriptTools\msvc32.bat
Note
Creating symlinks on Windows 10 and 11 requires Administrator privileges (Open Elevated Command Prompt).
On Windows 11, this can be done from a non-Admin prompt by using sudo as one would on Linux or OS X. sudo on Windows 11 needs to be enabled by the user through Developer Settings.
pkgconf¶
pkg-config is a tool used to detect and add headers and libraries from the filesystem. pkgconf is compatible with pkg-config while both being slimmer on dependencies and adding a couple of useful features.
On Windows, MSVC can be used to build pkgconf, but meson is required. The quickest way to do this is through pip.
Anyone wanting to build the AviSynth+ docs already has Python, hence they also already have pip, and can install meson through there. Or you have Python installed for other reasons anyway. During Python installation it should have been added to the PATH.
Open the Visual Studio Command Prompt and install meson:
pip install meson
Clone the source using Git:
git clone https://github.com/pkgconf/pkgconf
Create the proper build directory and move into it:
mkdir pkgconf\build && ^ cd pkgconf\build
Configure the pkgconf build:
meson setup ../ -Dtests=disabled -Dprefix=C:\pkgconf_for_windows
Build the source:
meson compile
Install pkgconf:
meson install
Create a symbolic link so pkg-config can be used as an alias for pkgconf (Windows 11 instructions shown):
sudo mklink C:\pkgconf_for_windows\bin\pkg-config.exe C:\pkgconf_for_windows\bin\pkgconf.exe
Add the folder containing pkgconf to the PATH:
setx PATH "%PATH%;C:\pkgconf_for_windows\bin"
Close and re-open the Command Prompt.
SoundTouch¶
SoundTouch is used by the TimeStretch plugin.
Jump to the correct drive and source location:
%AVS_DEPS_BUILD_HOME% && ^ cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps
Clone the source using Git:
git clone https://codeberg.org/soundtouch/soundtouch
Enter the directory and create the proper build directories:
cd soundtouch && ^ mkdir build && ^ cd build && ^ mkdir x64 x86
Note
As demonstrated above, multiple commands can be chained by using &&:
cd soundtouch && mkdir build && cd build && mkdir x64 x86
The caret (^) is used to break to a new line in cmd.exe, the same way that bash uses \:
$AVS_DEPS_BUILD_HOME && \cd $AVS_DEPS_BUILD_HOMEavsplus-build-deps
Be sure to copy the entire command wherever carets appear.
x86-64¶
Enter the build directory for x64:
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\soundtouch\build\x64
Configure the build:
cmake ../../ -G "Visual Studio 16 2019" -A "x64" -T "v141_xp" ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64
Compile and install in one step:
cmake --build . --config Release -j 6 --target install
x86-32¶
Enter the build directory for x86:
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\soundtouch\build\x86
Configure the build:
cmake ../../ -G "Visual Studio 16 2019" -A "Win32" -T "v141_xp" ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32
Compile and install in one step:
cmake --build . --config Release -j 6 --target install
DevIL (using prebuilt SDK)¶
Jump to the correct drive and source location:
%AVS_DEPS_BUILD_HOME% && ^ cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps
Download the DevIL SDK zipfile:
wget http://downloads.sourceforge.net/openil/DevIL-Windows-SDK-1.8.0.zip
Unpack it to the build_dep destination area:
7z x -o%AVS_DEPS_BUILD_HOME%\avsplus_build_deps DevIL-Windows-SDK-1.8.0.zip
And then jump to the last section to build AviSynth+.
Building DevIL's dependencies manually¶
Warning
What follows is the dependency chain for building DevIL locally, along with all of its dependencies and their dependencies. Consider this an exercise for the masochistic. It is, however, laid out in a more or less linear fashion to make it easier to follow along.
Unlike the SoundTouch and DevIL SDK steps above, the reason for each step won't be explained, simply because it would introduce a massive amount of identical text. Every one of these are broken up into a group of steps to jump into the source download area, download the source, and create the build subdirectories. And then it breaks down the actual build steps under headers for x64 and x86.
Unless there's something important to note about the options or something weird to account for, the description for those steps are exactly the same.
If there are weird things to account for, they'll be noted.
zlib-ng¶
%AVS_DEPS_BUILD_HOME% && ^ cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps && ^ git clone https://github.com/zlib-ng/zlib-ng && ^ cd zlib-ng && ^ mkdir build && ^ cd build && ^ mkdir x64 x86
x86-64¶
Note
-DPKGCONFIG_INSTALL_DIR is necessary because otherwise the .pc file will install to root.
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\zlib-ng\build\x64cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64 ^ -DBUILD_SHARED_LIBS:bool=off -DZLIB_COMPAT:bool=on -DZLIB_ENABLE_TESTS:bool=off ^ -DPKGCONFIG_INSTALL_DIR=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64\lib\pkgconfigcmake --build . --config Release -j 6 --target install
x86-32¶
Note
-DPKGCONFIG_INSTALL_DIR is necessary because otherwise the .pc file will install to root.
Note
-DWITH_SSE2:bool=off exists here to disable SSE2, as the guide assumes a very broad install base. Most users don't need to worry about that option and can safely remove it.
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\zlib-ng\build\x86cmake ../../ -G "Visual Studio 16 2019" -A "Win32" -T "v141_xp" ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32 ^ -DBUILD_SHARED_LIBS:bool=off -DZLIB_COMPAT:bool=on -DZLIB_ENABLE_TESTS:bool=off ^ -DWITH_SSE2:bool=off -DCMAKE_RC_FLAGS="--target=pe-i386" ^ -DPKGCONFIG_INSTALL_DIR=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32\lib\pkgconfigcmake --build . --config Release -j 6 --target install
xz-tools¶
%AVS_DEPS_BUILD_HOME% && ^ cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps && ^ wget http://tukaani.org/xz/xz-5.6.4.tar.gz -O - | tar -xzvf - && ^ cd xz-5.6.4 && ^ mkdir build && ^ cd build && ^ mkdir x64 x86
x86-64¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\xz-5.6.4\build\x64cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64 ^ -DBUILD_SHARED_LIBS:bool=offcmake --build . --config Release -j 6 --target install
x86-32¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\xz-5.6.4\build\x86cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" -A Win32 ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32 ^ -DBUILD_SHARED_LIBS:bool=offcmake --build . --config Release -j 6 --target install
LCMS2¶
Using meson with MSVC requires launching the VS Command Prompt.
%AVS_DEPS_BUILD_HOME% && ^ cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps && ^ git clone https://github.com/mm2/Little-CMS && ^ cd Little-CMS && ^ mkdir build && ^ cd build && ^ mkdir x64 x86
x86-64¶
msvc64
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\Little-CMS\build\x64meson setup ../../ --prefix=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64 ^ --libdir=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64\lib ^ --default-library static --backend vsmeson compile -C .meson install --stripsudo mklink %AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64\lib\lcms2.lib %AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64\lib\liblcms2.a
x86-32¶
msvc32
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\Little-CMS\build\x86meson setup ../../ --prefix=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32 ^ --libdir=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32\lib ^ --default-library static --backend vsmeson compile -C .meson install --stripsudo mklink %AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32\lib\lcms2.lib %AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32\lib\liblcms2.aexit
Note
Remember to exit the VS Command Prompt before continuing
libjpeg-turbo¶
%AVS_DEPS_BUILD_HOME% && ^ cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps && ^ git clone https://github.com/libjpeg-turbo/libjpeg-turbo && ^ cd libjpeg-turbo && ^ mkdir build && ^ cd build && ^ mkdir x64 x86
x86-64¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\libjpeg-turbo\build\x64cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64 ^ -DENABLE_SHARED:bool=off -DCMAKE_SYSTEM_PROCESSOR="x86_64"cmake --build . --config Release -j 6 --target install
x86-32¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\libjpeg-turbo\build\x86cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" -A Win32 ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32 ^ -DENABLE_SHARED:bool=off -DCMAKE_SYSTEM_PROCESSOR="i686"cmake --build . --config Release -j 6 --target install
libpng¶
%AVS_DEPS_BUILD_HOME% && ^ cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps && ^ git clone git://git.code.sf.net/p/libpng/code libpng && ^ cd libpng && ^ git checkout libpng16 && ^ mkdir build && ^ cd build && ^ mkdir x64 x86
x86-64¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\libpng\build\x64cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64 ^ -DPNG_SHARED:bool=off -DPNG_TESTS:bool=off ^ -DZLIB_INCLUDE_DIR=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64\include ^ -DZLIB_LIBRARY=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64\lib\zlibstatic.libcmake --build . --config Release -j 6 --target install
x86-32¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\libpng\build\x86cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" -A Win32 ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32 ^ -DPNG_SHARED:bool=off -DPNG_TESTS:bool=off ^ -DZLIB_INCLUDE_DIR=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32\include ^ -DZLIB_LIBRARY=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32\lib\zlibstatic.libcmake --build . --config Release -j 6 --target install
jbigkit¶
%AVS_DEPS_BUILD_HOME% && ^ cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps && ^ git clone https://github.com/qyot27/jbigkit && ^ cd jbigkit && ^ git checkout mingw-w64 && ^ mkdir build && ^ cd build && ^ mkdir x64 x86
x86-64¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\jbigkit\build\x64cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64cmake --build . --config Release -j 6 --target install
x86-32¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\jbigkit\build\x86cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" -A Win32 ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32cmake --build . --config Release -j 6 --target install
deflate¶
%AVS_DEPS_BUILD_HOME% && ^ cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps && ^ git clone https://github.com/ebiggers/libdeflate && ^ cd libdeflate && ^ mkdir build && ^ cd build && ^ mkdir x64 x86
x86-64¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\libdeflate\build\x64cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64 ^ -DLIBDEFLATE_BUILD_SHARED_LIB:bool=offcmake --build . --config Release -j 6 --target install
x86-32¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\libdeflate\build\x86cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" -A Win32 ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32 ^ -DLIBDEFLATE_BUILD_SHARED_LIB:bool=offcmake --build . --config Release -j 6 --target install
lerc¶
%AVS_DEPS_BUILD_HOME% && ^ cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps && ^ git clone https://github.com/esri/lerc/ && ^ cd lerc\build && ^ mkdir x64 x86
x86-64¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\lerc\build\x64cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64 ^ -DBUILD_SHARED_LIBS:bool=offcmake --build . --config Release -j 6 --target install
x86-32¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\lerc\build\x86cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" -A Win32 ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32 ^ -DBUILD_SHARED_LIBS:bool=offcmake --build . --config Release -j 6 --target install
zstd¶
%AVS_DEPS_BUILD_HOME% && ^ cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps && ^ git clone https://github.com/facebook/zstd && ^ cd zstd && ^ mkdir zstd-build && ^ cd zstd-build && ^ mkdir x64 x86
x86-64¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\zstd\zstd-build\x64cmake ../../build/cmake -G "Visual Studio 16 2019" -T "v141_xp" ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64 ^ -DZSTD_BUILD_SHARED:bool=offcmake --build . --config Release -j 6 --target install
x86-32¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\zstd\zstd-build\x86cmake ../../build/cmake -G "Visual Studio 16 2019" -T "v141_xp" -A Win32 ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32 ^ -DZSTD_BUILD_SHARED:bool=offcmake --build . --config Release -j 6 --target install
libwebp¶
%AVS_DEPS_BUILD_HOME% && ^ cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps && ^ git clone https://chromium.googlesource.com/webm/libwebp && ^ cd libwebp && ^ mkdir build && ^ cd build && ^ mkdir x64 x86
x86-64¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\libwebp\build\x64cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64 ^ -DCMAKE_PREFIX_PATH=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64 ^ -DBUILD_SHARED_LIBS:bool=off -DWEBP_ENABLE_SWAP_16BIT_CSP:bool=oncmake --build . --config Release -j 6 --target install
x86-32¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\libwebp\build\x86cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" -A Win32 ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32 ^ -DCMAKE_PREFIX_PATH=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32 ^ -DBUILD_SHARED_LIBS:bool=off -DWEBP_ENABLE_SWAP_16BIT_CSP:bool=oncmake --build . --config Release -j 6 --target install
libtiff¶
%AVS_DEPS_BUILD_HOME% && ^ cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps && ^ git clone https://gitlab.com/libtiff/libtiff.git && ^ cd libtiff && ^ mkdir libtiff-build && ^ cd libtiff-build && ^ mkdir x64 x86
Note
Seemingly won't link to the static webp we just built.
x86-64¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\libtiff\libtiff-build\x64cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64 ^ -DCMAKE_PREFIX_PATH=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64 ^ -DBUILD_SHARED_LIBS:bool=off -Dtiff-docs:bool=off -Dtiff-tools:bool=off ^ -Dtiff-tests:bool=off -DCMAKE_C_FLAGS="-DLZMA_API_STATIC"cmake --build . --config Release -j 6 --target install
x86-32¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\libtiff\libtiff-build\x86cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" -A Win32 ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32 ^ -DCMAKE_PREFIX_PATH=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32 ^ -DBUILD_SHARED_LIBS:bool=off -Dtiff-docs:bool=off -Dtiff-tools:bool=off ^ -Dtiff-tests:bool=off -DCMAKE_C_FLAGS="-DLZMA_API_STATIC"cmake --build . --config Release -j 6 --target install
libmng¶
%AVS_DEPS_BUILD_HOME% && ^ cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps && ^ curl -Lo libmng-2.0.3.tar.gz https://sourceforge.net/projects/libmng/files/libmng-devel/2.0.3/libmng-2.0.3.tar.gz/download && ^ tar -xzvf libmng-2.0.3.tar.gz && ^ cd libmng-2.0.3/build && ^ mkdir x64 x86
x86-64¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\libmng-2.0.3\build\x64cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64 ^ -DBUILD_SHARED_LIBS:bool=off ^ -DCMAKE_STAGING_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64 ^ -DCMAKE_PREFIX_PATH=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64cmake --build . --config Release -j 6 --target install
x86-32¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\libmng-2.0.3\build\x86cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" -A Win32 ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32 ^ -DBUILD_SHARED_LIBS:bool=off ^ -DCMAKE_STAGING_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32 ^ -DCMAKE_PREFIX_PATH=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32cmake --build . --config Release -j 6 --target install
libsquish¶
Warning
The libsquish tarball is actually a tarbomb, so we need to create a directory for it first.
%AVS_DEPS_BUILD_HOME% && ^ cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps && ^ mkdir libsquish && ^ cd libsquish && ^ curl -Lo libsquish-1.15.tar.gz https://sourceforge.net/projects/libsquish/files/libsquish-1.15.tgz/download && ^ tar -xzvf libsquish-1.15.tar.gz && ^ mkdir build && ^ cd build && ^ mkdir x64 x86
x86-64¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\libsquish\build\x64cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64 ^ -DBUILD_SHARED_LIBS:bool=offcmake --build . --config Release -j 6 --target install
x86-32¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\libsquish\build\x86cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" -A Win32 ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32 ^ -DBUILD_SHARED_LIBS:bool=offcmake --build . --config Release -j 6 --target install
JasPer¶
%AVS_DEPS_BUILD_HOME% && ^ cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps && ^ git clone https://github.com/jasper-software/jasper.git && ^ cd jasper && ^ mkdir jasper-build && ^ cd jasper-build && ^ mkdir x64 x86
Note
JasPer HEAD not compatible with v141_xp due to missing sysinfoapi.h header and threading library, but this can be kludged.
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\jasper sed -e '97s/^^/\/\//' -e '659,669s/^^/\/\//' src/libjasper/base/jas_malloc.c
x86-64¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\jasper\jasper-build\x64cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64 ^ -DCMAKE_PREFIX_PATH=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64 ^ -DJAS_ENABLE_SHARED:bool=off -DJAS_ENABLE_OPENGL:bool=off ^ -DJAS_ENABLE_DOC:bool=off -DJAS_ENABLE_PROGRAMS:bool=off ^ -DALLOW_IN_SOURCE_BUILD:bool=on -DJAS_ENABLE_MULTITHREADING_SUPPORT:bool=offcmake --build . --config Release -j 6 --target install
x86-32¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\jasper\jasper-build\x86cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" -A Win32 ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32 ^ -DCMAKE_PREFIX_PATH=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32 ^ -DJAS_ENABLE_SHARED:bool=off -DJAS_ENABLE_OPENGL:bool=off ^ -DJAS_ENABLE_DOC:bool=off -DJAS_ENABLE_PROGRAMS:bool=off ^ -DALLOW_IN_SOURCE_BUILD:bool=on -DJAS_ENABLE_MULTITHREADING_SUPPORT:bool=offcmake --build . --config Release -j 6 --target install
OpenEXR¶
Note
Not compatible with XP.
%AVS_DEPS_BUILD_HOME% && ^ cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps && ^ git clone https://github.com/AcademySoftwareFoundation/openexr && ^ cd openexr && ^ mkdir build && ^ cd build && ^ mkdir x64 x86
x86-64¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\openexr\build\x64cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64 ^ -DBUILD_SHARED_LIBS:bool=offcmake --build . --config Release -j 6 --target install
x86-32¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\openexr\build\x86cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" -A Win32 ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32 ^ -DBUILD_SHARED_LIBS:bool=offcmake --build . --config Release -j 6 --target install
DevIL¶
%AVS_DEPS_BUILD_HOME% && ^ cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps && ^ git clone https://github.com/DentonW/DevIL.git
Comment out or delete the reference to ILUT subdirectory in CMakeLists.txt:
sed -i '9d' DevIL/DevIL/CMakeLists.txt
Remove SHARED definition from src-ILU CMakeLists.txt to force static ILU:
sed -i '46s/SHARED //' DevIL\DevIL\src-ILU\CMakeLists.txt
Apply patch to use newer versions of JasPer:
cd DevIL && ^ wget https://gist.githubusercontent.com/qyot27/b362b3e3834485c3e7b7e33e3b8d5049/raw/4fdcfa2b5b516f47d8ce1e967d70877f63c85497/0001-jasper-git.patch && ^ git am 0001-jasper-git.patch
Convert .h files in src-ILU/include/ilu-error
from ISO-8859-1 to UTF-8 to avoid
build errors:
cd DevIL\DevIL\src-ILU\include\ilu_error && ^ iconv -f ISO-8859-1 -t UTF-8 ilu_err-french.h | tee ilu_err-french.h && ^ iconv -f ISO-8859-1 -t UTF-8 ilu_err-german.h | tee ilu_err-german.h && ^ iconv -f ISO-8859-1 -t UTF-8 ilu_err-italian.h | tee ilu_err-italian.h && ^ iconv -f ISO-8859-1 -t UTF-8 ilu_err-spanish.h | tee ilu_err-spanish.h && ^ cd %AVS_DEPS_BUILD_HOME%\avsplus-build-depscd DevIL/DevIL && ^ mkdir devil-build && ^ cd devil-build && ^ mkdir x64 x86
Note
DevIL looks for LCMS2 as lcms2.lib; use a symlink to fix that.
x86-64¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\DevIL\DevIL\devil-build\x64cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64 ^ -DBUILD_SHARED_LIBS:bool=off ^ -DCMAKE_PREFIX_PATH=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64cmake --build . --config Release -j 6 --target install
x86-32¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\DevIL\DevIL\devil-build\x86cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" -A Win32 ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32 ^ -DBUILD_SHARED_LIBS:bool=off ^ -DCMAKE_PREFIX_PATH=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32cmake --build . --config Release -j 6 --target install
AviSynth+¶
%AVS_DEPS_BUILD_HOME%
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps
git clone https://github.com/AviSynth/AviSynthPlus.git
cd AviSynthPlus
mkdir build && cd build
mkdir x64 x86
Using prebuilt DevIL SDK¶
x86-64¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\AviSynthPlus\build\x64cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avisynth_build\x86-64 ^ -DWINXP_SUPPORT:bool=on ^ -DIL_LIBRARIES="E:\avsplus_build_deps\DevIL Windows SDK\lib\x64\Release\DevIL.lib" ^ -DILU_LIBRARIES="E:\avsplus_build_deps\DevIL Windows SDK\lib\x64\Release\ILU.lib" ^ -DCMAKE_PREFIX_PATH="E:\avsplus_build_deps\x86-64;E:\avsplus_build_deps\DevIL Windows SDK"cmake --build . --config Release -j 6 --target install
Copy 64-bit DevIL.dll from the SDK into the bin directory of the AviSynth+ install, using the Windows-native copy command (although if you have MSys2's tools on the %PATH%, cp would be usable as well):
copy "%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\DevIL Windows SDK\lib\x64\Release\DevIL.dll" ^ %AVS_DEPS_BUILD_HOME%\avisynth_build\x86-64\bin
x86-32¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\AviSynthPlus\build\x86cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" -A "Win32" ^ -DCMAKE_INSTALL_PREFIX=E:/avisynth_build/x86-32 -DMSVC_CPU_ARCH="SSE" ^ -DWINXP_SUPPORT:bool=on ^ -DIL_LIBRARIES="E:\avsplus_build_deps\DevIL Windows SDK\lib\x86\Release\DevIL.lib" ^ -DILU_LIBRARIES="E:\avsplus_build_deps\DevIL Windows SDK\lib\x86\Release\ILU.lib" ^ -DCMAKE_PREFIX_PATH="E:\avsplus_build_deps\x86-32;E:\avsplus_build_deps\DevIL Windows SDK"cmake --build . --config Release -j 6 --target install
Copy 32-bit DevIL.dll from the SDK into the bin directory of the AviSynth+ install, using the Windows-native copy command (although if you have MSys2's tools on the %PATH%, cp would be usable as well):
copy "%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\DevIL Windows SDK\lib\x86\Release\DevIL.dll" %AVS_DEPS_BUILD_HOME%\avisynth_build\x86-32\bin
Using manually-built static DevIL¶
x86-64¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\AviSynthPlus\build\x64cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" ^ -DCMAKE_INSTALL_PREFIX=%AVS_DEPS_BUILD_HOME%\avisynth_build\x86-64 ^ -DWINXP_SUPPORT:bool=on ^ -DIL_LIBRARIES="%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64\lib\DevIL.lib;%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64\lib\jpeg-static.lib;%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64\lib\libpng16_static.lib;%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64\lib\tiff.lib;%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64\lib\squish.lib;%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64\lib\jasper.lib;%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64\lib\zlibstatic.lib;%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64\lib\lzma.lib;%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64\lib\jbig.lib;%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64\lib\deflatestatic.lib;%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64\lib\Lerc.lib;%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64\lib\zstd_static.lib" ^ -DILU_LIBRARIES=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64\lib\ILU.lib ^ -DCMAKE_PREFIX_PATH=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-64 ^ -DCMAKE_CXX_FLAGS="-DIL_STATIC_LIB"cmake --build . --config Release -j 6 --target install
x86-32¶
cd %AVS_DEPS_BUILD_HOME%\avsplus-build-deps\AviSynthPlus\build\x86cmake ../../ -G "Visual Studio 16 2019" -T "v141_xp" -A "Win32" ^ -DCMAKE_INSTALL_PREFIX=E:/avisynth_build/x86-32 -DMSVC_CPU_ARCH="SSE" ^ -DWINXP_SUPPORT:bool=on ^ -DIL_LIBRARIES="%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32\lib\DevIL.lib;%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32\lib\jpeg-static.lib;%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32\lib\libpng16_static.lib;%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32\lib\tiff.lib;%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32\lib\squish.lib;%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32\lib\jasper.lib;%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32\lib\zlibstatic.lib;%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32\lib\lzma.lib;%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32\lib\jbig.lib;%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32\lib\deflatestatic.lib;%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32\lib\Lerc.lib;%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32\lib\zstd_static.lib" ^ -DILU_LIBRARIES=%AVS_DEPS_BUILD_HOME%\avsplus_build_deps\x86-32\lib\ILU.lib ^ -DCMAKE_PREFIX_PATH="E:\avsplus_build_deps\x86-32" ^ -DCMAKE_CXX_FLAGS="-DIL_STATIC_LIB"cmake --build . --config Release -j 6 --target install
Back to the main page
$ Date: 2025-03-08 21:34:07-05:00 $