mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-16 00:12:51 +00:00
90 lines
2.4 KiB
CMake
90 lines
2.4 KiB
CMake
|
#[=======================================================================[.rst:
|
||
|
FindZSTD
|
||
|
-------
|
||
|
|
||
|
Finds the ZSTD library.
|
||
|
|
||
|
Result Variables
|
||
|
^^^^^^^^^^^^^^^^
|
||
|
|
||
|
This will define the following variables:
|
||
|
|
||
|
``ZSTD_FOUND``
|
||
|
True if the system has the ZSTD library.
|
||
|
``ZSTD_INCLUDE_DIRS``
|
||
|
Include directories needed to use ZSTD.
|
||
|
``ZSTD_LIBRARIES``
|
||
|
Libraries needed to link to ZSTD.
|
||
|
``ZSTD_VERSION``
|
||
|
The version of the ZSTD library which was found.
|
||
|
|
||
|
Cache Variables
|
||
|
^^^^^^^^^^^^^^^
|
||
|
|
||
|
The following cache variables may also be set:
|
||
|
|
||
|
``ZSTD_INCLUDE_DIR``
|
||
|
The directory containing ``zstd.h``.
|
||
|
``ZSTD_LIBRARY``
|
||
|
The path to the ZSTD library.
|
||
|
|
||
|
#]=======================================================================]
|
||
|
|
||
|
find_package(PkgConfig QUIET)
|
||
|
pkg_check_modules(PC_ZSTD QUIET libzstd)
|
||
|
|
||
|
find_path(ZSTD_INCLUDE_DIR
|
||
|
NAMES zstd.h
|
||
|
PATHS ${PC_ZSTD_INCLUDE_DIRS}
|
||
|
)
|
||
|
|
||
|
find_library(ZSTD_LIBRARY
|
||
|
NAMES zstd
|
||
|
PATHS ${PC_ZSTD_LIBRARY_DIRS}
|
||
|
)
|
||
|
|
||
|
# With vcpkg, the library path should contain both 'debug' and 'optimized'
|
||
|
# entries (see target_link_libraries() documentation for more information)
|
||
|
#
|
||
|
# NOTE: we only patch up when using vcpkg; the same issue might happen
|
||
|
# when not using vcpkg, but this is non-trivial to fix, as we have no idea
|
||
|
# what the paths are. With vcpkg we do. And we only official support vcpkg
|
||
|
# with Windows.
|
||
|
#
|
||
|
# NOTE: this is based on the assumption that the debug file has the same
|
||
|
# name as the optimized file. This is not always the case, but so far
|
||
|
# experiences has shown that in those case vcpkg CMake files do the right
|
||
|
# thing.
|
||
|
if(VCPKG_TOOLCHAIN AND ZSTD_LIBRARY)
|
||
|
if(ZSTD_LIBRARY MATCHES "/debug/")
|
||
|
set(ZSTD_LIBRARY_DEBUG ${ZSTD_LIBRARY})
|
||
|
string(REPLACE "/debug/lib/" "/lib/" ZSTD_LIBRARY_RELEASE ${ZSTD_LIBRARY})
|
||
|
else()
|
||
|
set(ZSTD_LIBRARY_RELEASE ${ZSTD_LIBRARY})
|
||
|
string(REPLACE "/lib/" "/debug/lib/" ZSTD_LIBRARY_DEBUG ${ZSTD_LIBRARY})
|
||
|
endif()
|
||
|
include(SelectLibraryConfigurations)
|
||
|
select_library_configurations(ZSTD)
|
||
|
endif()
|
||
|
|
||
|
set(ZSTD_VERSION ${PC_ZSTD_VERSION})
|
||
|
|
||
|
include(FindPackageHandleStandardArgs)
|
||
|
find_package_handle_standard_args(ZSTD
|
||
|
FOUND_VAR ZSTD_FOUND
|
||
|
REQUIRED_VARS
|
||
|
ZSTD_LIBRARY
|
||
|
ZSTD_INCLUDE_DIR
|
||
|
VERSION_VAR ZSTD_VERSION
|
||
|
)
|
||
|
|
||
|
if(ZSTD_FOUND)
|
||
|
set(ZSTD_LIBRARIES ${ZSTD_LIBRARY})
|
||
|
set(ZSTD_INCLUDE_DIRS ${ZSTD_INCLUDE_DIR})
|
||
|
endif()
|
||
|
|
||
|
mark_as_advanced(
|
||
|
ZSTD_INCLUDE_DIR
|
||
|
ZSTD_LIBRARY
|
||
|
)
|