kszucs commented on a change in pull request #8304:
URL: https://github.com/apache/arrow/pull/8304#discussion_r497044090
##########
File path: cpp/cmake_modules/ThirdpartyToolchain.cmake
##########
@@ -2630,46 +2628,101 @@ macro(build_awssdk)
endif()
set(AWSSDK_CMAKE_ARGS
- -DCMAKE_BUILD_TYPE=Release
+ -DCMAKE_BUILD_TYPE=release
+ -DMINIMIZE_SIZE=on
+
-DBUILD_ONLY=config\\$<SEMICOLON>s3\\$<SEMICOLON>transfer\\$<SEMICOLON>identity-management\\$<SEMICOLON>sts
-DCMAKE_INSTALL_LIBDIR=lib
- -DBUILD_ONLY=s3;core;config;identity-management;sts
-DENABLE_UNITY_BUILD=on
+ -DBUILD_SHARED_LIBS=off
-DENABLE_TESTING=off
"-DCMAKE_C_FLAGS=${EP_C_FLAGS}"
"-DCMAKE_INSTALL_PREFIX=${AWSSDK_PREFIX}")
- set(
- AWSSDK_CORE_SHARED_LIB
-
"${AWSSDK_PREFIX}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}aws-cpp-sdk-core${CMAKE_SHARED_LIBRARY_SUFFIX}"
- )
- set(
- AWSSDK_S3_SHARED_LIB
-
"${AWSSDK_PREFIX}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}aws-cpp-sdk-s3${CMAKE_SHARED_LIBRARY_SUFFIX}"
- )
- set(
- AWSSDK_IAM_SHARED_LIB
-
"${AWSSDK_PREFIX}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}aws-cpp-sdk-identity-management${CMAKE_SHARED_LIBRARY_SUFFIX}"
- )
- set(
- AWSSDK_STS_SHARED_LIB
-
"${AWSSDK_PREFIX}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}aws-cpp-sdk-sts${CMAKE_SHARED_LIBRARY_SUFFIX}"
- )
- set(AWSSDK_SHARED_LIBS "${AWSSDK_CORE_SHARED_LIB}" "${AWSSDK_S3_SHARED_LIB}"
- "${AWSSDK_IAM_SHARED_LIB}" "${AWSSDK_STS_SHARED_LIB}")
+ set(AWSSDK_COMMON_STATIC_LIB
"${AWSSDK_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}aws-c-common${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ set(AWSSDK_CHECKSUMS_STATIC_LIB
"${AWSSDK_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}aws-checksums${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ set(AWSSDK_ES_STATIC_LIB
"${AWSSDK_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}aws-c-event-stream${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ set(AWSSDK_CORE_STATIC_LIB
"${AWSSDK_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}aws-cpp-sdk-core${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ set(AWSSDK_S3_STATIC_LIB
"${AWSSDK_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}aws-cpp-sdk-s3${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ set(AWSSDK_COG_STATIC_LIB
"${AWSSDK_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}aws-cpp-sdk-cognito-identity${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ set(AWSSDK_IAM_STATIC_LIB
"${AWSSDK_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}aws-cpp-sdk-identity-management${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ set(AWSSDK_STS_STATIC_LIB
"${AWSSDK_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}aws-cpp-sdk-sts${CMAKE_STATIC_LIBRARY_SUFFIX}")
+
+ set(AWSSDK_STATIC_LIBS "${AWSSDK_COG_STATIC_LIB}"
"${AWSSDK_CHECKSUMS_STATIC_LIB}" "${AWSSDK_COMMON_STATIC_LIB}"
"${AWSSDK_ES_STATIC_LIB}" "${AWSSDK_CORE_STATIC_LIB}" "${AWSSDK_S3_STATIC_LIB}"
"${AWSSDK_IAM_STATIC_LIB}" "${AWSSDK_STS_STATIC_LIB}")
externalproject_add(awssdk_ep
${EP_LOG_OPTIONS}
URL ${AWSSDK_SOURCE_URL}
CMAKE_ARGS ${AWSSDK_CMAKE_ARGS}
- BUILD_BYPRODUCTS ${AWSSDK_SHARED_LIBS})
+ BUILD_BYPRODUCTS ${AWSSDK_STATIC_LIBS})
file(MAKE_DIRECTORY ${AWSSDK_INCLUDE_DIR})
+ add_library(AWS::aws-checksums STATIC IMPORTED)
+ set_target_properties(AWS::aws-checksums
+ PROPERTIES IMPORTED_LOCATION
"${AWSSDK_CHECKSUMS_STATIC_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES
+ "${AWSSDK_INCLUDE_DIR}")
+
+ add_library(AWS::aws-c-common STATIC IMPORTED)
+ set_target_properties(AWS::aws-c-common
+ PROPERTIES IMPORTED_LOCATION
"${AWSSDK_COMMON_STATIC_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES
+ "${AWSSDK_INCLUDE_DIR}")
+
+ add_library(AWS::aws-c-event-stream STATIC IMPORTED)
+ set_target_properties(AWS::aws-c-event-stream
+ PROPERTIES IMPORTED_LOCATION "${AWSSDK_ES_STATIC_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES
+ "${AWSSDK_INCLUDE_DIR}")
+
+ add_library(AWS::aws-cpp-sdk-core STATIC IMPORTED)
+ set_target_properties(AWS::aws-cpp-sdk-core
+ PROPERTIES IMPORTED_LOCATION
"${AWSSDK_CORE_STATIC_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES
+ "${AWSSDK_INCLUDE_DIR}")
+
+ add_library(AWS::aws-cpp-sdk-s3 STATIC IMPORTED)
+ set_target_properties(AWS::aws-cpp-sdk-s3
+ PROPERTIES IMPORTED_LOCATION "${AWSSDK_S3_STATIC_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES
+ "${AWSSDK_INCLUDE_DIR}")
+
+ add_library(AWS::aws-cpp-sdk-cognito-identity STATIC IMPORTED)
+ set_target_properties(AWS::aws-cpp-sdk-cognito-identity
+ PROPERTIES IMPORTED_LOCATION "${AWSSDK_COG_STATIC_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES
+ "${AWSSDK_INCLUDE_DIR}")
+
+ add_library(AWS::aws-cpp-sdk-identity-management STATIC IMPORTED)
+ set_target_properties(AWS::aws-cpp-sdk-identity-management
+ PROPERTIES IMPORTED_LOCATION "${AWSSDK_IAM_STATIC_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES
+ "${AWSSDK_INCLUDE_DIR}")
+
+ add_library(AWS::aws-cpp-sdk-sts STATIC IMPORTED)
+ set_target_properties(AWS::aws-cpp-sdk-sts
+ PROPERTIES IMPORTED_LOCATION "${AWSSDK_STS_STATIC_LIB}"
+ INTERFACE_INCLUDE_DIRECTORIES
+ "${AWSSDK_INCLUDE_DIR}")
+
+ # on linux and macos curl seems to be required
+ find_package(CURL REQUIRED)
Review comment:
I'm not sure how feasible is this, perhaps we can turn off the curl
dependency of AWS. I assume linking against the system curl should be fine
rather than compiling curl as well.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]