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.cmake55
1 files changed, 55 insertions, 0 deletions
diff --git a/externals/find-modules/Findzstd.cmake b/externals/find-modules/Findzstd.cmake
new file mode 100644
index 000000000..539abbafc
--- /dev/null
+++ b/externals/find-modules/Findzstd.cmake
@@ -0,0 +1,55 @@
1
2find_package(PkgConfig QUIET)
3pkg_check_modules(PC_zstd QUIET libzstd)
4
5find_path(zstd_INCLUDE_DIR
6 NAMES zstd.h
7 PATHS ${PC_zstd_INCLUDE_DIRS}
8)
9find_library(zstd_LIBRARY
10 NAMES zstd
11 PATHS ${PC_zstd_LIBRARY_DIRS}
12)
13
14if(zstd_INCLUDE_DIR)
15 file(STRINGS "${zstd_INCLUDE_DIR}/zstd.h" _zstd_version_lines
16 REGEX "#define[ \t]+ZSTD_VERSION_(MAJOR|MINOR|RELEASE)")
17 string(REGEX REPLACE ".*ZSTD_VERSION_MAJOR *\([0-9]*\).*" "\\1" _zstd_version_major "${_zstd_version_lines}")
18 string(REGEX REPLACE ".*ZSTD_VERSION_MINOR *\([0-9]*\).*" "\\1" _zstd_version_minor "${_zstd_version_lines}")
19 string(REGEX REPLACE ".*ZSTD_VERSION_RELEASE *\([0-9]*\).*" "\\1" _zstd_version_release "${_zstd_version_lines}")
20 set(zstd_VERSION "${_zstd_version_major}.${_zstd_version_minor}.${_zstd_version_release}")
21 unset(_zstd_version_major)
22 unset(_zstd_version_minor)
23 unset(_zstd_version_release)
24 unset(_zstd_version_lines)
25endif()
26
27include(FindPackageHandleStandardArgs)
28find_package_handle_standard_args(zstd
29 FOUND_VAR zstd_FOUND
30 REQUIRED_VARS
31 zstd_LIBRARY
32 zstd_INCLUDE_DIR
33 zstd_VERSION
34 VERSION_VAR zstd_VERSION
35)
36
37if(zstd_FOUND)
38 set(zstd_LIBRARIES ${zstd_LIBRARY})
39 set(zstd_INCLUDE_DIRS ${zstd_INCLUDE_DIR})
40 set(zstd_DEFINITIONS ${PC_zstd_CFLAGS_OTHER})
41endif()
42
43if(zstd_FOUND AND NOT TARGET zstd::zstd)
44 add_library(zstd::zstd UNKNOWN IMPORTED)
45 set_target_properties(zstd::zstd PROPERTIES
46 IMPORTED_LOCATION "${zstd_LIBRARY}"
47 INTERFACE_COMPILE_OPTIONS "${PC_zstd_CFLAGS_OTHER}"
48 INTERFACE_INCLUDE_DIRECTORIES "${zstd_INCLUDE_DIR}"
49 )
50endif()
51
52mark_as_advanced(
53 zstd_INCLUDE_DIR
54 zstd_LIBRARY
55)