1#!/bin/bash -ex 2 3# Copyright 2017 Google Inc. All rights reserved. 4# 5# Licensed under the Apache License, Version 2.0 (the "License"); 6# you may not use this file except in compliance with the License. 7# You may obtain a copy of the License at 8# 9# http://www.apache.org/licenses/LICENSE-2.0 10# 11# Unless required by applicable law or agreed to in writing, software 12# distributed under the License is distributed on an "AS IS" BASIS, 13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14# See the License for the specific language governing permissions and 15# limitations under the License. 16 17if [ -z "${OUT_DIR}" ]; then 18 echo Must set OUT_DIR 19 exit 1 20fi 21 22# Note: NDK doesn't support flagging APIs, so we hardcode it to trunk_staging. 23# TODO: remove ALLOW_MISSING_DEPENDENCIES=true when all the riscv64 24# dependencies exist (currently blocked by http://b/273792258). 25# TODO: remove BUILD_BROKEN_DISABLE_BAZEL=1 when bazel supports riscv64 (http://b/262192655). 26# 27# LTO is disabled because the NDK compiler is not necessarily in-sync with the 28# compiler used to build the platform sysroot, and the sysroot includes static 29# libraries which would be incompatible with mismatched compilers when built 30# with LTO. Disabling LTO globally for the NDK sysroot is okay because the only 31# compiled code in the sysroot that will end up in apps is those static 32# libraries. 33# https://github.com/android/ndk/issues/1591 34TARGET_RELEASE=trunk_staging \ 35ALLOW_MISSING_DEPENDENCIES=true \ 36BUILD_BROKEN_DISABLE_BAZEL=1 \ 37DISABLE_LTO=true \ 38 TARGET_PRODUCT=ndk build/soong/soong_ui.bash --make-mode --soong-only ${OUT_DIR}/soong/ndk.timestamp 39 40if [ -n "${DIST_DIR}" ]; then 41 mkdir -p ${DIST_DIR} || true 42 tar cjf ${DIST_DIR}/ndk_platform.tar.bz2 -C ${OUT_DIR}/soong ndk 43fi 44