diff options
Diffstat (limited to 'externals/find-modules/Findzstd.cmake')
| -rw-r--r-- | externals/find-modules/Findzstd.cmake | 60 |
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 | ||
| 4 | find_package(PkgConfig QUIET) | 4 | find_package(PkgConfig) |
| 5 | pkg_check_modules(PC_zstd QUIET libzstd) | ||
| 6 | 5 | ||
| 7 | find_path(zstd_INCLUDE_DIR | 6 | if (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) |
| 11 | find_library(zstd_LIBRARY | 10 | endif() |
| 12 | NAMES zstd | ||
| 13 | PATHS ${PC_zstd_LIBRARY_DIRS} | ||
| 14 | ) | ||
| 15 | |||
| 16 | if(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) | ||
| 27 | endif() | 11 | endif() |
| 28 | 12 | ||
| 29 | include(FindPackageHandleStandardArgs) | 13 | include(FindPackageHandleStandardArgs) |
| 30 | find_package_handle_standard_args(zstd | 14 | find_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 | |||
| 39 | if(zstd_FOUND) | ||
| 40 | set(zstd_LIBRARIES ${zstd_LIBRARY}) | ||
| 41 | set(zstd_INCLUDE_DIRS ${zstd_INCLUDE_DIR}) | ||
| 42 | set(zstd_DEFINITIONS ${PC_zstd_CFLAGS_OTHER}) | ||
| 43 | endif() | ||
| 44 | |||
| 45 | if(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 | ) | ||
| 52 | endif() | ||
| 53 | |||
| 54 | mark_as_advanced( | ||
| 55 | zstd_INCLUDE_DIR | ||
| 56 | zstd_LIBRARY | ||
| 57 | ) | 19 | ) |