Prechádzať zdrojové kódy

HPCC-16661 Added libhiredis submodule

Signed-off-by: Michael Gardner <michael.gardner@lexisnexis.com>
Michael Gardner 8 rokov pred
rodič
commit
a7b2383f07
3 zmenil súbory, kde vykonal 61 pridanie a 28 odobranie
  1. 3 0
      .gitmodules
  2. 57 28
      plugins/redis/CMakeLists.txt
  3. 1 0
      plugins/redis/hiredis

+ 3 - 0
.gitmodules

@@ -43,3 +43,6 @@
 [submodule "libcouchbase"]
 	path = plugins/couchbase/libcouchbase
 	url = https://github.com/hpcc-systems/libcouchbase.git
+[submodule "plugins/redis/hiredis"]
+	path = plugins/redis/hiredis
+	url = https://github.com/redis/hiredis.git

+ 57 - 28
plugins/redis/CMakeLists.txt

@@ -25,40 +25,69 @@
 project(redis)
 
 if(REDIS)
-    ADD_PLUGIN(redis PACKAGES HIREDIS MINVERSION 0.13.0) #NOTE: If MINVERSION is altered then min versions in redis.hpp must also be altered.
-    if(MAKE_REDIS)
-        set(
-            SRCS
-            redis.hpp
-            redis.cpp)
+    add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/libhiredis.so.0.13
+        COMMAND make dynamic
+        COMMAND mv libhiredis.so ${PROJECT_BINARY_DIR}/libhiredis.so.0.13
+        COMMAND make clean
+        WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/hiredis
+        COMMENT Building hiredis c library)
+    add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/libhiredis.so
+        COMMAND ln -sf libhiredis.so.0.13 libhiredis.so
+        DEPENDS ${PROJECT_BINARY_DIR}/libhiredis.so.0.13
+        WORKING_DIRECTORY ${PROJECT_BINARY_DIR})
+    add_custom_target(hiredis-build ALL
+        DEPENDS ${PROJECT_BINARY_DIR}/libhiredis.so)
 
-        include_directories(
-            ./../../system/include
-            ./../../rtl/eclrtl
-            ./../../rtl/include
-            ./../../common/deftype
-            ./../../system/jlib
-            ${HIREDIS_INCLUDE_DIR})
+    install(CODE "set(ENV{LD_LIBRARY_PATH} \"\$ENV{LD_LIBRARY_PATH}:${PROJECT_BINARY_DIR}\")")
 
-        add_definitions(-D_USRDLL -DECL_REDIS_EXPORTS)
+    add_library(hiredis SHARED IMPORTED)
+    set_property(TARGET hiredis PROPERTY IMPORTED_LOCATION ${PROJECT_BINARY_DIR}/libhiredis.so)
+    add_dependencies(hiredis hiredis-build)
 
-        HPCC_ADD_LIBRARY(redis SHARED ${SRCS})
-        if(${CMAKE_VERSION} VERSION_LESS "2.8.9")
-            message(WARNING "Cannot set NO_SONAME. shlibdeps will give warnings when package is installed")
-        elseif(NOT APPLE)
-            set_target_properties(redis PROPERTIES NO_SONAME 1)
-        endif()
+    install(FILES
+        ${PROJECT_BINARY_DIR}/libhiredis.so
+        ${PROJECT_BINARY_DIR}/libhiredis.so.0.13
+        DESTINATION ${LIB_DIR}
+        PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
+        COMPONENT Runtime)
+
+    install(FILES
+        ${PROJECT_SOURCE_DIR}/hiredis/COPYING
+        DESTINATION ${LIB_DIR}
+        COMPONENT Runtime
+        RENAME libhiredis.copywrite)
+
+    set(
+        SRCS
+        redis.hpp
+        redis.cpp)
+
+    include_directories(
+        ./../../system/include
+        ./../../rtl/eclrtl
+        ./../../rtl/include
+        ./../../common/deftype
+        ./../../system/jlib
+        ./hiredis)
 
-        install(
-            TARGETS redis
-            DESTINATION plugins)
+    add_definitions(-D_USRDLL -DECL_REDIS_EXPORTS)
 
-        target_link_libraries(
-            redis
-            eclrtl
-            jlib
-            ${HIREDIS_LIBRARY})
+    HPCC_ADD_LIBRARY(redis SHARED ${SRCS})
+    if(${CMAKE_VERSION} VERSION_LESS "2.8.9")
+        message(WARNING "Cannot set NO_SONAME. shlibdeps will give warnings when package is installed")
+    elseif(NOT APPLE)
+        set_target_properties(redis PROPERTIES NO_SONAME 1)
     endif()
+
+    install(
+        TARGETS redis
+        DESTINATION plugins)
+
+    target_link_libraries(
+        redis
+        eclrtl
+        jlib
+        hiredis)
 endif()
 
 if(PLATFORM OR CLIENTTOOLS_ONLY)

+ 1 - 0
plugins/redis/hiredis

@@ -0,0 +1 @@
+Subproject commit 010756025e8cefd1bc66c6d4ed3b1648ef6f1f95