-
Notifications
You must be signed in to change notification settings - Fork 4k
ARROW-10068: [C++] Add bundled external project for aws-sdk-cpp #8243
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
For the aws-sdk headers, the following patch will fix them: diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake
index 0180ef912..033e18491 100644
--- a/cpp/cmake_modules/ThirdpartyToolchain.cmake
+++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake
@@ -2629,10 +2629,19 @@ macro(build_awssdk)
set(AWSSDK_BUILD_TYPE Release)
endif()
+ set(AWSSDK_LIST_SEPARATOR "|")
+ string(JOIN
+ ${AWSSDK_LIST_SEPARATOR}
+ AWSSDK_BUILD_ONLY
+ s3
+ core
+ config
+ identity-management
+ sts)
set(AWSSDK_CMAKE_ARGS
-DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_LIBDIR=lib
- -DBUILD_ONLY=s3;core;config;identity-management;sts
+ -DBUILD_ONLY=${AWSSDK_BUILD_ONLY}
-DENABLE_UNITY_BUILD=on
-DENABLE_TESTING=off
"-DCMAKE_C_FLAGS=${EP_C_FLAGS}"
@@ -2661,7 +2670,8 @@ macro(build_awssdk)
${EP_LOG_OPTIONS}
URL ${AWSSDK_SOURCE_URL}
CMAKE_ARGS ${AWSSDK_CMAKE_ARGS}
- BUILD_BYPRODUCTS ${AWSSDK_SHARED_LIBS})
+ BUILD_BYPRODUCTS ${AWSSDK_SHARED_LIBS}
+ LIST_SEPARATOR ${AWSSDK_LIST_SEPARATOR})
file(MAKE_DIRECTORY ${AWSSDK_INCLUDE_DIR})We need to escape |
|
It's not a strong opinion but I'm negative we bundle OpenSSL. |
|
Ah, we can use |
|
Ok, with that SEMICOLON change, the Ubuntu R job successfully compiles the C++ library, but the R package can't use it because it created a shared library for aws-sdk-cpp (or several), and those are stuck inside the build/awssdk_ep directory: https://github.com/apache/arrow/pull/8243/checks?check_run_id=1152416386#step:9:61 I think this means the bundled ep needs to build aws-sdk-cpp static, like it does for e.g. jemalloc--right? |
|
Right. |
I agree, but I think we already do that with Flight... |
|
Ah, wheel... |
|
Closing in favor of #8304 |
I've tried enabling this in the R linux builds and have made some progress, but I'm hitting some issues that someone more experienced with cmake might be able to help with.
-DBUILD_SHARED_LIBS=OFF. This is where I'm not sure how to finish wiring this ep up. Once again, TileDB may be a point of reference: https://github.com/TileDB-Inc/TileDB/blob/dev/cmake/Modules/FindAWSSDK_EP.cmakeSolving this will also let us enable S3 in more Python wheels; cf. #7997