xz/windows/INSTALL-MSVC.txt

45 lines
1.5 KiB
Plaintext

Building XZ Utils with Microsoft Visual Studio
==============================================
Introduction
------------
liblzma got MSVC support in XZ Utils 5.2.0, and the xz, xzdec,
lzmadec, and lzmainfo command line tools in XZ Utils 5.6.0.
Visual Studio 2015 and later are supported.
NOTE: The *.exe files are linked against GNU getopt_long from
the "lib" directory. That code is under the GNU LGPLv2.1
and thus the matching source code must be provided when
distributing the *.exe files. The simplest way to comply with
the license requirements is to distribute the matching XZ Utils
source package alongside the *.exe files.
Building
--------
Use CMake to generate build files for MSVC. Visual Studio project
files are no longer provided (XZ Utils 5.4.x were the last versions
to include the project files).
NOTE: GCC and Clang compatible inline assembly isn't supported by
the MSVC compiler. Using clang-cl under MSVC should make inline
assembly work (untested).
Notes
-----
liblzma API headers declare the functions with __declspec(dllimport)
by default. To avoid this when using static liblzma from your code,
#define LZMA_API_STATIC before #including <lzma.h>.
MSVC gives a bunch of compiler warnings. Some warnings are specific
to 32-bit or 64-bit build and some appear for both builds. These
are known and shouldn't be a problem. Some of them will probably
be fixed in the future.