From 1de31a1feed008c301fc0849c8a37c7ad40dc3b0 Mon Sep 17 00:00:00 2001 From: GuilhermeWerner <26710260+GuilhermeWerner@users.noreply.github.com> Date: Sun, 18 Jul 2021 14:02:30 -0300 Subject: [PATCH] Migrate Package Script to Python --- Scripts/Package.ps1 | 46 +++++-------------------- Scripts/Package.py | 83 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 91 insertions(+), 38 deletions(-) create mode 100644 Scripts/Package.py diff --git a/Scripts/Package.ps1 b/Scripts/Package.ps1 index 8babb3f..3261a3c 100755 --- a/Scripts/Package.ps1 +++ b/Scripts/Package.ps1 @@ -1,40 +1,10 @@ #!/usr/bin/env pwsh -echo "Building Native Library" - -cargo build --release - -echo "Building JVM Library" - -./gradlew :library:build -./gradlew :library:jar - -New-Item -Path "./Release" -ItemType Directory -Force -New-Item -Path "./Release/Windows" -ItemType Directory -Force -New-Item -Path "./Release/Mac" -ItemType Directory -Force -New-Item -Path "./Release/Linux" -ItemType Directory -Force - -Copy-Item -Path "./library/build/libs/library-0.0.1.jar" -Destination "./Release/TribuFu.jar" -Recurse -Force -Copy-Item -Path "./Binaries/release/TribuFu_Jvm.dll" -Destination "./Release/Windows/TribuFu_Jvm.dll" -Recurse -Force - -echo "Building Android Library" - -cargo ndk -t armeabi-v7a -t arm64-v8a -t x86 -t x86_64 build --release - -New-Item -Path "./android/src/main/jniLibs" -ItemType Directory -Force -New-Item -Path "./android/src/main/jniLibs/arm64-v8a" -ItemType Directory -Force -New-Item -Path "./android/src/main/jniLibs/armeabi-v7a" -ItemType Directory -Force -New-Item -Path "./android/src/main/jniLibs/x86_64" -ItemType Directory -Force -New-Item -Path "./android/src/main/jniLibs/x86" -ItemType Directory -Force - -Copy-Item -Path "./Binaries/aarch64-linux-android/release/libTribuFu_Jvm.so" -Destination "./android/src/main/jniLibs/arm64-v8a/libTribuFu_Jvm.so" -Recurse -Force -Copy-Item -Path "./Binaries/armv7-linux-androideabi/release/libTribuFu_Jvm.so" -Destination "./android/src/main/jniLibs/armeabi-v7a/libTribuFu_Jvm.so" -Recurse -Force -Copy-Item -Path "./Binaries/x86_64-linux-android/release/libTribuFu_Jvm.so" -Destination "./android/src/main/jniLibs/x86_64/libTribuFu_Jvm.so" -Recurse -Force -Copy-Item -Path "./Binaries/i686-linux-android/release/libTribuFu_Jvm.so" -Destination "./android/src/main/jniLibs/x86/libTribuFu_Jvm.so" -Recurse -Force - -New-Item -Path "./android/libs" -ItemType Directory -Force -Copy-Item -Path "./Release/TribuFu.jar" -Destination "./android/libs/TribuFu.jar" -Recurse -Force - -./gradlew :android:build - -Copy-Item -Path "./android/build/outputs/aar/android-release.aar" -Destination "./Release/TribuFu.aar" -Recurse -Force +if ($IsWindows) +{ + python ./Scripts/Package.py +} +else +{ + python3 ./Scripts/Package.py +} diff --git a/Scripts/Package.py b/Scripts/Package.py new file mode 100644 index 0000000..1496dab --- /dev/null +++ b/Scripts/Package.py @@ -0,0 +1,83 @@ +#!/usr/bin/env python3 + +import os +import subprocess +import platform +import shutil + +from pathlib import Path + +Path("./Release").mkdir(parents=True, exist_ok=True) + +if os.path.exists("./Release/Windows"): + shutil.rmtree("./Release/Windows") + +Path("./Release/Windows").mkdir(parents=True, exist_ok=True) + +if os.path.exists("./Release/Mac"): + shutil.rmtree("./Release/Mac") + +Path("./Release/Mac").mkdir(parents=True, exist_ok=True) + +if os.path.exists("./Release/Linux"): + shutil.rmtree("./Release/Linux") + +Path("./Release/Linux").mkdir(parents=True, exist_ok=True) + +print("Building Native Library") + +os.system("cargo build --release") + +# Windows + +if platform.system() == "Windows": + shutil.copy2("./Binaries/release/TribuFu_Jvm.dll", "./Release/Windows/TribuFu_Jvm.dll") + +# Mac + +elif platform.system() == "Mac": + shutil.copy2("./Binaries/release/libTribuFu_Jvm.dylib", "./Release/Windows/libTribuFu_Jvm.dylib") + +# Linux + +elif platform.system() == "Linux": + shutil.copy2("./Binaries/release/libTribuFu_Jvm.so", "./Release/Windows/libTribuFu_Jvm.so") + +# Android + +os.system("cargo ndk -t armeabi-v7a -t arm64-v8a -t x86 -t x86_64 build --release") + +Path("./android/src/main/jniLibs").mkdir(parents=True, exist_ok=True) +Path("./android/src/main/jniLibs/arm64-v8a").mkdir(parents=True, exist_ok=True) +Path("./android/src/main/jniLibs/armeabi-v7a").mkdir(parents=True, exist_ok=True) +Path("./android/src/main/jniLibs/x86_64").mkdir(parents=True, exist_ok=True) +Path("./android/src/main/jniLibs/x86").mkdir(parents=True, exist_ok=True) + +shutil.copy2("./Binaries/aarch64-linux-android/release/libTribuFu_Jvm.so", "./android/src/main/jniLibs/arm64-v8a/libTribuFu_Jvm.so") +shutil.copy2("./Binaries/armv7-linux-androideabi/release/libTribuFu_Jvm.so", "./android/src/main/jniLibs/armeabi-v7a/libTribuFu_Jvm.so" ) +shutil.copy2("./Binaries/x86_64-linux-android/release/libTribuFu_Jvm.so", "./android/src/main/jniLibs/x86_64/libTribuFu_Jvm.so") +shutil.copy2("./Binaries/i686-linux-android/release/libTribuFu_Jvm.so", "./android/src/main/jniLibs/x86/libTribuFu_Jvm.so") + +print("Building JVM Library") + +if platform.system() == "Windows": + subprocess.run("gradlew.bat :library:build") + subprocess.run("gradlew.bat :library:jar") +else: + subprocess.run("./gradlew :library:build") + subprocess.run("./gradlew :library:jar") + +shutil.copy2("./library/build/libs/library-0.0.1.jar", "./Release/TribuFu.jar") + +print("Building Android Library") + +Path("./android/libs").mkdir(parents=True, exist_ok=True) + +shutil.copy2("./Release/TribuFu.jar", "./android/libs/TribuFu.jar") + +if platform.system() == "Windows": + subprocess.run("gradlew.bat :android:build") +else: + subprocess.run("./gradlew :android:build") + +shutil.copy2("./android/build/outputs/aar/android-release.aar", "./Release/TribuFu.aar")