diff options
author | SR_team | 2022-04-07 17:03:51 +0300 |
---|---|---|
committer | SR_team | 2022-04-08 18:14:35 +0300 |
commit | d919719ca26e3e0699e63c68225f18daf704ac54 (patch) | |
tree | 018e995bc3582517aebe8017ba84b56fabf2ae79 | |
download | aur-d919719ca26e3e0699e63c68225f18daf704ac54.tar.gz |
Initial commit
-rw-r--r-- | .SRCINFO | 25 | ||||
-rw-r--r-- | PKGBUILD | 66 | ||||
-rw-r--r-- | android-ndk-ollvm.hook | 10 | ||||
-rw-r--r-- | android-ndk-ollvm.install | 16 | ||||
-rwxr-xr-x | update_links.sh | 26 |
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" |