113498266Sopenharmony_ci#***************************************************************************
213498266Sopenharmony_ci#                                  _   _ ____  _
313498266Sopenharmony_ci#  Project                     ___| | | |  _ \| |
413498266Sopenharmony_ci#                             / __| | | | |_) | |
513498266Sopenharmony_ci#                            | (__| |_| |  _ <| |___
613498266Sopenharmony_ci#                             \___|\___/|_| \_\_____|
713498266Sopenharmony_ci#
813498266Sopenharmony_ci# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
913498266Sopenharmony_ci#
1013498266Sopenharmony_ci# This software is licensed as described in the file COPYING, which
1113498266Sopenharmony_ci# you should have received as part of this distribution. The terms
1213498266Sopenharmony_ci# are also available at https://curl.se/docs/copyright.html.
1313498266Sopenharmony_ci#
1413498266Sopenharmony_ci# You may opt to use, copy, modify, merge, publish, distribute and/or sell
1513498266Sopenharmony_ci# copies of the Software, and permit persons to whom the Software is
1613498266Sopenharmony_ci# furnished to do so, under the terms of the COPYING file.
1713498266Sopenharmony_ci#
1813498266Sopenharmony_ci# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
1913498266Sopenharmony_ci# KIND, either express or implied.
2013498266Sopenharmony_ci#
2113498266Sopenharmony_ci# SPDX-License-Identifier: curl
2213498266Sopenharmony_ci#
2313498266Sopenharmony_ci###########################################################################
2413498266Sopenharmony_ci
2513498266Sopenharmony_ci#[=======================================================================[.rst:
2613498266Sopenharmony_ciFindZstd
2713498266Sopenharmony_ci----------
2813498266Sopenharmony_ci
2913498266Sopenharmony_ciFind the zstd library
3013498266Sopenharmony_ci
3113498266Sopenharmony_ciResult Variables
3213498266Sopenharmony_ci^^^^^^^^^^^^^^^^
3313498266Sopenharmony_ci
3413498266Sopenharmony_ci``Zstd_FOUND``
3513498266Sopenharmony_ci  System has zstd
3613498266Sopenharmony_ci``Zstd_INCLUDE_DIRS``
3713498266Sopenharmony_ci  The zstd include directories.
3813498266Sopenharmony_ci``Zstd_LIBRARIES``
3913498266Sopenharmony_ci  The libraries needed to use zstd
4013498266Sopenharmony_ci#]=======================================================================]
4113498266Sopenharmony_ci
4213498266Sopenharmony_ciif(UNIX)
4313498266Sopenharmony_ci  find_package(PkgConfig QUIET)
4413498266Sopenharmony_ci  pkg_search_module(PC_Zstd libzstd)
4513498266Sopenharmony_ciendif()
4613498266Sopenharmony_ci
4713498266Sopenharmony_cifind_path(Zstd_INCLUDE_DIR zstd.h
4813498266Sopenharmony_ci  HINTS
4913498266Sopenharmony_ci    ${PC_Zstd_INCLUDEDIR}
5013498266Sopenharmony_ci    ${PC_Zstd_INCLUDE_DIRS}
5113498266Sopenharmony_ci)
5213498266Sopenharmony_ci
5313498266Sopenharmony_cifind_library(Zstd_LIBRARY NAMES zstd
5413498266Sopenharmony_ci  HINTS
5513498266Sopenharmony_ci    ${PC_Zstd_LIBDIR}
5613498266Sopenharmony_ci    ${PC_Zstd_LIBRARY_DIRS}
5713498266Sopenharmony_ci)
5813498266Sopenharmony_ci
5913498266Sopenharmony_ciif(Zstd_INCLUDE_DIR)
6013498266Sopenharmony_ci  file(READ "${Zstd_INCLUDE_DIR}/zstd.h" _zstd_header)
6113498266Sopenharmony_ci  string(REGEX MATCH ".*define ZSTD_VERSION_MAJOR *([0-9]+).*define ZSTD_VERSION_MINOR *([0-9]+).*define ZSTD_VERSION_RELEASE *([0-9]+)" _zstd_ver "${_zstd_header}")
6213498266Sopenharmony_ci  set(Zstd_VERSION "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.${CMAKE_MATCH_3}")
6313498266Sopenharmony_ciendif()
6413498266Sopenharmony_ci
6513498266Sopenharmony_ciinclude(FindPackageHandleStandardArgs)
6613498266Sopenharmony_cifind_package_handle_standard_args(Zstd
6713498266Sopenharmony_ci  REQUIRED_VARS
6813498266Sopenharmony_ci    Zstd_LIBRARY
6913498266Sopenharmony_ci    Zstd_INCLUDE_DIR
7013498266Sopenharmony_ci  VERSION_VAR Zstd_VERSION
7113498266Sopenharmony_ci)
7213498266Sopenharmony_ci
7313498266Sopenharmony_ciif(Zstd_FOUND)
7413498266Sopenharmony_ci  set(Zstd_LIBRARIES    ${Zstd_LIBRARY})
7513498266Sopenharmony_ci  set(Zstd_INCLUDE_DIRS ${Zstd_INCLUDE_DIR})
7613498266Sopenharmony_ciendif()
7713498266Sopenharmony_ci
7813498266Sopenharmony_cimark_as_advanced(Zstd_INCLUDE_DIRS Zstd_LIBRARIES)
79