1616# under the License.
1717
1818function (use_bundled_libaws SOURCE_DIR BINARY_DIR )
19- set (PATCH_FILE1 "${SOURCE_DIR} /thirdparty/aws-sdk-cpp/dll-export-injection.patch" )
20- set (PATCH_FILE2 "${SOURCE_DIR} /thirdparty/aws-sdk-cpp/bundle-openssl.patch" )
21- set (PATCH_FILE3 "${SOURCE_DIR} /thirdparty/aws-sdk-cpp/fix-finding-s2n.patch" )
19+ find_package (OpenSSL REQUIRED )
20+ find_package (ZLIB REQUIRED )
21+ set (DLL_EXPORT_INJECTION_PATCH "${SOURCE_DIR} /thirdparty/aws-sdk-cpp/dll-export-injection.patch" )
22+ set (FIX_FINDING_S2N_PATCH "${SOURCE_DIR} /thirdparty/aws-sdk-cpp/fix-finding-s2n.patch" )
23+ set (S2N_OPENSSL_PATCH "${SOURCE_DIR} /thirdparty/aws-sdk-cpp/s2n.patch" )
24+ set (AWS_C_CAL_OPENSSL_PATCH "${SOURCE_DIR} /thirdparty/aws-sdk-cpp/aws-c-cal.patch" )
25+
26+ if (WIN32 )
27+ set (REMOVE_FIND_CMAKE_COMMAND "powershell -Command \\\" Remove-Item -Path ./* -Include 'FindOpenSSL.cmake', 'Findcrypto.cmake' -Recurse -Force\\\" " )
28+ else ()
29+ set (REMOVE_FIND_CMAKE_COMMAND "find . -type f -iname 'FindOpenSSL.cmake' -delete -o -iname 'Findcrypto.cmake' -delete" )
30+ endif ()
31+
2232 set (AWS_SDK_CPP_PATCH_COMMAND ${Bash_EXECUTABLE} -c "set -x &&\
23- (\" ${Patch_EXECUTABLE} \" -p1 -R -s -f --dry-run -i \" ${PATCH_FILE1} \" || \" ${Patch_EXECUTABLE} \" -p1 -N -i \" ${PATCH_FILE1} \" ) &&\
24- (\" ${Patch_EXECUTABLE} \" -p1 -R -s -f --dry-run -i \" ${PATCH_FILE2} \" || \" ${Patch_EXECUTABLE} \" -p1 -N -i \" ${PATCH_FILE2} \" ) &&\
25- (\" ${Patch_EXECUTABLE} \" -p1 -R -s -f --dry-run -i \" ${PATCH_FILE3} \" || \" ${Patch_EXECUTABLE} \" -p1 -N -i \" ${PATCH_FILE3} \" ) &&\
33+ (\" ${Patch_EXECUTABLE} \" -p1 -R -s -f --dry-run -i \" ${DLL_EXPORT_INJECTION_PATCH} \" || \" ${Patch_EXECUTABLE} \" -f -p1 -N -i \" ${DLL_EXPORT_INJECTION_PATCH} \" ) &&\
34+ (\" ${Patch_EXECUTABLE} \" -p1 -R -s -f --dry-run -i \" ${FIX_FINDING_S2N_PATCH} \" || \" ${Patch_EXECUTABLE} \" -f -p1 -N -i \" ${FIX_FINDING_S2N_PATCH} \" ) &&\
35+ (\" ${Patch_EXECUTABLE} \" -d crt/aws-crt-cpp/crt/s2n -p1 -R -s -f --dry-run -i \" ${S2N_OPENSSL_PATCH} \" || \" ${Patch_EXECUTABLE} \" -d crt/aws-crt-cpp/crt/s2n -f -p1 -N -i \" ${S2N_OPENSSL_PATCH} \" ) &&\
36+ (\" ${Patch_EXECUTABLE} \" -d crt/aws-crt-cpp/crt/aws-c-cal -p1 -R -s -f --dry-run -i \" ${AWS_C_CAL_OPENSSL_PATCH} \" || \" ${Patch_EXECUTABLE} \" -d crt/aws-crt-cpp/crt/aws-c-cal -f -p1 -N -i \" ${AWS_C_CAL_OPENSSL_PATCH} \" ) &&\
37+ ${REMOVE_FIND_CMAKE_COMMAND} &&\
2638 :" )
2739
2840 if (WIN32 )
@@ -68,9 +80,20 @@ function(use_bundled_libaws SOURCE_DIR BINARY_DIR)
6880 LIST (APPEND AWSSDK_LIBRARIES_LIST "${BINARY_DIR} /thirdparty/libaws-install/${BYPRODUCT} " )
6981 ENDFOREACH (BYPRODUCT )
7082
83+ string (REPLACE ";" "%" ESCAPED_CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH} " )
84+
7185 set (AWS_SDK_CPP_CMAKE_ARGS ${PASSTHROUGH_CMAKE_ARGS}
72- -DCMAKE_PREFIX_PATH=${BINARY_DIR} /thirdparty/libaws-install
73- -DCMAKE_INSTALL_PREFIX=${BINARY_DIR} /thirdparty/libaws-install
86+ "-DCMAKE_PREFIX_PATH=${BINARY_DIR} /thirdparty/libaws-install"
87+ "-DCMAKE_INSTALL_PREFIX=${BINARY_DIR} /thirdparty/libaws-install"
88+ "-DCMAKE_MODULE_PATH=${ESCAPED_CMAKE_MODULE_PATH} "
89+ "-DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_DIR} "
90+ "-DFIND_OPENSSL_PATH=${SOURCE_DIR} /cmake/ssl/FindOpenSSL.cmake"
91+ "-DFIND_CRYPTO_PATH=${SOURCE_DIR} /cmake/ssl/FindCrypto.cmake"
92+ "-DCURL_ROOT_DIR=${CURL_ROOT_DIR} "
93+ "-DZLIB_INCLUDE_DIR=${ZLIB_INCLUDE_DIRS} "
94+ "-DZLIB_INCLUDE_DIRS=${ZLIB_INCLUDE_DIRS} "
95+ "-DZLIB_LIBRARY=${ZLIB_LIBRARIES} "
96+ -DUSE_OPENSSL=ON
7497 -DBUILD_ONLY=kinesis%s3%s3-crt
7598 -DENABLE_TESTING=OFF
7699 -DBUILD_SHARED_LIBS=OFF
@@ -112,20 +135,20 @@ function(use_bundled_libaws SOURCE_DIR BINARY_DIR)
112135 # Create imported targets
113136 file (MAKE_DIRECTORY ${LIBAWS_INCLUDE_DIR} )
114137
115- add_library (AWS::aws-c-common STATIC IMPORTED )
138+ add_library (AWS::aws-c-common STATIC IMPORTED GLOBAL )
116139 set_target_properties (AWS::aws-c-common PROPERTIES IMPORTED_LOCATION "${BINARY_DIR} /thirdparty/libaws-install/${LIBDIR} /${PREFIX} aws-c-common.${SUFFIX} " )
117140 add_dependencies (AWS::aws-c-common aws-sdk-cpp-external )
118141 target_include_directories (AWS::aws-c-common INTERFACE ${LIBAWS_INCLUDE_DIR} )
119142
120143 if (NOT WIN32 AND NOT APPLE )
121- add_library (AWS::s2n STATIC IMPORTED )
144+ add_library (AWS::s2n STATIC IMPORTED GLOBAL )
122145 set_target_properties (AWS::s2n PROPERTIES IMPORTED_LOCATION "${BINARY_DIR} /thirdparty/libaws-install/${LIBDIR} /${PREFIX} s2n.${SUFFIX} " )
123146 add_dependencies (AWS::s2n aws-sdk-cpp-external )
124147 target_include_directories (AWS::s2n INTERFACE ${LIBAWS_INCLUDE_DIR} )
125148 target_link_libraries (AWS::s2n INTERFACE OpenSSL::Crypto )
126149 endif ()
127150
128- add_library (AWS::aws-c-io STATIC IMPORTED )
151+ add_library (AWS::aws-c-io STATIC IMPORTED GLOBAL )
129152 set_target_properties (AWS::aws-c-io PROPERTIES IMPORTED_LOCATION "${BINARY_DIR} /thirdparty/libaws-install/${LIBDIR} /${PREFIX} aws-c-io.${SUFFIX} " )
130153 add_dependencies (AWS::aws-c-io aws-sdk-cpp-external )
131154 target_include_directories (AWS::aws-c-io INTERFACE ${LIBAWS_INCLUDE_DIR} )
@@ -134,60 +157,60 @@ function(use_bundled_libaws SOURCE_DIR BINARY_DIR)
134157 target_link_libraries (AWS::aws-c-io INTERFACE ncrypt.lib )
135158 endif ()
136159
137- add_library (AWS::aws-checksums STATIC IMPORTED )
160+ add_library (AWS::aws-checksums STATIC IMPORTED GLOBAL )
138161 set_target_properties (AWS::aws-checksums PROPERTIES IMPORTED_LOCATION "${BINARY_DIR} /thirdparty/libaws-install/${LIBDIR} /${PREFIX} aws-checksums.${SUFFIX} " )
139162 add_dependencies (AWS::aws-checksums aws-sdk-cpp-external )
140163 target_include_directories (AWS::aws-checksums INTERFACE ${LIBAWS_INCLUDE_DIR} )
141164
142- add_library (AWS::aws-c-event-stream STATIC IMPORTED )
165+ add_library (AWS::aws-c-event-stream STATIC IMPORTED GLOBAL )
143166 set_target_properties (AWS::aws-c-event-stream PROPERTIES IMPORTED_LOCATION "${BINARY_DIR} /thirdparty/libaws-install/${LIBDIR} /${PREFIX} aws-c-event-stream.${SUFFIX} " )
144167 add_dependencies (AWS::aws-c-event-stream aws-sdk-cpp-external )
145168 target_include_directories (AWS::aws-c-event-stream INTERFACE ${LIBAWS_INCLUDE_DIR} )
146169 target_link_libraries (AWS::aws-c-event-stream INTERFACE AWS::aws-checksums AWS::aws-c-io )
147170
148- add_library (AWS::aws-c-auth STATIC IMPORTED )
171+ add_library (AWS::aws-c-auth STATIC IMPORTED GLOBAL )
149172 set_target_properties (AWS::aws-c-auth PROPERTIES IMPORTED_LOCATION "${BINARY_DIR} /thirdparty/libaws-install/${LIBDIR} /${PREFIX} aws-c-auth.${SUFFIX} " )
150173 add_dependencies (AWS::aws-c-auth aws-sdk-cpp-external )
151174 target_include_directories (AWS::aws-c-auth INTERFACE ${LIBAWS_INCLUDE_DIR} )
152175
153- add_library (AWS::aws-c-s3 STATIC IMPORTED )
176+ add_library (AWS::aws-c-s3 STATIC IMPORTED GLOBAL )
154177 set_target_properties (AWS::aws-c-s3 PROPERTIES IMPORTED_LOCATION "${BINARY_DIR} /thirdparty/libaws-install/${LIBDIR} /${PREFIX} aws-c-s3.${SUFFIX} " )
155178 add_dependencies (AWS::aws-c-s3 aws-sdk-cpp-external )
156179 target_include_directories (AWS::aws-c-s3 INTERFACE ${LIBAWS_INCLUDE_DIR} )
157180 target_link_libraries (AWS::aws-c-s3 INTERFACE AWS::aws-c-auth )
158181
159- add_library (AWS::aws-c-mqtt STATIC IMPORTED )
182+ add_library (AWS::aws-c-mqtt STATIC IMPORTED GLOBAL )
160183 set_target_properties (AWS::aws-c-mqtt PROPERTIES IMPORTED_LOCATION "${BINARY_DIR} /thirdparty/libaws-install/${LIBDIR} /${PREFIX} aws-c-mqtt.${SUFFIX} " )
161184 add_dependencies (AWS::aws-c-mqtt aws-sdk-cpp-external )
162185 target_include_directories (AWS::aws-c-mqtt INTERFACE ${LIBAWS_INCLUDE_DIR} )
163186
164- add_library (AWS::aws-c-http STATIC IMPORTED )
187+ add_library (AWS::aws-c-http STATIC IMPORTED GLOBAL )
165188 set_target_properties (AWS::aws-c-http PROPERTIES IMPORTED_LOCATION "${BINARY_DIR} /thirdparty/libaws-install/${LIBDIR} /${PREFIX} aws-c-http.${SUFFIX} " )
166189 add_dependencies (AWS::aws-c-http aws-sdk-cpp-external )
167190 target_include_directories (AWS::aws-c-http INTERFACE ${LIBAWS_INCLUDE_DIR} )
168191
169- add_library (AWS::aws-c-cal STATIC IMPORTED )
192+ add_library (AWS::aws-c-cal STATIC IMPORTED GLOBAL )
170193 set_target_properties (AWS::aws-c-cal PROPERTIES IMPORTED_LOCATION "${BINARY_DIR} /thirdparty/libaws-install/${LIBDIR} /${PREFIX} aws-c-cal.${SUFFIX} " )
171194 add_dependencies (AWS::aws-c-cal aws-sdk-cpp-external )
172195 target_include_directories (AWS::aws-c-cal INTERFACE ${LIBAWS_INCLUDE_DIR} )
173196
174- add_library (AWS::aws-c-compression STATIC IMPORTED )
197+ add_library (AWS::aws-c-compression STATIC IMPORTED GLOBAL )
175198 set_target_properties (AWS::aws-c-compression PROPERTIES IMPORTED_LOCATION "${BINARY_DIR} /thirdparty/libaws-install/${LIBDIR} /${PREFIX} aws-c-compression.${SUFFIX} " )
176199 add_dependencies (AWS::aws-c-compression aws-sdk-cpp-external )
177200 target_include_directories (AWS::aws-c-compression INTERFACE ${LIBAWS_INCLUDE_DIR} )
178201
179- add_library (AWS::aws-c-sdkutils STATIC IMPORTED )
202+ add_library (AWS::aws-c-sdkutils STATIC IMPORTED GLOBAL )
180203 set_target_properties (AWS::aws-c-sdkutils PROPERTIES IMPORTED_LOCATION "${BINARY_DIR} /thirdparty/libaws-install/${LIBDIR} /${PREFIX} aws-c-sdkutils.${SUFFIX} " )
181204 add_dependencies (AWS::aws-c-sdkutils aws-sdk-cpp-external )
182205 target_include_directories (AWS::aws-c-sdkutils INTERFACE ${LIBAWS_INCLUDE_DIR} )
183206
184- add_library (AWS::aws-crt-cpp STATIC IMPORTED )
207+ add_library (AWS::aws-crt-cpp STATIC IMPORTED GLOBAL )
185208 set_target_properties (AWS::aws-crt-cpp PROPERTIES IMPORTED_LOCATION "${BINARY_DIR} /thirdparty/libaws-install/${LIBDIR} /${PREFIX} aws-crt-cpp.${SUFFIX} " )
186209 add_dependencies (AWS::aws-crt-cpp aws-sdk-cpp-external )
187210 target_include_directories (AWS::aws-crt-cpp INTERFACE ${LIBAWS_INCLUDE_DIR} )
188211 target_link_libraries (AWS::aws-crt-cpp INTERFACE AWS::aws-c-io AWS::aws-c-s3 AWS::aws-c-mqtt AWS::aws-c-http AWS::aws-c-cal AWS::aws-c-compression AWS::aws-c-sdkutils )
189212
190- add_library (AWS::aws-cpp-sdk-core STATIC IMPORTED )
213+ add_library (AWS::aws-cpp-sdk-core STATIC IMPORTED GLOBAL )
191214 set_target_properties (AWS::aws-cpp-sdk-core PROPERTIES IMPORTED_LOCATION "${BINARY_DIR} /thirdparty/libaws-install/${LIBDIR} /${PREFIX} aws-cpp-sdk-core.${SUFFIX} " )
192215 add_dependencies (AWS::aws-cpp-sdk-core aws-sdk-cpp-external )
193216 target_include_directories (AWS::aws-cpp-sdk-core INTERFACE ${LIBAWS_INCLUDE_DIR} )
@@ -201,19 +224,19 @@ function(use_bundled_libaws SOURCE_DIR BINARY_DIR)
201224 target_link_libraries (AWS::aws-cpp-sdk-core INTERFACE AWS::s2n )
202225 endif ()
203226
204- add_library (AWS::aws-cpp-sdk-s3 STATIC IMPORTED )
227+ add_library (AWS::aws-cpp-sdk-s3 STATIC IMPORTED GLOBAL )
205228 set_target_properties (AWS::aws-cpp-sdk-s3 PROPERTIES IMPORTED_LOCATION "${BINARY_DIR} /thirdparty/libaws-install/${LIBDIR} /${PREFIX} aws-cpp-sdk-s3.${SUFFIX} " )
206229 add_dependencies (AWS::aws-cpp-sdk-s3 aws-sdk-cpp-external )
207230 target_include_directories (AWS::aws-cpp-sdk-s3 INTERFACE ${LIBAWS_INCLUDE_DIR} )
208231 target_link_libraries (AWS::aws-cpp-sdk-s3 INTERFACE AWS::aws-cpp-sdk-core )
209232
210- add_library (AWS::aws-cpp-sdk-s3-crt STATIC IMPORTED )
233+ add_library (AWS::aws-cpp-sdk-s3-crt STATIC IMPORTED GLOBAL )
211234 set_target_properties (AWS::aws-cpp-sdk-s3-crt PROPERTIES IMPORTED_LOCATION "${BINARY_DIR} /thirdparty/libaws-install/${LIBDIR} /${PREFIX} aws-cpp-sdk-s3-crt.${SUFFIX} " )
212235 add_dependencies (AWS::aws-cpp-sdk-s3-crt aws-sdk-cpp-external )
213236 target_include_directories (AWS::aws-cpp-sdk-s3-crt INTERFACE ${LIBAWS_INCLUDE_DIR} )
214237 target_link_libraries (AWS::aws-cpp-sdk-s3-crt INTERFACE AWS::aws-cpp-sdk-core AWS::aws-crt-cpp )
215238
216- add_library (AWS::aws-cpp-sdk-kinesis STATIC IMPORTED )
239+ add_library (AWS::aws-cpp-sdk-kinesis STATIC IMPORTED GLOBAL )
217240 set_target_properties (AWS::aws-cpp-sdk-kinesis PROPERTIES IMPORTED_LOCATION "${BINARY_DIR} /thirdparty/libaws-install/${LIBDIR} /${PREFIX} aws-cpp-sdk-kinesis.${SUFFIX} " )
218241 add_dependencies (AWS::aws-cpp-sdk-kinesis aws-sdk-cpp-external )
219242 target_include_directories (AWS::aws-cpp-sdk-kinesis INTERFACE ${LIBAWS_INCLUDE_DIR} )
0 commit comments