CMakeLists.txt 4.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. if(USE_AWS)
  2. # minimal CMakeLists.txt for the AWS SDK for C++
  3. cmake_minimum_required(VERSION 2.8)
  4. project(aws)
  5. set(AWS_SDK_CPP_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/aws-sdk-cpp)
  6. if (CMAKE_COMPILER_IS_GNUCXX AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0.0)
  7. set(EXTERNAL_SQS_CXX_FLAGS "-Wno-error=implicit-fallthrough -Wno-error=int-in-bool-context -Wno-error=format-nonliteral -Wno-error=maybe-uninitialized" )
  8. endif()
  9. include(ProcessorCount)
  10. ProcessorCount(N)
  11. if(NOT N EQUAL 0 AND CMAKE_MAKE_PROGRAM STREQUAL "/usr/bin/make")
  12. set(AWS_BUILD_FLAGS -j${N})
  13. endif()
  14. include(ExternalProject)
  15. ExternalProject_Add(
  16. aws-sdk-cpp
  17. SOURCE_DIR ${AWS_SDK_CPP_SOURCE_DIR}
  18. BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/aws-sdk-cpp
  19. CMAKE_ARGS -DCUSTOM_MEMORY_MANAGEMENT:string=0 -DCMAKE_CXX_FLAGS=${EXTERNAL_SQS_CXX_FLAGS} -DCMAKE_SHARED_LINKER_FLAGS_INIT=-Wl,-rpath-link,${LIB_PATH}
  20. BUILD_COMMAND ${CMAKE_MAKE_PROGRAM} ${AWS_BUILD_FLAGS} aws-cpp-sdk-sqs aws-cpp-sdk-s3
  21. BUILD_BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/aws-sdk-cpp/aws-cpp-sdk-core/libaws-cpp-sdk-core${CMAKE_SHARED_LIBRARY_SUFFIX}
  22. ${CMAKE_CURRENT_BINARY_DIR}/aws-sdk-cpp/aws-cpp-sdk-sqs/libaws-cpp-sdk-sqs${CMAKE_SHARED_LIBRARY_SUFFIX}
  23. ${CMAKE_CURRENT_BINARY_DIR}/aws-sdk-cpp/aws-cpp-sdk-s3/libaws-cpp-sdk-s3${CMAKE_SHARED_LIBRARY_SUFFIX}
  24. INSTALL_COMMAND "")
  25. include(GNUInstallDirs)
  26. set(AWS_DEP_LIBDIR ${CMAKE_CURRENT_BINARY_DIR}/aws-sdk-cpp/.deps/install/${CMAKE_INSTALL_LIBDIR})
  27. add_library(aws-cpp-sdk-core SHARED IMPORTED GLOBAL)
  28. add_library(aws-cpp-sdk-sqs SHARED IMPORTED GLOBAL)
  29. add_library(aws-cpp-sdk-s3 SHARED IMPORTED GLOBAL)
  30. set_property(TARGET aws-cpp-sdk-core
  31. PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/aws-sdk-cpp/aws-cpp-sdk-core/libaws-cpp-sdk-core${CMAKE_SHARED_LIBRARY_SUFFIX})
  32. set_property(TARGET aws-cpp-sdk-sqs
  33. PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/aws-sdk-cpp/aws-cpp-sdk-sqs/libaws-cpp-sdk-sqs${CMAKE_SHARED_LIBRARY_SUFFIX})
  34. set_property(TARGET aws-cpp-sdk-s3
  35. PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/aws-sdk-cpp/aws-cpp-sdk-s3/libaws-cpp-sdk-s3${CMAKE_SHARED_LIBRARY_SUFFIX})
  36. add_dependencies(aws-cpp-sdk-core aws-sdk-cpp)
  37. add_dependencies(aws-cpp-sdk-sqs aws-sdk-cpp)
  38. add_dependencies(aws-cpp-sdk-s3 aws-sdk-cpp)
  39. if ( NOT PLUGIN )
  40. install(CODE "set(ENV{LD_LIBRARY_PATH} \"\$ENV{LD_LIBRARY_PATH}:${AWS_DEP_LIBDIR}:${PROJECT_BINARY_DIR}:${PROJECT_BINARY_DIR}/aws-sdk-cpp/aws-cpp-sdk-core:${PROJECT_BINARY_DIR}/aws-sdk-cpp/aws-cpp-sdk-sqs:${PROJECT_BINARY_DIR}/aws-sdk-cpp/aws-cpp-sdk-s3\")")
  41. install(FILES
  42. ${CMAKE_CURRENT_SOURCE_DIR}/aws-sdk-cpp/LICENSE.txt
  43. DESTINATION lib
  44. RENAME aws-sdk-cpp-LICENSE.txt)
  45. install(CODE "file(RPATH_CHANGE
  46. FILE \"${CMAKE_CURRENT_BINARY_DIR}/aws-sdk-cpp/aws-cpp-sdk-core/libaws-cpp-sdk-core${CMAKE_SHARED_LIBRARY_SUFFIX}\"
  47. OLD_RPATH \"${AWS_DEP_LIBDIR}:\"
  48. NEW_RPATH \"${LIB_PATH}\")")
  49. install(CODE "file(RPATH_CHANGE
  50. FILE \"${CMAKE_CURRENT_BINARY_DIR}/aws-sdk-cpp/aws-cpp-sdk-sqs/libaws-cpp-sdk-sqs${CMAKE_SHARED_LIBRARY_SUFFIX}\"
  51. OLD_RPATH \"${PROJECT_BINARY_DIR}/aws-sdk-cpp/aws-cpp-sdk-core:${AWS_DEP_LIBDIR}:\"
  52. NEW_RPATH \"${LIB_PATH}\")")
  53. install(CODE "file(RPATH_CHANGE
  54. FILE \"${CMAKE_CURRENT_BINARY_DIR}/aws-sdk-cpp/aws-cpp-sdk-s3/libaws-cpp-sdk-s3${CMAKE_SHARED_LIBRARY_SUFFIX}\"
  55. OLD_RPATH \"${PROJECT_BINARY_DIR}/aws-sdk-cpp/aws-cpp-sdk-core:${AWS_DEP_LIBDIR}:\"
  56. NEW_RPATH \"${LIB_PATH}\")")
  57. install(PROGRAMS
  58. ${CMAKE_CURRENT_BINARY_DIR}/aws-sdk-cpp/aws-cpp-sdk-core/libaws-cpp-sdk-core${CMAKE_SHARED_LIBRARY_SUFFIX}
  59. ${CMAKE_CURRENT_BINARY_DIR}/aws-sdk-cpp/aws-cpp-sdk-sqs/libaws-cpp-sdk-sqs${CMAKE_SHARED_LIBRARY_SUFFIX}
  60. ${CMAKE_CURRENT_BINARY_DIR}/aws-sdk-cpp/aws-cpp-sdk-s3/libaws-cpp-sdk-s3${CMAKE_SHARED_LIBRARY_SUFFIX}
  61. ${AWS_DEP_LIBDIR}/libaws-c-common${CMAKE_SHARED_LIBRARY_SUFFIX}.1.0.0
  62. ${AWS_DEP_LIBDIR}/libaws-c-common${CMAKE_SHARED_LIBRARY_SUFFIX}
  63. ${AWS_DEP_LIBDIR}/libaws-c-common${CMAKE_SHARED_LIBRARY_SUFFIX}.0unstable
  64. ${AWS_DEP_LIBDIR}/libaws-c-event-stream${CMAKE_SHARED_LIBRARY_SUFFIX}.1.0.0
  65. ${AWS_DEP_LIBDIR}/libaws-c-event-stream${CMAKE_SHARED_LIBRARY_SUFFIX}
  66. ${AWS_DEP_LIBDIR}/libaws-c-event-stream${CMAKE_SHARED_LIBRARY_SUFFIX}.0unstable
  67. ${AWS_DEP_LIBDIR}/libaws-checksums${CMAKE_SHARED_LIBRARY_SUFFIX}
  68. DESTINATION lib)
  69. endif ( NOT PLUGIN )
  70. endif()