Commit Graph

26 Commits

Author SHA1 Message Date
0x123456789A
26ffc18634
Introduce ZSTD_PROGRAMS_LINK_SHARED
The CMake variable ZSTD_PROGRAMS_LINK_SHARED indicactes wether or not to link the zstd programs dynamically or statically.
2019-10-29 14:31:02 +01:00
Hans Johnson
62c0dd7aff ENH: Simplify conditional logic
Based on excellent comment in #1489, the logic
to set cmake policies was simplified.  This will
provide an easier mechanism for maintaining the
conditional logic across many versions of cmake.
2019-01-08 14:25:56 -06:00
Erik Webb
9448a3790d Check CMake minor version support for VERSION_LESS_EQUAL
VERSION_LESS_EQUAL is only available to CMake 3.7+. This adds additional
logic to check that CMAKE_MINOR_VERSION is at least 7.

Fixes #1489
2019-01-03 15:26:20 -05:00
Hans Johnson
97d1de3d22 Provide forward compatible cmake paradigms
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.
2018-12-28 13:47:35 -06:00
Yann Collet
23c73fe3e2
Merge pull request #1474 from hjmjohnson/cmake-set-default-build-type
Cmake set default build type
2018-12-28 11:02:22 -08:00
Hans Johnson
77ef7847f7 Improve setting the default build type
The CMAKE_BUILD_TYPE variable is a CACHE variable
and should be set in a way that persists and is
documented in the CACHE.  Also set the default
values for the gui to ease selection of types.

These changes provide better support for GUI
configurators that support cmake.
2018-12-26 13:23:21 -06:00
Hans Johnson
304df8b883 ENH: Update to -DZSTD_LEGACY_SUPPORT=5 2018-12-26 13:18:39 -06:00
Hans Johnson
d3fc848ddd STYLE: Remove CMake-language block-end command arguments
Ancient versions of CMake required else(), endif(), and similar block
termination commands to have arguments matching the command starting the block.
This is no longer the preferred style.
2018-12-22 19:32:39 -06:00
Hans Johnson
2f1ff84119 STYLE: Convert CMake-language commands to lower case
Ancient CMake versions required upper-case commands.  Later command names
became case-insensitive.  Now the preferred style is lower-case.
2018-12-22 19:32:39 -06:00
Antoine Pitrou
2186fbcf67 Allow creating debug builds with CMake
Only set the build type to Release if the user didn't select any.
See discussion in https://github.com/facebook/zstd/pull/1278#issuecomment-436327923
and below.
2018-11-06 21:24:29 +01:00
Eden Zik
a6df961497 Cmake now builds with CMAKE_BUILD_TYPE=Release by default, both while
being invoked from the main Makefile (via cmakebuild) or directly from
the build/cmake directory. Suggested by @pdknsk (#1081).
2018-08-13 20:28:52 -04:00
Alexey Ivanov
22303da601 CMake: fixed multithreading build on Windows
`ZSTD_MULTITHREAD_SUPPORT` option fixed for Windows.

Signed-off-by: Alexey Ivanov <alexey.ivanes@gmail.com>
2018-01-17 10:27:52 +03:00
Alexey Ivanov
403e2db139 CMake: use GNUInstallDirs for library install dir
Libraries now will be installed in the correct directory on x86_64 linux systems,
and can be changed with `-DCMAKE_INSTALL_LIBDIR=<dirname>` option.
2018-01-15 22:48:46 +03:00
Yann Collet
e9dc204f42 fixed a bunch of headers after license change (#825) 2017-08-31 11:24:54 -07:00
codicodi
e87cad1053 CMake improvements 2017-05-24 10:56:35 +02:00
Michael Maltese
7f1fb95566 CMake: namespace modules and set CMAKE_MODULE_PATH 2017-04-20 19:30:37 -07:00
Michael Maltese
1a96bec8db CMake: Set ZSTD_SOURCE_DIR from CMAKE_CURRENT_SOURCE_DIR
Instead of CMAKE_SOURCE_DIR, which is not correct when embedding Zstd
within a larger project.
2017-04-20 15:56:53 -07:00
Milan Ševčík
522df42e10 Add lzma and zlib support to cmake build system
cmake 2.8.9 needed for FindLibLZMA
2017-04-19 21:34:17 +02:00
Milan Ševčík
5b3a9cbed2 Remove multithreading support by default on non UNIX platforms 2017-03-21 13:00:05 +01:00
Milan Ševčík
01d7ea27e9 Added options for building programs, static library and tests 2017-03-21 11:11:53 +01:00
Milan Ševčík
f0076adccb Add_extra_compilation_flags macro needs to run before adding sources
Also adding comments in the top-level CMakeLists.txt
2017-03-21 11:11:53 +01:00
Milan Ševčík
8013c86c7d Improve resolving ROOT_DIR 2017-03-21 10:38:46 +01:00
Sean Purcell
120df494e9 Update builds to not support legacy v01-v03 2017-03-13 14:44:08 -07:00
Milan Ševčík
bf8a30ce0d Add zstdmt target in cmake 2017-02-28 10:57:09 +01:00
Milan Ševčík
59709d97d9 Support building contrib utils from cmake 2017-02-28 10:57:09 +01:00
Yann Collet
4c9a4c18a9 changed projects to build 2016-09-19 14:58:14 +02:00