libzip uses cmake to build.
For running the tests, you need to have perl.
You'll need zlib (at least version 1.1.2). It comes with most operating systems.
For supporting bzip2-compressed zip archives, you need bzip2.
For supporting lzma- and xz-compressed zip archives, you need liblzma which is part of xz, at least version 5.2.
For supporting zstd-compressed zip archives, you need zstd.
For AES (encryption) support, you need one of these cryptographic libraries, listed in order of preference:
If you don't want a library even if it is installed, you can pass -DENABLE_<LIBRARY>=OFF
to cmake, where <LIBRARY>
is one of COMMONCRYPTO
, GNUTLS
, MBEDTLS
, or OPENSSL
.
The basic usage is
mkdir build cd build cmake .. make make test make install
Some useful parameters you can pass to cmake
with -Dparameter=value
:
BUILD_SHARED_LIBS
: set to ON
or OFF
to enable/disable building of shared libraries, defaults to ON
CMAKE_INSTALL_PREFIX
: for setting the installation pathDOCUMENTATION_FORMAT
: choose one of man
, mdoc
, and html
for the installed documentation (default: decided by cmake depending on available tools)LIBZIP_DO_INSTALL
: If you include libzip as a subproject, link it statically and do not want to let it install its files, set this variable to OFF
. Defaults to ON
.If you want to compile with custom CFLAGS
, set them in the environment before running cmake
:
CFLAGS=-DMY_CUSTOM_FLAG cmake ..
If you are compiling on a system with a small stack size, add -DZIP_ALLOCATE_BUFFER
to CFLAGS
.
If you are building on a 32-bit Linux system it might be necessary to define _FILE_OFFSET_BITS
to 64
. Your distro will need to provide a fts.h
file that is new enough to support this, or the build will break in zipcmp
.
You can get verbose build output with by passing VERBOSE=1
to make
.
You can also check the cmake FAQ.