blob: b6004438955366aec1294b4c3596cb485b0148c2 [file] [log] [blame]
Dan Albert65780b22016-10-19 14:17:19 -07001#!/bin/bash -ex
2
Colin Crossd00350c2017-11-17 10:55:38 -08003# 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
Dan Albert65780b22016-10-19 14:17:19 -070017if [ -z "${OUT_DIR}" ]; then
18 echo Must set OUT_DIR
19 exit 1
20fi
21
Greg Kaisera0b356f2023-11-09 12:43:38 -070022# Note: NDK doesn't support flagging APIs, so we hardcode it to trunk_staging.
Elliott Hughes7d8f39e2023-03-20 23:52:44 +000023# 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).
Dan Albert7636d922025-02-11 23:12:41 +000026#
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
Greg Kaisera0b356f2023-11-09 12:43:38 -070034TARGET_RELEASE=trunk_staging \
Elliott Hughesf7d31092023-03-14 23:11:57 +000035ALLOW_MISSING_DEPENDENCIES=true \
Elliott Hughes7d8f39e2023-03-20 23:52:44 +000036BUILD_BROKEN_DISABLE_BAZEL=1 \
Dan Albert7636d922025-02-11 23:12:41 +000037DISABLE_LTO=true \
Elliott Hughesf7d31092023-03-14 23:11:57 +000038 TARGET_PRODUCT=ndk build/soong/soong_ui.bash --make-mode --soong-only ${OUT_DIR}/soong/ndk.timestamp
Dan Albert65780b22016-10-19 14:17:19 -070039
40if [ -n "${DIST_DIR}" ]; then
41 mkdir -p ${DIST_DIR} || true
Anton Hanssonb850f842022-02-17 19:52:46 +000042 tar cjf ${DIST_DIR}/ndk_platform.tar.bz2 -C ${OUT_DIR}/soong ndk
Dan Albert65780b22016-10-19 14:17:19 -070043fi