From 2dc0c7e4a3fa7ecc92ee5e22f1d8ee48c2b333a8 Mon Sep 17 00:00:00 2001 From: Thomas Lee Date: Sun, 4 Nov 2018 22:59:09 +0000 Subject: [PATCH] CMake configuration for hiredis Last-Update: 2018-09-26 Upstream-Status: Backport [Ubuntu 20.04] --- HiredisConfig.cmake.in | 5 +++++ HiredisConfigVersion.cmake.in | 22 ++++++++++++++++++++++ Makefile | 17 ++++++++++++++++- 3 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 HiredisConfig.cmake.in create mode 100644 HiredisConfigVersion.cmake.in diff --git a/HiredisConfig.cmake.in b/HiredisConfig.cmake.in new file mode 100644 index 0000000..2cce290 --- /dev/null +++ b/HiredisConfig.cmake.in @@ -0,0 +1,5 @@ +find_path(HIREDIS_INCLUDE_DIRS hiredis/hiredis.h HINTS "/usr/include") +find_library(HIREDIS_LIB_HIREDIS NAMES hiredis HINTS "/usr/lib") + +set(HIREDIS_LIBRARIES ${HIREDIS_LIB_HIREDIS}) + diff --git a/HiredisConfigVersion.cmake.in b/HiredisConfigVersion.cmake.in new file mode 100644 index 0000000..584144a --- /dev/null +++ b/HiredisConfigVersion.cmake.in @@ -0,0 +1,22 @@ +set(PACKAGE_VERSION "@HIREDIS_VERSION@") + +string(REPLACE "." ";" HIREDIS_VERSION_COMPONENTS ${PACKAGE_VERSION}) +string(REPLACE "." ";" REQUESTED_VERSION_COMPONENTS ${PACKAGE_FIND_VERSION}) + +list(GET HIREDIS_VERSION_COMPONENTS 0 HIREDIS_VERSION_MAJOR) +list(GET HIREDIS_VERSION_COMPONENTS 1 HIREDIS_VERSION_MINOR) + +list(GET REQUESTED_VERSION_COMPONENTS 0 REQUESTED_VERSION_MAJOR) +list(GET REQUESTED_VERSION_COMPONENTS 1 REQUESTED_VERSION_MINOR) + +if(("${HIREDIS_VERSION_MAJOR}" EQUAL "${REQUESTED_VERSION_MAJOR}") AND + (("${HIREDIS_VERSION_MINOR}" EQUAL "${REQUESTED_VERSION_MINOR}") OR + ("${HIREDIS_VERSION_MINOR}" GREATER "${REQUESTED_VERSION_MINOR}"))) + set(PACKAGE_VERSION_COMPATIBLE TRUE) + if("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}") + set(PACKAGE_VERSION_EXACT TRUE) + endif() +else() + set(PACKAGE_VERSION_COMPATIBLE FALSE) +endif() + diff --git a/Makefile b/Makefile index 339727f..43704cd 100644 --- a/Makefile +++ b/Makefile @@ -8,6 +8,8 @@ EXAMPLES=hiredis-example hiredis-example-libevent hiredis-example-libev hiredis- TESTS=hiredis-test LIBNAME=libhiredis PKGCONFNAME=hiredis.pc +CMAKECONFNAME=HiredisConfig.cmake +CMAKEVERSNAME=HiredisConfigVersion.cmake HIREDIS_MAJOR=$(shell grep HIREDIS_MAJOR hiredis.h | awk '{print $$3}') HIREDIS_MINOR=$(shell grep HIREDIS_MINOR hiredis.h | awk '{print $$3}') @@ -19,9 +21,11 @@ PREFIX?=/usr/local INCLUDE_PATH?=include/hiredis LIBRARY_PATH?=lib PKGCONF_PATH?=pkgconfig +CMAKE_PATH?=cmake/Hiredis INSTALL_INCLUDE_PATH= $(DESTDIR)$(PREFIX)/$(INCLUDE_PATH) INSTALL_LIBRARY_PATH= $(DESTDIR)$(PREFIX)/$(LIBRARY_PATH) INSTALL_PKGCONF_PATH= $(INSTALL_LIBRARY_PATH)/$(PKGCONF_PATH) +INSTALL_CMAKE_PATH= $(INSTALL_LIBRARY_PATH)/$(CMAKE_PATH) # redis-server configuration used for testing REDIS_PORT=56379 @@ -150,6 +154,7 @@ check: hiredis-test clean: rm -rf $(DYLIBNAME) $(STLIBNAME) $(TESTS) $(PKGCONFNAME) examples/hiredis-example* *.o *.gcda *.gcno *.gcov + rm -f $(CMAKECONFNAME) $(CMAKEVERSNAME) dep: $(CC) -MM *.c @@ -169,7 +174,14 @@ $(PKGCONFNAME): hiredis.h @echo Libs: -L\$${libdir} -lhiredis >> $@ @echo Cflags: -I\$${includedir} -D_FILE_OFFSET_BITS=64 >> $@ -install: $(DYLIBNAME) $(STLIBNAME) $(PKGCONFNAME) +$(CMAKECONFNAME): $(CMAKECONFNAME).in + cp $(CMAKECONFNAME).in $(CMAKECONFNAME) + +$(CMAKEVERSNAME): $(CMAKEVERSNAME).in + sed -e "s,@HIREDIS_VERSION@,$(HIREDIS_MAJOR).$(HIREDIS_MINOR).$(HIREDIS_PATCH),g" \ + $(CMAKEVERSNAME).in >$(CMAKEVERSNAME) + +install: $(DYLIBNAME) $(STLIBNAME) $(PKGCONFNAME) $(CMAKECONFNAME) $(CMAKEVERSNAME) mkdir -p $(INSTALL_INCLUDE_PATH) $(INSTALL_INCLUDE_PATH)/adapters $(INSTALL_LIBRARY_PATH) $(INSTALL) hiredis.h async.h read.h sds.h $(INSTALL_INCLUDE_PATH) $(INSTALL) adapters/*.h $(INSTALL_INCLUDE_PATH)/adapters @@ -178,6 +190,9 @@ install: $(DYLIBNAME) $(STLIBNAME) $(PKGCONFNAME) $(INSTALL) $(STLIBNAME) $(INSTALL_LIBRARY_PATH) mkdir -p $(INSTALL_PKGCONF_PATH) $(INSTALL) $(PKGCONFNAME) $(INSTALL_PKGCONF_PATH) + mkdir -p $(INSTALL_CMAKE_PATH) + $(INSTALL) $(CMAKECONFNAME) $(INSTALL_CMAKE_PATH) + $(INSTALL) $(CMAKEVERSNAME) $(INSTALL_CMAKE_PATH) 32bit: @echo "" -- 2.27.0