Windows: Update windows/README-Windows.txt.

It's for binary packages built with windows/build.bash.
This commit is contained in:
Lasse Collin 2024-02-18 15:15:04 +02:00
parent 1ee716f740
commit 4b5b0d3523
1 changed files with 44 additions and 66 deletions

View File

@ -5,18 +5,24 @@ XZ Utils for Windows
Introduction Introduction
------------ ------------
This package includes command line tools (xz.exe and a few others) This package includes command line tools (xz.exe and a few
and the liblzma compression library from XZ Utils. You can find the others) and the liblzma compression library from XZ Utils.
latest version and full source code from You can find the latest version and full source code from
<https://xz.tukaani.org/xz-utils/>. <https://xz.tukaani.org/xz-utils/>.
The parts of the XZ Utils source code, that are relevant to this The parts of the XZ Utils source code, that are relevant to this
binary package, are under the BSD Zero Clause License (0BSD). binary package, are under the BSD Zero Clause License (0BSD).
XZ Utils have been built for this package with MinGW-w64 and linked XZ Utils have been built using GCC and MinGW-w64 and linked
statically against its runtime libraries. See COPYING-Windows.txt statically against the MinGW-w64 runtime libraries. See
for the copyright and license information that applies to the COPYING.MinGW-w64-runtime.txt for copyright and license
MinGW-w64 runtime. You must include it when redistributing these information that applies to the MinGW-w64 runtime.
XZ Utils binaries.
IMPORTANT: You must include COPYING.MinGW-w64-runtime.txt
when distributing these XZ Utils binaries to meet
the license terms of the MinGW-w64 runtime!
(The file COPYING mentions GNU getopt_long. It's *not* used when
XZ Utils is built with MinGW-w64. Thus GNU LGPLv2.1 doesn't apply.)
Package contents Package contents
@ -37,51 +43,43 @@ Package contents
Each of the above directories have the following files: Each of the above directories have the following files:
*.exe Command line tools. (It's useless to double-click *.exe Command line tools. (It's useless to double-click
these; use the command prompt instead.) These have these; use the command prompt instead.) These have
been linked statically against liblzma, so they been linked statically against liblzma, so they
don't require liblzma.dll. Thus, you can copy e.g. don't require liblzma.dll. Thus, you can copy e.g.
xz.exe to a directory that is in PATH without copying xz.exe to a directory that is in PATH without
any other files from this package. copying any other files from this package.
liblzma.dll Shared version of the liblzma compression library. NOTE: xzdec.exe and lzmadec.exe are optimized for
This file is mostly useful to developers, although size, single-threaded, and slower than xz.exe.
some non-developers might use it to upgrade their Use xz.exe unless program size is important.
copy of liblzma.
liblzma.a Static version of the liblzma compression library. liblzma.dll Shared version of the liblzma compression library.
This file is useful only for developers. This file is mostly useful to developers, although
some non-developers might use it to upgrade their
copy of liblzma.
The rest of the directories contain architecture-independent files: The rest of the directories contain architecture-independent files:
doc Documentation in the plain text (TXT) format. The doc Basic documentation in the plain text (TXT)
manuals of the command line tools are provided also format. COPYING.txt, COPYING.0BSD.txt, and
in the PDF format. liblzma.def is in this directory COPYING.MinGW-w64-runtime.txt contain
too. copyright and license information.
liblzma.def is in this directory too.
include C header files for liblzma. These should be doc/manuals The manuals of the command line tools in
compatible with most C and C++ compilers. If you plain text (TXT) and PDF formats.
have problems, try to fix it and send your fixes
upstream, or at least report a bug, thanks. doc/api liblzma API documentation in HTML format.
doc/examples Example programs for basic liblzma usage.
include C header files for liblzma. These should be
compatible with most C and C++ compilers.
Linking against liblzma Creating an import library for MSVC / Visual Studio
----------------------- ---------------------------------------------------
MinGW
If you use MinGW, linking against liblzma.dll or liblzma.a should
be straightforward. You don't need an import library to link
against liblzma.dll, and for static linking, you don't need to
worry about the LZMA_API_STATIC macro.
Note that the MinGW distribution includes liblzma. If you are
building packages that will be part of the MinGW distribution, you
probably should use the version of liblzma shipped in MinGW instead
of this package.
Microsoft Visual C++
To link against liblzma.dll, you need to create an import library To link against liblzma.dll, you need to create an import library
first. You need the "lib" command from MSVC and liblzma.def from first. You need the "lib" command from MSVC and liblzma.def from
@ -90,30 +88,10 @@ Microsoft Visual C++
lib /def:liblzma.def /out:liblzma.lib /machine:ix86 lib /def:liblzma.def /out:liblzma.lib /machine:ix86
On x86-64, the /machine argument has to naturally be changed: On x86-64, the /machine argument has to be changed:
lib /def:liblzma.def /out:liblzma.lib /machine:x64 lib /def:liblzma.def /out:liblzma.lib /machine:x64
If you need to link statically against liblzma, you should build
liblzma with MSVC 2013 update 2 or later. Alternatively, if having
a decompressor is enough, consider using XZ Embedded or LZMA SDK.
When you plan to link against static liblzma, you need to tell
lzma.h to not use __declspec(dllimport) by defining the macro
LZMA_API_STATIC. You can do it either in the C/C++ code
#define LZMA_API_STATIC
#include <lzma.h>
or by adding it to compiler options.
Other compilers
If you are using some other compiler, see its documentation how to
create an import library (if it is needed). If it is simple, I
might consider including the instructions here.
Reporting bugs Reporting bugs
-------------- --------------