Browse Source

HPCC-23632 Move the AWS support libraries

Signed-off-by: Gavin Halliday <gavin.halliday@lexisnexis.com>
Gavin Halliday 5 years ago
parent
commit
53b580989a

+ 1 - 1
.gitmodules

@@ -32,7 +32,7 @@
     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
+	path = system/aws/aws-sdk-cpp
 	url = https://github.com/hpcc-systems/aws-sdk-cpp
 [submodule "configuration/configmgr/RapidJSON"]
         path = configuration/configmgr/RapidJSON

+ 1 - 0
cmake_modules/commonSetup.cmake

@@ -82,6 +82,7 @@ IF ("${COMMONSETUP_DONE}" STREQUAL "")
   else()
     option(USE_NUMA "Configure use of numa" ON)
   endif()
+  option(USE_AWS "Configure use of aws" ON)
 
   IF (WIN32)
      option(USE_NATIVE_LIBRARIES "Search standard OS locations (otherwise in EXTERNALS_DIRECTORY) for 3rd party libraries" OFF)

+ 2 - 32
plugins/sqs/CMakeLists.txt

@@ -4,29 +4,9 @@ cmake_minimum_required(VERSION 2.8)
 # "my-example" is just an example value.
 project(sqs)
 
-
-if(SQS)
+if(SQS AND USE_AWS)
     ADD_PLUGIN(sqs)
-    set(AWS_SDK_CPP_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/aws-sdk-cpp)
-    if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0.0)
-      set(EXTERNAL_SQS_CXX_FLAGS "-Wno-error=implicit-fallthrough -Wno-error=int-in-bool-context -Wno-error=format-nonliteral" )
-    endif()
-    include(ExternalProject)
-    ExternalProject_Add(
-        aws-sdk-cpp
-        SOURCE_DIR ${AWS_SDK_CPP_SOURCE_DIR}
-        BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/aws-sdk-cpp
-        CMAKE_ARGS -DCUSTOM_MEMORY_MANAGEMENT:string=0 -DCMAKE_CXX_FLAGS=${EXTERNAL_SQS_CXX_FLAGS}
-        BUILD_COMMAND ${CMAKE_MAKE_PROGRAM} 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)
+    set(AWS_SDK_CPP_SOURCE_DIR ${HPCC_SOURCE_DIR}/system/aws/aws-sdk-cpp)
 
     add_definitions(-DUSE_IMPORT_EXPORT)
 
@@ -55,16 +35,6 @@ if(SQS)
         TARGETS sqs
         DESTINATION plugins)
 
-    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)
-
     target_link_libraries(
         sqs
         aws-cpp-sdk-sqs

+ 1 - 0
system/CMakeLists.txt

@@ -18,6 +18,7 @@ HPCC_ADD_SUBDIRECTORY (include)
 HPCC_ADD_SUBDIRECTORY (jhtree)
 HPCC_ADD_SUBDIRECTORY (yaml)
 HPCC_ADD_SUBDIRECTORY (jlib)
+HPCC_ADD_SUBDIRECTORY (aws)
 
 if (NOT JLIB_ONLY)
    HPCC_ADD_SUBDIRECTORY (hrpc)

+ 39 - 0
system/aws/CMakeLists.txt

@@ -0,0 +1,39 @@
+if(USE_AWS)
+    # minimal CMakeLists.txt for the AWS SDK for C++
+    cmake_minimum_required(VERSION 2.8)
+
+    project(aws)
+    set(AWS_SDK_CPP_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/aws-sdk-cpp)
+    if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0.0)
+      set(EXTERNAL_SQS_CXX_FLAGS "-Wno-error=implicit-fallthrough -Wno-error=int-in-bool-context -Wno-error=format-nonliteral" )
+    endif()
+
+    include(ExternalProject)
+    ExternalProject_Add(
+        aws-sdk-cpp
+        SOURCE_DIR ${AWS_SDK_CPP_SOURCE_DIR}
+        BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/aws-sdk-cpp
+        CMAKE_ARGS -DCUSTOM_MEMORY_MANAGEMENT:string=0 -DCMAKE_CXX_FLAGS=${EXTERNAL_SQS_CXX_FLAGS}
+        BUILD_COMMAND ${CMAKE_MAKE_PROGRAM} LDFLAGS=-Wl,-rpath-link,${LIB_PATH} aws-cpp-sdk-sqs
+        INSTALL_COMMAND "")
+
+    add_library(aws-cpp-sdk-core SHARED IMPORTED GLOBAL)
+    add_library(aws-cpp-sdk-sqs SHARED IMPORTED GLOBAL)
+    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)
+
+    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()

plugins/sqs/aws-sdk-cpp → system/aws/aws-sdk-cpp