No description
Find a file
Ladislav Zezula c91595a1a1
Merge pull request #445 from AMDmi3/patch-1
Merging. Thanks for the fix.
2026-07-13 23:01:08 +02:00
.github/workflows consistent usage of -DOPTION without spaces 2026-07-09 20:30:50 +02:00
.vscode Fixed bug in test program that caused bad cosmetic effects during log print 2025-06-02 20:28:39 +02:00
doc History updated 2026-07-04 14:21:58 +02:00
src src/DllMain.rc: Use named constants and update version and copyright information 2026-07-06 16:42:41 +02:00
storm.dll Dlls updated 2026-07-04 05:28:29 +02:00
StormLib.xcodeproj Added the necessary files to the Xcode project, and targets, that are required to be linkable and function 2015-08-03 21:50:20 -07:00
test Fix GetLastError call 2026-07-13 21:41:42 +03:00
.gitignore - modernize CMake by adding target_ where missing, split add_library and sources (target_sources), some reordering 2025-05-25 19:42:45 +02:00
CMakeLists.txt freebsd finds the package but also does not define targets, fall through to pkg-config 2026-07-09 20:11:39 +02:00
conanfile.py 1. Bump Debian CI runner to trixie. 2026-07-09 17:29:37 +02:00
Info.plist Initial creation 2013-01-11 14:55:08 +01:00
LICENSE + Fixed bug in SFileReadFile 2015-05-28 17:24:56 +02:00
make-msvc.bat Fixed renaming files vs file locale 2025-08-06 09:34:58 +02:00
make.bat Fixed renaming files vs file locale 2025-08-06 09:34:58 +02:00
Premake5.lua + Reverted include directories 2016-11-06 16:50:07 +01:00
README.md remove unnecessary conan readme commands 2026-07-09 20:24:27 +02:00
sources Added WDK build 2020-05-11 06:56:25 +02:00
StormLib.sln Fixed loading of corrupt MPQ version 2 2023-06-06 09:50:16 +02:00
StormLib.vcxproj Updated build settings 2024-11-19 09:04:36 +01:00
StormLib.vcxproj.filters Added functions for conversions between MPQ file name <-> Safe file name 2024-11-02 09:18:37 +01:00
StormLib_dll.vcxproj Updated build settings 2024-11-19 09:04:36 +01:00
StormLib_dll.vcxproj.filters Added functions for conversions between MPQ file name <-> Safe file name 2024-11-02 09:18:37 +01:00
StormLib_test.vcxproj Fixed issue https://github.com/ladislav-zezula/StormLib/issues/431 2026-05-25 21:27:47 +02:00
StormLib_test.vcxproj.filters Added functions for conversions between MPQ file name <-> Safe file name 2024-11-02 09:18:37 +01:00
StormLib_vs08.sln + Updated VS 2008 workspace files 2017-11-11 16:06:42 +01:00
StormLib_vs08.vcproj Added functions for conversions between MPQ file name <-> Safe file name 2024-11-02 09:18:37 +01:00
StormLib_vs08_dll.vcproj Updated build settings 2024-11-19 09:04:36 +01:00
StormLib_vs08_test.vcproj Added functions for conversions between MPQ file name <-> Safe file name 2024-11-02 09:18:37 +01:00

StormLib

This is official repository for the StormLib library, an open-source project that can work with Blizzard MPQ archives.

Installation and basic usage

Windows (Visual Studio 2022)

  1. Make sure you have the toolset for Visual Studio 2017 - Windows XP installed
  2. Download the latest release of StormLib
  3. Open the solution file StormLib.sln in Visual Studio 2017/2019/2022
  4. Choose "Build / Batch Build" and select every build of "StormLib"
  5. Choose "Rebuild"
  6. The result libraries are in .\bin\Win32 and .\bin\x64

Note that you can also build the library using newer toolset, such as v143. To do that, you need to retarget the projects. Right-click on the solution, then choose "Retarget solution" and pick your desired toolset version.

Windows (Visual Studio 2008)

  1. Download the latest release of StormLib
  2. Open the solution file StormLib_vs08.sln in Visual Studio 2008
  3. Choose "Build / Batch Build" and select every build of "StormLib"
  4. Choose "Rebuild"
  5. The result libraries are in .\bin\Win32 and .\bin\x64

Windows (any Visual Studio version with CMake)

You can open the appropriate Visual Studio cmd prompt or launch regular cmd and load the necessary environment as specified below.
Change your VS version as needed.

amd64

"C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Auxiliary/Build/vcvarsall.bat" x64
cmake -G "Visual Studio 17 2022" -B build_amd64 -D BUILD_SHARED_LIBS=ON
cmake --build build --config Release

x86

"C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Auxiliary/Build/vcvarsall.bat" x86
cmake -G "Visual Studio 17 2022" -B build_x86 -D BUILD_SHARED_LIBS=ON

Windows (Test Project)

  1. Include the main StormLib header: #include <StormLib.h>
  2. Set the correct library directory for StormLibXYZ.lib:
    • X: D = Debug, R = Release
    • Y: A = ANSI build, U = Unicode build
    • Z: S = Using static CRT library, D = Using Dynamic CRT library
  3. Rebuild

Linux

git clone https://github.com/ladislav-zezula/StormLib.git
cd StormLib && git checkout <latest-release-tag>
cmake -B build -D BUILD_SHARED_LIBS=ON
cmake --build build --config Release
sudo cmake --install build

Include StormLib in your project: #include <StormLib.h>
Make sure you compile your project with -lstorm -lz -lbz2

To produce deb/rpm packages:

cd build
cpack -G "DEB" -D CPACK_PACKAGE_FILE_NAME=libstorm-dev_v9.30_amd64
cpack -G "RPM" -D CPACK_PACKAGE_FILE_NAME=libstorm-devel-v9.30.x86_64

Any platform (Conan)

Conan can automatically resolve and build all dependencies (zlib, bzip2, libtommath) on any platform.

conan install . -of build -s build_type=Release --build=missing
cmake -B build -DCMAKE_BUILD_TYPE=Release -DSTORM_USE_BUNDLED_LIBRARIES=OFF -DWITH_BUNDLED_LIBTOMCRYPT=ON -DCMAKE_TOOLCHAIN_FILE=build/conan_toolchain.cmake
cmake --build build --config Release

-DWITH_BUNDLED_LIBTOMCRYPT=ON is required because libtomcrypt is not yet packaged in Conan Index.

For a 32-bit build on Windows, add -s:h arch=x86 to the conan install command.

List of all CMake options

Option Name Description Default
BUILD_SHARED_LIBS Compile shared libraries OFF
STORM_UNICODE Unicode or ANSI support OFF
STORM_SKIP_INSTALL Skip installing files OFF
STORM_USE_BUNDLED_LIBRARIES Force use of bundled dependencies instead of system libraries OFF
WITH_BUNDLED_LIBTOMMATH Bundle libtommath even when STORM_USE_BUNDLED_LIBRARIES is OFF OFF
WITH_BUNDLED_LIBTOMCRYPT Bundle libtomcrypt even when STORM_USE_BUNDLED_LIBRARIES is OFF OFF
STORM_BUILD_TESTS Compile StormLib test application OFF
STORMTEST_USE_OLD_PATHS Uses hardcoded paths for test files, OFF uses build_folder/work ON