Generate soong.variables for ndk build

Update the ndk build script to have Make generate the soong.variables
via the config step, using a new "ndk" product.

Bug: 174315599
Test: build/soong/scripts/build-ndk-prebuilts.sh
Change-Id: I0f6fbf523cf9209ea17b7752dd7470012e0baf8c
This commit is contained in:
Anton Hansson 2022-02-17 19:52:46 +00:00
parent 2ace628b86
commit b850f84cb9
2 changed files with 4 additions and 49 deletions

View file

@ -25,7 +25,9 @@
# Products that are broken or otherwise don't work with multiproduct_kati # Products that are broken or otherwise don't work with multiproduct_kati
SKIPPED_PRODUCTS=( SKIPPED_PRODUCTS=(
# Both of these products are for soong-only builds, and will fail the kati stage.
mainline_sdk mainline_sdk
ndk
) )
# To track how long we took to startup. %N isn't supported on Darwin, but # To track how long we took to startup. %N isn't supported on Darwin, but

View file

@ -19,56 +19,9 @@ if [ -z "${OUT_DIR}" ]; then
exit 1 exit 1
fi fi
TOP=$(pwd) TARGET_PRODUCT=ndk build/soong/soong_ui.bash --make-mode --soong-only ${OUT_DIR}/soong/ndk.timestamp
source build/envsetup.sh
PLATFORM_SDK_VERSION=$(get_build_var PLATFORM_SDK_VERSION)
PLATFORM_BASE_SDK_EXTENSION_VERSION=$(get_build_var PLATFORM_BASE_SDK_EXTENSION_VERSION)
PLATFORM_VERSION_ALL_CODENAMES=$(get_build_var PLATFORM_VERSION_ALL_CODENAMES)
# PLATFORM_VERSION_ALL_CODENAMES is a comma separated list like O,P. We need to
# turn this into ["O","P"].
PLATFORM_VERSION_ALL_CODENAMES=${PLATFORM_VERSION_ALL_CODENAMES/,/'","'}
PLATFORM_VERSION_ALL_CODENAMES="[\"${PLATFORM_VERSION_ALL_CODENAMES}\"]"
# Get the list of missing <uses-library> modules and convert it to a JSON array
# (quote module names, add comma separator and wrap in brackets).
MISSING_USES_LIBRARIES="$(get_build_var INTERNAL_PLATFORM_MISSING_USES_LIBRARIES)"
MISSING_USES_LIBRARIES="[$(echo $MISSING_USES_LIBRARIES | sed -e 's/\([^ ]\+\)/\"\1\"/g' -e 's/[ ]\+/, /g')]"
SOONG_OUT=${OUT_DIR}/soong
SOONG_NDK_OUT=${OUT_DIR}/soong/ndk
rm -rf ${SOONG_OUT}
mkdir -p ${SOONG_OUT}
# We only really need to set some of these variables, but soong won't merge this
# with the defaults, so we need to write out all the defaults with our values
# added.
cat > ${SOONG_OUT}/soong.variables << EOF
{
"Platform_sdk_version": ${PLATFORM_SDK_VERSION},
"Platform_base_sdk_extension_version": ${PLATFORM_BASE_SDK_EXTENSION_VERSION},
"Platform_version_active_codenames": ${PLATFORM_VERSION_ALL_CODENAMES},
"DeviceName": "generic_arm64",
"HostArch": "x86_64",
"Malloc_not_svelte": false,
"Safestack": false,
"Ndk_abis": true,
"VendorVars": {
"art_module": {
"source_build": "true"
}
},
"MissingUsesLibraries": ${MISSING_USES_LIBRARIES}
}
EOF
m --soong-only --skip-config ${SOONG_OUT}/ndk.timestamp
if [ -n "${DIST_DIR}" ]; then if [ -n "${DIST_DIR}" ]; then
mkdir -p ${DIST_DIR} || true mkdir -p ${DIST_DIR} || true
tar cjf ${DIST_DIR}/ndk_platform.tar.bz2 -C ${SOONG_OUT} ndk tar cjf ${DIST_DIR}/ndk_platform.tar.bz2 -C ${OUT_DIR}/soong ndk
fi fi