These instructions assume an up-to-date Windows 10 (e.g. build 19041.928) with Microsoft Visual Studio 2019 (e.g. Version 16.9.0 Preview 4.0) installed. If unavailable, please use another build environment:
- Docker container
- MSYS2 on Windows
- Crossroad on Linux (cross compilation for Windows)
Apart from the dependencies in third_party, some of the tools use external dependencies that need to be installed in your system first.
Please install vcpkg (tested with version 2019.07.18), and use it to install the following libraries:
vcpkg install gtest:x64-windows
vcpkg install giflib:x64-windows
vcpkg install libjpeg-turbo:x64-windows
vcpkg install libpng:x64-windows
vcpkg install zlib:x64-windows
From Visual Studio, open the CMakeLists.txt in the JPEG XL root directory. Right-click the CMakeLists.txt entry in the Folder View of the Solution Explorer. In the context menu, select CMake Settings. Click on the green plus to add an x64-Clang configuration and the red minus to remove any non-Clang configuration (the MSVC compiler is currently not supported). Click on the blue hyperlink marked "CMakeSettings.json" and an editor will open. Insert the following text after replacing $VCPKG with the directory where you installed vcpkg above.
{
"configurations": [
{
"name": "x64-Clang-Release",
"generator": "Ninja",
"configurationType": "MinSizeRel",
"buildRoot": "${projectDir}\\out\\build\\${name}",
"installRoot": "${projectDir}\\out\\install\\${name}",
"cmakeCommandArgs": "-DCMAKE_TOOLCHAIN_FILE=$VCPKG/scripts/buildsystems/vcpkg.cmake",
"buildCommandArgs": "-v",
"ctestCommandArgs": "",
"inheritEnvironments": [ "clang_cl_x64" ],
"variables": [
{
"name": "VCPKG_TARGET_TRIPLET",
"value": "x64-windows",
"type": "STRING"
},
{
"name": "JPEGXL_ENABLE_TCMALLOC",
"value": "False",
"type": "BOOL"
},
{
"name": "BUILD_GMOCK",
"value": "True",
"type": "BOOL"
},
{
"name": "gtest_force_shared_crt",
"value": "True",
"type": "BOOL"
},
{
"name": "JPEGXL_ENABLE_FUZZERS",
"value": "False",
"type": "BOOL"
},
{
"name": "JPEGXL_ENABLE_VIEWERS",
"value": "False",
"type": "BOOL"
}
]
}
]
}
The project is now ready for use. To build, simply press F7 (or choose
Build All from the Build menu). This writes binaries to
out/build/x64-Clang-Release/tools
. The main README.md explains
how to use the encoder/decoder and benchmark binaries.