mirror of
https://github.com/termux-pacman/termux-packages.git
synced 2026-02-14 13:50:56 +00:00
enhance(main/ndk-sysroot): make package buildable on device
By downloading android-ndk zip instead of relying on the toolchain directory.
This commit is contained in:
@@ -2,21 +2,37 @@ TERMUX_PKG_HOMEPAGE=https://developer.android.com/tools/sdk/ndk/index.html
|
||||
TERMUX_PKG_DESCRIPTION="System header and library files from the Android NDK needed for compiling C programs"
|
||||
TERMUX_PKG_LICENSE="NCSA"
|
||||
TERMUX_PKG_MAINTAINER="@termux"
|
||||
TERMUX_PKG_VERSION=$TERMUX_NDK_VERSION
|
||||
# Version should be equal to TERMUX_NDK_{VERSION_NUM,REVISION} in
|
||||
# scripts/properties.sh
|
||||
TERMUX_PKG_VERSION=25b
|
||||
TERMUX_PKG_REVISION=3
|
||||
TERMUX_PKG_SKIP_SRC_EXTRACT=true
|
||||
TERMUX_PKG_SRCURL=https://dl.google.com/android/repository/android-ndk-r${TERMUX_PKG_VERSION}-linux.zip
|
||||
TERMUX_PKG_SHA256=403ac3e3020dd0db63a848dcaba6ceb2603bf64de90949d5c4361f848e44b005
|
||||
# This package has taken over <pty.h> from the previous libutil-dev
|
||||
# and iconv.h from libandroid-support-dev:
|
||||
TERMUX_PKG_CONFLICTS="libutil-dev, libgcc, libandroid-support-dev"
|
||||
TERMUX_PKG_REPLACES="libutil-dev, libgcc, libandroid-support-dev, ndk-stl"
|
||||
TERMUX_PKG_NO_STATICSPLIT=true
|
||||
TERMUX_PKG_ON_DEVICE_BUILD_NOT_SUPPORTED=true
|
||||
TERMUX_PKG_BUILD_IN_SRC=true
|
||||
|
||||
termux_step_pre_configure() {
|
||||
for patch in $TERMUX_SCRIPTDIR/ndk-patches/$TERMUX_PKG_VERSION/*.patch; do
|
||||
echo "Applying ndk patch: $(basename $patch)"
|
||||
test -f "$patch" && sed \
|
||||
-e "s%\@TERMUX_APP_PACKAGE\@%${TERMUX_APP_PACKAGE}%g" \
|
||||
-e "s%\@TERMUX_BASE_DIR\@%${TERMUX_BASE_DIR}%g" \
|
||||
-e "s%\@TERMUX_CACHE_DIR\@%${TERMUX_CACHE_DIR}%g" \
|
||||
-e "s%\@TERMUX_HOME\@%${TERMUX_ANDROID_HOME}%g" \
|
||||
-e "s%\@TERMUX_PREFIX\@%${TERMUX_PREFIX}%g" \
|
||||
"$patch" | patch --silent -p1
|
||||
done
|
||||
}
|
||||
|
||||
termux_step_extract_into_massagedir() {
|
||||
mkdir -p $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/lib \
|
||||
$TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/include
|
||||
|
||||
cp -Rf $TERMUX_STANDALONE_TOOLCHAIN/sysroot/usr/include/* \
|
||||
cp -Rf sysroot/usr/include/* \
|
||||
$TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/include
|
||||
|
||||
# replace vulkan headers with upstream version
|
||||
@@ -25,11 +41,11 @@ termux_step_extract_into_massagedir() {
|
||||
# replace ICU headers with upstream version
|
||||
rm -rf $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/include/unicode
|
||||
|
||||
patch -d $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/include/c++/v1 -p1 < $TERMUX_PKG_BUILDER_DIR/math-header.diff
|
||||
patch -d $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/include/c++/v1 -p1 < $TERMUX_PKG_BUILDER_DIR/math-header.diff
|
||||
# disable for now
|
||||
# patch -d $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/ -p1 < $TERMUX_PKG_BUILDER_DIR/gcc_fixes.diff
|
||||
|
||||
cp $TERMUX_STANDALONE_TOOLCHAIN/sysroot/usr/lib/$TERMUX_HOST_PLATFORM/$TERMUX_PKG_API_LEVEL/*.o \
|
||||
cp sysroot/usr/lib/$TERMUX_HOST_PLATFORM/$TERMUX_PKG_API_LEVEL/*.o \
|
||||
$TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/lib
|
||||
|
||||
if [ $TERMUX_ARCH == "i686" ]; then
|
||||
@@ -42,7 +58,7 @@ termux_step_extract_into_massagedir() {
|
||||
|
||||
cp $LIBATOMIC/libatomic.a $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/lib/
|
||||
|
||||
cp $TERMUX_STANDALONE_TOOLCHAIN/sysroot/usr/lib/$TERMUX_HOST_PLATFORM/libcompiler_rt-extras.a $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/lib/
|
||||
cp sysroot/usr/lib/$TERMUX_HOST_PLATFORM/libcompiler_rt-extras.a $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/lib/
|
||||
# librt and libpthread are built into libc on android, so setup them as symlinks
|
||||
# to libc for compatibility with programs that users try to build:
|
||||
local _SYSTEM_LIBDIR=/system/lib64
|
||||
@@ -52,7 +68,7 @@ termux_step_extract_into_massagedir() {
|
||||
NDK_ARCH=$TERMUX_ARCH
|
||||
test $NDK_ARCH == 'i686' && NDK_ARCH='i386'
|
||||
# clang 13 requires libunwind on Android.
|
||||
cp $TERMUX_STANDALONE_TOOLCHAIN/lib64/clang/14.0.6/lib/linux/$NDK_ARCH/libunwind.a .
|
||||
cp lib64/clang/14.0.6/lib/linux/$NDK_ARCH/libunwind.a .
|
||||
|
||||
for lib in librt.so libpthread.so libutil.so; do
|
||||
echo 'INPUT(-lc)' > $TERMUX_PKG_MASSAGEDIR/$TERMUX_PREFIX/lib/$lib
|
||||
|
||||
Reference in New Issue
Block a user