mirror of
https://github.com/facebook/zstd.git
synced 2025-03-07 09:26:03 +02:00
Automatically extract version information from the zstd.h file. Use naming of variables consisent with modern cmake and https://semver.org/ (Semantic Versioning 2.0.0, MAJOR, MINOR, PATCH) Modern versions of cmake provide consistent paradigms for configuring project external interface values. This set of changes provide a back port of some of cmake 3+ paradigms back to cmake 2.8.9. Set and allow use of the current cmake policies for newer versions of cmake when available to allow for modern compiler features to be utilized when available. NOTE: The intent is that future modifications to cmake will enable (conditional on cmake version support) the ability to support modern linkage, and target export mechanisms. Those future changes will make incorporating zstd into other packages much easier. This patch also allows the more rigourous error checking of commmon cmake errors to be preformed by cmake (i.e. more stringent syntax checking and create errors for common hard to find misuses of cmake variables). This patch also provides support for modern compiler support options by cmake (like enabling interprocedural optimization if link time optimizations are known to be supported by the compiler envirionment. IPO can be supported by setting the CMAKE_INTERPROCEDURAL_OPTIMIZATION variable for newer versions of cmake.
Projects for various integrated development environments (IDE)
Included projects
The following projects are included with the zstd distribution:
cmake
- CMake project contributed by Artyom DymchenkoVS2005
- Visual Studio 2005 Project (this project has been moved to the contrib directory and will no longer be supported)VS2008
- Visual Studio 2008 projectVS2010
- Visual Studio 2010 project (which also works well with Visual Studio 2012, 2013, 2015)VS_scripts
- command line scripts prepared for Visual Studio compilation without IDE
How to compile zstd with Visual Studio
- Install Visual Studio e.g. VS 2015 Community Edition (it's free).
- Download the latest version of zstd from https://github.com/facebook/zstd/releases
- Decompress ZIP archive.
- Go to decompressed directory then to
projects
thenVS2010
and openzstd.sln
- Visual Studio will ask about converting VS2010 project to VS2015 and you should agree.
- Change
Debug
toRelease
and if you have 64-bit Windows change alsoWin32
tox64
. - Press F7 on keyboard or select
BUILD
from the menu bar and chooseBuild Solution
. - If compilation will be fine a compiled executable will be in
projects\VS2010\bin\x64\Release\zstd.exe
Projects available within zstd.sln
The Visual Studio solution file visual\VS2010\zstd.sln
contains many projects that will be compiled to the
visual\VS2010\bin\$(Platform)_$(Configuration)
directory. For example zstd
set to x64
and
Release
will be compiled to visual\VS2010\bin\x64_Release\zstd.exe
. The solution file contains the
following projects:
zstd
: Command Line Utility, supporting gzip-like argumentsdatagen
: Synthetic and parametrable data generator, for testsfullbench
: Precisely measure speed for each zstd inner functionsfuzzer
: Test tool, to check zstd integrity on target platformlibzstd
: A static ZSTD library compiled tolibzstd_static.lib
libzstd-dll
: A dynamic ZSTD library (DLL) compiled tolibzstd.dll
with the import librarylibzstd.lib
fullbench-dll
: The fullbench program compiled with the import library; the executable requires ZSTD DLL
Using ZSTD DLL with Microsoft Visual C++ project
The header file lib\zstd.h
and the import library
visual\VS2010\bin\$(Platform)_$(Configuration)\libzstd.lib
are required to compile
a project using Visual C++.
- The path to header files should be added to
Additional Include Directories
that can be found in Project Properties of Visual Studio IDE in theC/C++
Property Pages on theGeneral
page. - The import library has to be added to
Additional Dependencies
that can be found in Project Properties in theLinker
Property Pages on theInput
page. If one will provide only the namelibzstd.lib
without a full path to the library then the directory has to be added toLinker\General\Additional Library Directories
.
The compiled executable will require ZSTD DLL which is available at
visual\VS2010\bin\$(Platform)_$(Configuration)\libzstd.dll
.