浏览代码

HPCC-17600 SQS Plugin modifications

Signed-off-by: Michael Gardner <michael.gardner@lexisnexis.com>
Michael Gardner 8 年之前
父节点
当前提交
d20d54004b
共有 7 个文件被更改,包括 58 次插入103 次删除
  1. 3 0
      .gitmodules
  2. 1 0
      cmake_modules/commonSetup.cmake
  3. 1 1
      plugins/CMakeLists.txt
  4. 52 47
      plugins/sqs/CMakeLists.txt
  5. 1 0
      plugins/sqs/aws-sdk-cpp
  6. 0 44
      plugins/sqs/cmake_install.cmake
  7. 0 11
      plugins/sqs/sqs.pc

+ 3 - 0
.gitmodules

@@ -49,3 +49,6 @@
 [submodule "system/tbb_sm/tbb"]
     path = system/tbb_sm/tbb
     url = https://github.com/hpcc-systems/tbb.git
+[submodule "plugins/sqs/aws-sdk-cpp"]
+	path = plugins/sqs/aws-sdk-cpp
+	url = https://github.com/hpcc-systems/aws-sdk-cpp

+ 1 - 0
cmake_modules/commonSetup.cmake

@@ -146,6 +146,7 @@ IF ("${COMMONSETUP_DONE}" STREQUAL "")
     PY2EMBED
     PY3EMBED
     REDIS
+    SQS
     MYSQLEMBED
     JAVAEMBED
     SQLITE3EMBED

+ 1 - 1
plugins/CMakeLists.txt

@@ -38,4 +38,4 @@ add_subdirectory (redis)
 add_subdirectory (kafka)
 add_subdirectory (exampleplugin)
 add_subdirectory (couchbase)
-add_subdirectory(sqs)
+add_subdirectory (sqs)

+ 52 - 47
plugins/sqs/CMakeLists.txt

@@ -6,62 +6,67 @@ project(sqs)
 
 
 if(SQS)
-   ADD_PLUGIN(sqs)
-   if(MAKE_SQS)
-    # Locate the AWS SDK for C++ package.
-    # Requires that you build with:
-    # -Daws-sdk-cpp_DIR=/path/to/sdk_build
-    # or export/set:
-    # CMAKE_PREFIX_PATH=/path/to/sdk_build
-    find_package(aws-sdk-cpp)
-    if(!aws-sdk-cpp_FOUND) 
-         message(FATAL_ERROR
-          "AWS SDK not found and required that you build with: 
-		-Daws-sdk-cpp_DIR=/path/to/sdk_build 
-           or export/set:
-		CMAKE_PREFIX_PATH=/path/to/sdk_buid")
-    endif()	
+    ADD_PLUGIN(sqs)
+    set(AWS_SDK_CPP_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/aws-sdk-cpp)
+    include(ExternalProject)
+    ExternalProject_Add(
+        aws-sdk-cpp
+        SOURCE_DIR ${AWS_SDK_CPP_SOURCE_DIR}
+        BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/aws-sdk-cpp
+        BUILD_COMMAND $(MAKE) LDFLAGS=-Wl,-rpath-link,${LIB_PATH} aws-cpp-sdk-sqs
+        INSTALL_COMMAND "")
+    add_library(aws-cpp-sdk-core SHARED IMPORTED)
+    add_library(aws-cpp-sdk-sqs SHARED IMPORTED)
+    set_property(TARGET aws-cpp-sdk-core
+        PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/aws-sdk-cpp/aws-cpp-sdk-core/libaws-cpp-sdk-core.so)
+    set_property(TARGET aws-cpp-sdk-sqs
+        PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/aws-sdk-cpp/aws-cpp-sdk-sqs/libaws-cpp-sdk-sqs.so)
+    add_dependencies(aws-cpp-sdk-core aws-sdk-cpp)
+    add_dependencies(aws-cpp-sdk-sqs aws-sdk-cpp)
 
-    # Link to the SDK shared libraries.
     add_definitions(-DUSE_IMPORT_EXPORT)
-#    add_subdirectory(doc)
-    include_directories (BEFORE ${INCLUDE_DIR})
-    set(
-            SRCS
-            sqs.h
-            sqs.cpp)
 
-   include_directories(
-            ./../../system/include
-            ./../../rtl/eclrtl
-            ./../../rtl/include
-            ./../../common/deftype
-            ./../../system/jlib
-            ${PROJECT_BINARY_DIR}/include
-            ${CMAKE_BINARY_DIR} )
+    set(SRCS
+        sqs.h
+        sqs.cpp)
 
-       add_definitions(-D_USRDLL -DECL_SQS_EXPORTS)
-        HPCC_ADD_LIBRARY(sqs SHARED ${SRCS})
+    include_directories(
+        ./../../system/include
+        ./../../rtl/eclrtl
+        ./../../rtl/include
+        ./../../common/deftype
+        ./../../system/jlib
+        ${AWS_SDK_CPP_SOURCE_DIR}/aws-cpp-sdk-core/include
+        ${AWS_SDK_CPP_SOURCE_DIR}/aws-cpp-sdk-sqs/include
+        ${CMAKE_BINARY_DIR})
 
-        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(sqs PROPERTIES NO_SONAME 1)
-        endif()
+    add_definitions(-D_USRDLL -DECL_SQS_EXPORTS)
+    HPCC_ADD_LIBRARY(sqs SHARED ${SRCS})
 
-        install(
-            TARGETS sqs
-            DESTINATION plugins)
+    if(NOT APPLE)
+        set_target_properties(sqs PROPERTIES NO_SONAME 1)
+    endif()
 
+    install(
+        TARGETS sqs
+        DESTINATION plugins)
 
-        target_link_libraries(
-            sqs 
-            aws-cpp-sdk-sqs
-            eclrtl
-            jlib
-            ${ZLIB_LIBRARIES})
+    install(CODE "set(ENV{LD_LIBRARY_PATH} \"\$ENV{LD_LIBRARY_PATH}:${PROJECT_BINARY_DIR}:${PROJECT_BINARY_DIR}/aws-sdk-cpp/aws-cpp-sdk-core:${PROJECT_BINARY_DIR}/aws-sdk-cpp/aws-cpp-sdk-sqs\")")
+    install(FILES
+        ${CMAKE_CURRENT_SOURCE_DIR}/aws-sdk-cpp/LICENSE.txt
+        DESTINATION "."
+        RENAME aws-sdk-cpp-LICENSE.txt)
+    install(PROGRAMS
+        ${CMAKE_CURRENT_BINARY_DIR}/aws-sdk-cpp/aws-cpp-sdk-core/libaws-cpp-sdk-core.so
+        ${CMAKE_CURRENT_BINARY_DIR}/aws-sdk-cpp/aws-cpp-sdk-sqs/libaws-cpp-sdk-sqs.so
+        DESTINATION lib)
 
-   endif()
+    target_link_libraries(
+        sqs
+        aws-cpp-sdk-sqs
+        eclrtl
+        jlib
+        ${ZLIB_LIBRARIES})
 endif()
 
 if(PLATFORM OR CLIENTTOOLS_ONLY)

+ 1 - 0
plugins/sqs/aws-sdk-cpp

@@ -0,0 +1 @@
+Subproject commit f2f7c74390f02d2682b1fc36a7b077aab22ed37a

+ 0 - 44
plugins/sqs/cmake_install.cmake

@@ -1,44 +0,0 @@
-# Install script for directory: /hpcc/HPCC-Platform/plugins/sqs
-
-# Set the install prefix
-if(NOT DEFINED CMAKE_INSTALL_PREFIX)
-  set(CMAKE_INSTALL_PREFIX "/usr/local")
-endif()
-string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
-
-# Set the install configuration name.
-if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
-  if(BUILD_TYPE)
-    string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
-           CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
-  else()
-    set(CMAKE_INSTALL_CONFIG_NAME "")
-  endif()
-  message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
-endif()
-
-# Set the component getting installed.
-if(NOT CMAKE_INSTALL_COMPONENT)
-  if(COMPONENT)
-    message(STATUS "Install component: \"${COMPONENT}\"")
-    set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
-  else()
-    set(CMAKE_INSTALL_COMPONENT)
-  endif()
-endif()
-
-# Install shared libraries without execute permission?
-if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
-  set(CMAKE_INSTALL_SO_NO_EXE "1")
-endif()
-
-if(CMAKE_INSTALL_COMPONENT)
-  set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
-else()
-  set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
-endif()
-
-string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
-       "${CMAKE_INSTALL_MANIFEST_FILES}")
-file(WRITE "/hpcc/HPCC-Platform/plugins/sqs/${CMAKE_INSTALL_MANIFEST}"
-     "${CMAKE_INSTALL_MANIFEST_CONTENT}")

+ 0 - 11
plugins/sqs/sqs.pc

@@ -1,11 +0,0 @@
-prefix=/usr
-exec_prefix=${prefix}
-libdir=${exec_prefix}/lib
-includedir=${prefix}/include
-
-Name: SQSHPCC
-Description: This is a plugin for HPCC allowing to dialog with Amazon's SQS 
-Version: 0.0.1
-Requires:
-Libs: -L${libdir} -lssl -lcrypto -lz
-Cflags: -I${includedir}