mirror of
https://github.com/termux/termux-packages.git
synced 2025-10-31 23:56:05 +00:00
82 lines
3.2 KiB
Bash
82 lines
3.2 KiB
Bash
TERMUX_PKG_HOMEPAGE=https://github.com/vadimcn/codelldb
|
|
TERMUX_PKG_DESCRIPTION="A native debugger extension for VSCode based on LLDB"
|
|
TERMUX_PKG_LICENSE="MIT"
|
|
TERMUX_PKG_MAINTAINER="@termux"
|
|
TERMUX_PKG_VERSION="1.11.8"
|
|
TERMUX_PKG_SRCURL="https://github.com/vadimcn/codelldb/archive/refs/tags/v${TERMUX_PKG_VERSION}.tar.gz"
|
|
TERMUX_PKG_SHA256=ea6a2d61a9d61fed6bdc0568851a5c95c1873bf0e088e509d6ee3743f85da1be
|
|
TERMUX_PKG_AUTO_UPDATE=true
|
|
# codelldb does not work properly on 32-bit Android
|
|
TERMUX_PKG_EXCLUDED_ARCHES="arm, i686"
|
|
TERMUX_PKG_DEPENDS="lldb"
|
|
TERMUX_CMAKE_BUILD="Unix Makefiles"
|
|
TERMUX_PKG_EXTRA_MAKE_ARGS="vsix_full"
|
|
|
|
termux_step_pre_configure() {
|
|
termux_setup_nodejs
|
|
termux_setup_rust
|
|
|
|
# codelldb is a project that uses CMake in a slightly nonstandard way
|
|
# (there is a place where the CMake build directory is hardcoded to
|
|
# "[source directory]/build")
|
|
# upstream only supports their official releases and not custom builds,
|
|
# so this is not planned to be fixed upstream
|
|
patch="$TERMUX_PKG_BUILDER_DIR/fix-tsconfig-cmake-builddir-path.diff"
|
|
echo "Applying patch: $(basename "$patch")"
|
|
test -f "$patch" && sed \
|
|
-e "s%\@TERMUX_PKG_BUILDDIR\@%${TERMUX_PKG_BUILDDIR}%g" \
|
|
"$patch" | patch --silent -p1 -d"$TERMUX_PKG_SRCDIR"
|
|
|
|
patch="$TERMUX_PKG_BUILDER_DIR/move-adapter-outside-vsix.diff"
|
|
echo "Applying patch: $(basename "$patch")"
|
|
test -f "$patch" && sed \
|
|
-e "s%\@TERMUX_PREFIX\@%${TERMUX_PREFIX}%g" \
|
|
-e "s%\@TERMUX_PYTHON_HOME\@%${TERMUX_PYTHON_HOME}%g" \
|
|
"$patch" | patch --silent -p1 -d"$TERMUX_PKG_SRCDIR"
|
|
|
|
case $TERMUX_ARCH in
|
|
"aarch64") VSIX_ARCH="arm64";;
|
|
"x86_64") VSIX_ARCH="x64";;
|
|
*) termux_error_exit "${TERMUX_ARCH} is not a supported architecture."
|
|
esac
|
|
|
|
: "${CARGO_HOME:=$HOME/.cargo}"
|
|
export CARGO_HOME
|
|
rm -rf "$CARGO_HOME"/git/checkouts/weaklink-*
|
|
|
|
cargo fetch --target "${CARGO_TARGET_NAME}"
|
|
|
|
for dir in "$CARGO_HOME"/git/checkouts/weaklink-*/*; do
|
|
patch --silent -p1 \
|
|
-d "$dir" \
|
|
< "$TERMUX_PKG_BUILDER_DIR"/weaklink-android.diff
|
|
done
|
|
|
|
# goes with CMakeLists.txt.patch
|
|
TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" -DCARGO_TARGET_NAME=$CARGO_TARGET_NAME -DVSIX_PLATFORM=linux-$VSIX_ARCH"
|
|
|
|
# avoids 'gyp: Undefined variable android_ndk_path in binding.gyp while trying to load binding.gyp'
|
|
export GYP_DEFINES="android_ndk_path=''"
|
|
}
|
|
|
|
termux_step_make_install() {
|
|
# adapter binary and launcher binary for main package
|
|
install -Dm700 -t "$TERMUX_PREFIX/bin" "$TERMUX_PKG_BUILDDIR/adapter/codelldb"
|
|
install -Dm700 -t "$TERMUX_PREFIX/bin" "$TERMUX_PKG_BUILDDIR/bin/codelldb-launch"
|
|
|
|
# python module for main package
|
|
local codelldb_python_dest="$TERMUX_PYTHON_HOME/site-packages/codelldb/"
|
|
rm -rf "$codelldb_python_dest"
|
|
mkdir -p "$codelldb_python_dest"
|
|
cp -r "$TERMUX_PKG_BUILDDIR"/adapter/scripts/codelldb/* "$codelldb_python_dest"
|
|
install -Dm644 -t "$codelldb_python_dest" "$TERMUX_PKG_BUILDDIR/adapter/scripts/debugger.py"
|
|
|
|
# .vsix file for vsix-package-codelldb
|
|
install -DTm644 "$TERMUX_PKG_BUILDDIR/codelldb-full.vsix" \
|
|
"$TERMUX_PREFIX/opt/vsix-packages/codelldb-$TERMUX_PKG_FULLVERSION.vsix"
|
|
|
|
# subpackage file for code-oss-extension-codelldb
|
|
install -DTm644 "$TERMUX_PKG_SRCDIR/LICENSE" \
|
|
"$TERMUX_PREFIX/share/doc/code-oss-extension-codelldb/copyright"
|
|
}
|