1
+ #! /bin/bash
2
+ # #===----------------------------------------------------------------------===##
3
+ # #
4
+ # # This source file is part of the SwiftAWSLambdaRuntime open source project
5
+ # #
6
+ # # Copyright (c) 2017-2024 Apple Inc. and the SwiftAWSLambdaRuntime project authors
7
+ # # Licensed under Apache License v2.0
8
+ # #
9
+ # # See LICENSE.txt for license information
10
+ # # See CONTRIBUTORS.txt for the list of SwiftAWSLambdaRuntime project authors
11
+ # #
12
+ # # SPDX-License-Identifier: Apache-2.0
13
+ # #
14
+ # #===----------------------------------------------------------------------===##
15
+
16
+ #! /bin/bash
17
+
18
+ EXAMPLE=APIGateway
19
+ OUTPUT_DIR=.build/release
20
+ OUTPUT_FILE=${OUTPUT_DIR} /APIGatewayLambda
21
+ LIBS_TO_CHECK=" libFoundation.so libFoundationInternationalization.so lib_FoundationICU.so"
22
+
23
+ pushd Examples/${EXAMPLE} || exit 1
24
+
25
+ # recompile the example without the --static-swift-stdlib flag
26
+ LAMBDA_USE_LOCAL_DEPS=../.. swift build -c release -Xlinker -s
27
+
28
+ # check if the binary exists
29
+ if [ ! -f " ${OUTPUT_FILE} " ]; then
30
+ echo " ❌ ${OUTPUT_FILE} does not exist."
31
+ exit 1
32
+ fi
33
+
34
+ # Checking for Foundation or ICU dependencies
35
+ echo " Checking for Foundation or ICU dependencies in ${OUTPUT_DIR} /${OUTPUT_FILE} ."
36
+ LIBRARIES=$( ldd ${OUTPUT_FILE} | awk ' {print $1}' )
37
+ for LIB in ${LIBS_TO_CHECK} ; do
38
+ echo -n " Checking for ${LIB} ... "
39
+
40
+ # check if the binary has a dependency on Foundation or ICU
41
+ echo " ${LIBRARIES} " | grep " ${LIB} " # return 1 if not found
42
+
43
+ # 1 is success (grep failed to find the lib), 0 is failure (grep successly found the lib)
44
+ SUCCESS=$?
45
+ [ " $SUCCESS " -eq 0 ] && echo " ❌ ${LIB} found." && break || echo " ✅ ${LIB} not found."
46
+ done
47
+
48
+ popd || exit 1
49
+
50
+ # exit code is the opposite of the grep exit code
51
+ [ " $SUCCESS " -eq 0 ] && echo " ❌ At least one foundation lib was found, reporting the error." && exit 1 || echo " ✅ No foundation lib found, congrats!" && exit 0
0 commit comments