summaryrefslogtreecommitdiff
path: root/externals/find-modules/Findzstd.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'externals/find-modules/Findzstd.cmake')
-rw-r--r--externals/find-modules/Findzstd.cmake60
1 files changed, 11 insertions, 49 deletions
diff --git a/externals/find-modules/Findzstd.cmake b/externals/find-modules/Findzstd.cmake
index f0c56f499..f4031eb70 100644
--- a/externals/find-modules/Findzstd.cmake
+++ b/externals/find-modules/Findzstd.cmake
@@ -1,57 +1,19 @@
1# SPDX-FileCopyrightText: 2020 yuzu Emulator Project 1# SPDX-FileCopyrightText: 2022 yuzu Emulator Project
2# SPDX-License-Identifier: GPL-2.0-or-later 2# SPDX-License-Identifier: GPL-2.0-or-later
3 3
4find_package(PkgConfig QUIET) 4find_package(PkgConfig)
5pkg_check_modules(PC_zstd QUIET libzstd)
6 5
7find_path(zstd_INCLUDE_DIR 6if (PKG_CONFIG_FOUND)
8 NAMES zstd.h 7 pkg_search_module(libzstd IMPORTED_TARGET GLOBAL libzstd)
9 PATHS ${PC_zstd_INCLUDE_DIRS} 8 if (libzstd_FOUND)
10) 9 add_library(zstd::zstd ALIAS PkgConfig::libzstd)
11find_library(zstd_LIBRARY 10 endif()
12 NAMES zstd
13 PATHS ${PC_zstd_LIBRARY_DIRS}
14)
15
16if(zstd_INCLUDE_DIR)
17 file(STRINGS "${zstd_INCLUDE_DIR}/zstd.h" _zstd_version_lines
18 REGEX "#define[ \t]+ZSTD_VERSION_(MAJOR|MINOR|RELEASE)")
19 string(REGEX REPLACE ".*ZSTD_VERSION_MAJOR *\([0-9]*\).*" "\\1" _zstd_version_major "${_zstd_version_lines}")
20 string(REGEX REPLACE ".*ZSTD_VERSION_MINOR *\([0-9]*\).*" "\\1" _zstd_version_minor "${_zstd_version_lines}")
21 string(REGEX REPLACE ".*ZSTD_VERSION_RELEASE *\([0-9]*\).*" "\\1" _zstd_version_release "${_zstd_version_lines}")
22 set(zstd_VERSION "${_zstd_version_major}.${_zstd_version_minor}.${_zstd_version_release}")
23 unset(_zstd_version_major)
24 unset(_zstd_version_minor)
25 unset(_zstd_version_release)
26 unset(_zstd_version_lines)
27endif() 11endif()
28 12
29include(FindPackageHandleStandardArgs) 13include(FindPackageHandleStandardArgs)
30find_package_handle_standard_args(zstd 14find_package_handle_standard_args(zstd
31 FOUND_VAR zstd_FOUND 15 REQUIRED_VARS
32 REQUIRED_VARS 16 libzstd_LINK_LIBRARIES
33 zstd_LIBRARY 17 libzstd_FOUND
34 zstd_INCLUDE_DIR 18 VERSION_VAR libzstd_VERSION
35 zstd_VERSION
36 VERSION_VAR zstd_VERSION
37)
38
39if(zstd_FOUND)
40 set(zstd_LIBRARIES ${zstd_LIBRARY})
41 set(zstd_INCLUDE_DIRS ${zstd_INCLUDE_DIR})
42 set(zstd_DEFINITIONS ${PC_zstd_CFLAGS_OTHER})
43endif()
44
45if(zstd_FOUND AND NOT TARGET zstd::zstd)
46 add_library(zstd::zstd UNKNOWN IMPORTED)
47 set_target_properties(zstd::zstd PROPERTIES
48 IMPORTED_LOCATION "${zstd_LIBRARY}"
49 INTERFACE_COMPILE_OPTIONS "${PC_zstd_CFLAGS_OTHER}"
50 INTERFACE_INCLUDE_DIRECTORIES "${zstd_INCLUDE_DIR}"
51 )
52endif()
53
54mark_as_advanced(
55 zstd_INCLUDE_DIR
56 zstd_LIBRARY
57) 19)