summaryrefslogtreecommitdiffstats
path: root/cmake/modules/FindLZ4.cmake
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--cmake/modules/FindLZ4.cmake43
1 files changed, 43 insertions, 0 deletions
diff --git a/cmake/modules/FindLZ4.cmake b/cmake/modules/FindLZ4.cmake
new file mode 100644
index 00000000..6c94f66c
--- /dev/null
+++ b/cmake/modules/FindLZ4.cmake
@@ -0,0 +1,43 @@
+# Try to find liblz4
+#
+# Once done, this will define
+#
+# LZ4_FOUND
+# LZ4_INCLUDE_DIR
+# LZ4_LIBRARY
+# LZ4_VERSION_STRING
+# LZ4_VERSION_MAJOR
+# LZ4_VERSION_MINOR
+# LZ4_VERSION_RELEASE
+
+find_path(LZ4_INCLUDE_DIR NAMES lz4.h)
+
+if(LZ4_INCLUDE_DIR AND EXISTS "${LZ4_INCLUDE_DIR}/lz4.h")
+ foreach(ver "MAJOR" "MINOR" "RELEASE")
+ file(STRINGS "${LZ4_INCLUDE_DIR}/lz4.h" LZ4_VER_${ver}_LINE
+ REGEX "^#define[ \t]+LZ4_VERSION_${ver}[ \t]+[0-9]+[ \t]+.*$")
+ string(REGEX REPLACE "^#define[ \t]+LZ4_VERSION_${ver}[ \t]+([0-9]+)[ \t]+.*$"
+ "\\1" LZ4_VERSION_${ver} "${LZ4_VER_${ver}_LINE}")
+ unset(${LZ4_VER_${ver}_LINE})
+ endforeach()
+ set(LZ4_VERSION_STRING
+ "${LZ4_VERSION_MAJOR}.${LZ4_VERSION_MINOR}.${LZ4_VERSION_RELEASE}")
+endif()
+
+find_library(LZ4_LIBRARY NAMES lz4)
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(LZ4
+ REQUIRED_VARS LZ4_LIBRARY LZ4_INCLUDE_DIR
+ VERSION_VAR LZ4_VERSION_STRING)
+
+mark_as_advanced(LZ4_INCLUDE_DIR LZ4_LIBRARY)
+
+if(LZ4_FOUND AND NOT (TARGET LZ4::LZ4))
+ add_library(LZ4::LZ4 UNKNOWN IMPORTED)
+ set_target_properties(LZ4::LZ4 PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${LZ4_INCLUDE_DIR}"
+ IMPORTED_LINK_INTERFACE_LANGUAGES "C"
+ IMPORTED_LOCATION "${LZ4_LIBRARY}"
+ VERSION "${LZ4_VERSION_STRING}")
+endif()