| 1 | Projects for various integrated development environments (IDE) |
| 2 | ============================================================== |
| 3 | |
| 4 | #### Included projects |
| 5 | |
| 6 | The following projects are included with the zstd distribution: |
| 7 | - `cmake` - CMake project contributed by Artyom Dymchenko |
| 8 | - `VS2005` - Visual Studio 2005 Project (this project has been moved to the contrib directory and will no longer be supported) |
| 9 | - `VS2008` - Visual Studio 2008 project |
| 10 | - `VS2010` - Visual Studio 2010 project (which also works well with Visual Studio 2012, 2013, 2015) |
| 11 | - `VS_scripts` - command line scripts prepared for Visual Studio compilation without IDE |
| 12 | |
| 13 | |
| 14 | #### How to compile zstd with Visual Studio |
| 15 | |
| 16 | 1. Install Visual Studio e.g. VS 2015 Community Edition (it's free). |
| 17 | 2. Download the latest version of zstd from https://github.com/facebook/zstd/releases |
| 18 | 3. Decompress ZIP archive. |
| 19 | 4. Go to decompressed directory then to `projects` then `VS2010` and open `zstd.sln` |
| 20 | 5. Visual Studio will ask about converting VS2010 project to VS2015 and you should agree. |
| 21 | 6. Change `Debug` to `Release` and if you have 64-bit Windows change also `Win32` to `x64`. |
| 22 | 7. Press F7 on keyboard or select `BUILD` from the menu bar and choose `Build Solution`. |
| 23 | 8. If compilation will be fine a compiled executable will be in `projects\VS2010\bin\x64\Release\zstd.exe` |
| 24 | |
| 25 | |
| 26 | #### Projects available within zstd.sln |
| 27 | |
| 28 | The Visual Studio solution file `visual\VS2010\zstd.sln` contains many projects that will be compiled to the |
| 29 | `visual\VS2010\bin\$(Platform)_$(Configuration)` directory. For example `zstd` set to `x64` and |
| 30 | `Release` will be compiled to `visual\VS2010\bin\x64_Release\zstd.exe`. The solution file contains the |
| 31 | following projects: |
| 32 | |
| 33 | - `zstd` : Command Line Utility, supporting gzip-like arguments |
| 34 | - `datagen` : Synthetic and parametrable data generator, for tests |
| 35 | - `fullbench` : Precisely measure speed for each zstd inner functions |
| 36 | - `fuzzer` : Test tool, to check zstd integrity on target platform |
| 37 | - `libzstd` : A static ZSTD library compiled to `libzstd_static.lib` |
| 38 | - `libzstd-dll` : A dynamic ZSTD library (DLL) compiled to `libzstd.dll` with the import library `libzstd.lib` |
| 39 | - `fullbench-dll` : The fullbench program compiled with the import library; the executable requires ZSTD DLL |
| 40 | |
| 41 | |
| 42 | #### Using ZSTD DLL with Microsoft Visual C++ project |
| 43 | |
| 44 | The header file `lib\zstd.h` and the import library |
| 45 | `visual\VS2010\bin\$(Platform)_$(Configuration)\libzstd.lib` are required to compile |
| 46 | a project using Visual C++. |
| 47 | |
| 48 | 1. The path to header files should be added to `Additional Include Directories` that can |
| 49 | be found in Project Properties of Visual Studio IDE in the `C/C++` Property Pages on the `General` page. |
| 50 | 2. The import library has to be added to `Additional Dependencies` that can |
| 51 | be found in Project Properties in the `Linker` Property Pages on the `Input` page. |
| 52 | If one will provide only the name `libzstd.lib` without a full path to the library |
| 53 | then the directory has to be added to `Linker\General\Additional Library Directories`. |
| 54 | |
| 55 | The compiled executable will require ZSTD DLL which is available at |
| 56 | `visual\VS2010\bin\$(Platform)_$(Configuration)\libzstd.dll`. |