summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorSR_team2022-04-07 17:03:51 +0300
committerSR_team2022-04-08 18:14:35 +0300
commitd919719ca26e3e0699e63c68225f18daf704ac54 (patch)
tree018e995bc3582517aebe8017ba84b56fabf2ae79
downloadaur-d919719ca26e3e0699e63c68225f18daf704ac54.tar.gz
Initial commit
-rw-r--r--.SRCINFO25
-rw-r--r--PKGBUILD66
-rw-r--r--android-ndk-ollvm.hook10
-rw-r--r--android-ndk-ollvm.install16
-rwxr-xr-xupdate_links.sh26
5 files changed, 143 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..82d867adb034
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,25 @@
+pkgbase = android-ndk-ollvm
+ pkgdesc = Obfuscated llvm for Android NDK
+ pkgver = 14.0.1
+ pkgrel = 1
+ url = https://github.com/sr-tream/obfuscator
+ install = android-ndk-ollvm.install
+ arch = x86_64
+ license = GPL
+ license = LGPL
+ license = custom
+ makedepends = cmake
+ makedepends = clang
+ makedepends = lld
+ depends = android-ndk>=r23
+ replaces = android-ndk64-ollvm
+ options = !strip
+ options = staticlibs
+ source = update_links.sh
+ source = android-ndk-ollvm.hook
+ source = git+https://github.com/sr-tream/obfuscator.git#branch=release/14.x
+ sha256sums = 8b644e42e6e33a607bcf2529c034007ee8bf2c3980f40c9da21cfc9450a4e7f5
+ sha256sums = 4ff51c89e7b047b0ca396c829fa5dbbf572559f15cefdf6d14e56251e208c5e9
+ sha256sums = SKIP
+
+pkgname = android-ndk-ollvm
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..92255bb5148d
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,66 @@
+pkgname=android-ndk-ollvm
+pkgver=14.0.1
+pkgrel=1
+pkgdesc='Obfuscated llvm for Android NDK. It install LLVM with obfuscation support outside of android-ndk and use symlinks to NDK. Symlinks updates automaticly (via pacman hooks) on each android-ndk upgrade'
+arch=('x86_64')
+url='https://github.com/sr-tream/obfuscator'
+license=('GPL' 'LGPL' 'custom')
+options=('!strip' '!staticlibs')
+install="$pkgname.install"
+replaces=('android-ndk64-ollvm')
+depends=('android-ndk>=r23')
+makedepends=('cmake' 'clang' 'lld')
+source=("update_links.sh"
+ "${pkgname}.hook"
+ "git+${url}.git#branch=release/14.x")
+sha256sums=('8b644e42e6e33a607bcf2529c034007ee8bf2c3980f40c9da21cfc9450a4e7f5'
+ '4ff51c89e7b047b0ca396c829fa5dbbf572559f15cefdf6d14e56251e208c5e9'
+ 'SKIP')
+
+prepare() {
+ cd ${srcdir}/obfuscator
+ git submodule update --init llvm-project
+ cd - && cd ${srcdir}/obfuscator/llvm-project
+ git apply ../obfuscator.patch
+ cd -
+}
+
+build() {
+ mkdir {build,install}
+
+ if ! command -v ccache &> /dev/null
+ then
+ cmake -B build -S "${srcdir}/obfuscator/llvm-project/llvm" \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DLLVM_ENABLE_PROJECTS="clang;lld" \
+ -DLLVM_ENABLE_LLD=ON \
+ -DLLVM_STATIC_LINK_CXX_STDLIB=ON \
+ -DLLVM_TARGETS_TO_BUILD="ARM;AArch64;X86"
+ else
+ cmake -B build -S "${srcdir}/obfuscator/llvm-project/llvm" \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DLLVM_ENABLE_PROJECTS="clang;lld" \
+ -DLLVM_ENABLE_LLD=ON \
+ -DLLVM_STATIC_LINK_CXX_STDLIB=ON \
+ -DLLVM_TARGETS_TO_BUILD="ARM;AArch64;X86" \
+ -DLLVM_CCACHE_BUILD=ON
+ fi
+
+ cmake --build build --parallel
+ cmake --install build --prefix install
+
+ ln -s install/bin/ld.lld install/bin/ld
+}
+
+package() {
+ install -Ddm755 "$pkgdir/opt/${pkgname}"
+ install -Ddm755 "$pkgdir/usr/share/libalpm/hooks"
+
+ install -Dm755 update_links.sh -t "$pkgdir/opt/${pkgname}/"
+ install -Dm644 ${pkgname}.hook -t "$pkgdir/usr/share/libalpm/hooks/"
+
+ install -Ddm755 "$pkgdir/opt/${pkgname}/toolchains/llvm/prebuilt/linux-x86_64"
+
+ cp -r install/bin "$pkgdir/opt/${pkgname}/toolchains/llvm/prebuilt/linux-x86_64"
+ cp -r install/lib "$pkgdir/opt/${pkgname}/toolchains/llvm/prebuilt/linux-x86_64"
+}
diff --git a/android-ndk-ollvm.hook b/android-ndk-ollvm.hook
new file mode 100644
index 000000000000..a041d06219db
--- /dev/null
+++ b/android-ndk-ollvm.hook
@@ -0,0 +1,10 @@
+[Trigger]
+Operation=Upgrade
+Type=Package
+Target=android-ndk
+Target=android-ndk-*
+
+[Action]
+Description = Update symlinks
+When=PostTransaction
+Exec=/opt/android-ndk-ollvm/update_links.sh
diff --git a/android-ndk-ollvm.install b/android-ndk-ollvm.install
new file mode 100644
index 000000000000..ab7229141586
--- /dev/null
+++ b/android-ndk-ollvm.install
@@ -0,0 +1,16 @@
+post_install() {
+ /opt/android-ndk-ollvm/update_links.sh
+}
+
+post_upgrade() {
+ /opt/android-ndk-ollvm/update_links.sh
+}
+
+pre_remove() {
+ rm /opt/android-ndk-ollvm/build
+ rm /opt/android-ndk-ollvm/source.properties
+ rm /opt/android-ndk-ollvm/toolchains/llvm/prebuilt/linux-x86_64/sysroot
+
+ ollvm_ver=`${OLLVM_PATH}/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --version | head -1 | awk {'print $3'}`
+ rm /opt/android-ndk-ollvm/toolchains/llvm/prebuilt/linux-x86_64/lib/clang/${ollvm_ver}/lib
+}
diff --git a/update_links.sh b/update_links.sh
new file mode 100755
index 000000000000..aca43d758d07
--- /dev/null
+++ b/update_links.sh
@@ -0,0 +1,26 @@
+#!/usr/bin/bash
+
+: ${ANDROID_NDK:="/opt/android-ndk"}
+OLLVM_PATH="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+
+processPath(){
+ ndk_path=$2
+ if [[ $ndk_path == "" ]]; then
+ ndk_path=$1
+ fi
+ linkTo=`readlink "${OLLVM_PATH}/$1"`
+ if [[ $linkTo == "${ANDROID_NDK}/$ndk_path" ]]; then
+ return
+ fi
+ echo "Update path for ${OLLVM_PATH}/$1 -> ${ANDROID_NDK}/$ndk_path"
+ rm "${OLLVM_PATH}/$1"
+ ln -s "${ANDROID_NDK}/$ndk_path" "${OLLVM_PATH}/$1"
+}
+
+processPath "build"
+processPath "source.properties"
+processPath "toolchains/llvm/prebuilt/linux-x86_64/sysroot"
+
+ollvm_ver=`${OLLVM_PATH}/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --version | head -1 | awk {'print $3'}`
+andllvm_ver=`${ANDROID_NDK}/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --version | head -1 | awk {'print $8'}`
+processPath "toolchains/llvm/prebuilt/linux-x86_64/lib/clang/${ollvm_ver}/lib" "toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/${andllvm_ver}/lib"