#!/bin/bash # Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"). You may not use # this file except in compliance with the License. A copy of the License is # located at # # http://aws.amazon.com/apache2.0/ # # or in the "license" file accompanying this file. This file is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or # implied. See the License for the specific language governing permissions and # limitations under the License. set +ex OS=$(uname -s) AWS_SDK_CPP_VER="1.8.32" #github versioned branch BUILDROOT="/var/tmp/build-$(date +%s)" OPENSSL_VER="openssl@1.1" #note this is a brew label, not an exact version reference BUILDROOT="/var/tmp/build-$(date +%Y%m%d)" AWS_ENCRYPTION_SDK_C_VER="master" # Build from master deps(){ echo "Installing dependencies" if [ $(which brew|grep -c 'brew') -lt 1 ]; then echo "Can't find brew, required to build" exit 1 fi brew install ${OPENSSL_VER} cmake || true mkdir ${BUILDROOT} || true mkdir ${INSTALLROOT} || true } build_cpp(){ echo "Building aws-sdk-cpp" cd ${BUILDROOT} git clone -b ${AWS_SDK_CPP_VER} https://github.com/aws/aws-sdk-cpp.git mkdir -p ${BUILDROOT}/build-aws-sdk-cpp ||true mkdir -p ${BUILDROOT}/install || true cd ${BUILDROOT}/build-aws-sdk-cpp # See https://docs.aws.amazon.com/sdk-for-cpp/v1/developer-guide/cmake-params.html#cmake-target-arch cmake -G Xcode -DTARGET_ARCH="APPLE" -DBUILD_SHARED_LIBS=ON -DBUILD_ONLY="kms" -DENABLE_UNITY_BUILD=ON ../aws-sdk-cpp # This target runs the cpp tests, but doesn't appear to run the other dependancy tests. xcodebuild -target ALL_BUILD xcodebuild -target install } build_csdk(){ echo "Building aws-encryption-sdk-c" cd ${BUILDROOT} git clone -b ${AWS_ENCRYPTION_SDK_C_VER} https://github.com/aws/aws-encryption-sdk-c.git mkdir -p ${BUILDROOT}/build-aws-encryption-sdk-c || true cd $BUILDROOT/build-aws-encryption-sdk-c cmake -G Xcode -DBUILD_SHARED_LIBS=ON -DOPENSSL_ROOT_DIR="/usr/local/opt/${OPENSSL_VER}" ../aws-encryption-sdk-c xcodebuild -target ALL_BUILD xcodebuild -scheme RUN_TESTS } if [ "$OS" == 'Darwin' ]; then deps build_cpp build_csdk else echo "Expecting Mac OS; exiting" fi