From 8d0289131861eb384daffd2fb20d5e054d06b438 Mon Sep 17 00:00:00 2001 From: CGDogan <126820728+CGDogan@users.noreply.github.com> Date: Thu, 14 Dec 2023 19:36:56 +0000 Subject: [PATCH 1/5] win --- .github/workflows/main.yml | 21 +++++++++++++++++++++ winarm64-xcompile-on-unix.sh | 21 +++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100755 winarm64-xcompile-on-unix.sh diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d7a1c4b..9e9648e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -62,6 +62,27 @@ jobs: name: artifacts-linux-x86_64 path: libjpeg-turbo/build/.libs/libturbojpeg.so if-no-files-found: error + build-linux-x86_64: + runs-on: ubuntu-latest + steps: + - name: Checkout repository and submodules + uses: actions/checkout@v3 + with: + submodules: recursive + - name: Build native code + run: | + ./winarm64-xcompile-on-unix.sh + - uses: actions/upload-artifact@v3 + if: failure() + with: + name: configure log + path: libjpeg-turbo/build/config.log + - name: Upload artifacts + uses: actions/upload-artifact@v2 + with: + name: artifacts-linux-x86_64 + path: libjpeg-turbo/build_winarm/.libs/libturbojpeg.dll + if-no-files-found: error build-windows-x86_64: runs-on: windows-latest steps: diff --git a/winarm64-xcompile-on-unix.sh b/winarm64-xcompile-on-unix.sh new file mode 100755 index 0000000..59e31e5 --- /dev/null +++ b/winarm64-xcompile-on-unix.sh @@ -0,0 +1,21 @@ +if [ ! -d "jdk" ]; then + # https://learn.microsoft.com/en-us/java/openjdk/download#openjdk-11 + wget https://aka.ms/download-jdk/microsoft-jdk-11.0.21-windows-aarch64.zip -O jdk.zip + unzip jdk.zip + rm jdk.zip + mv jdk-11.0.21+9 jdk +fi +export JAVA_HOME="${PWD}/jdk" +export CPPFLAGS="-I${JAVA_HOME}/include -I${JAVA_HOME}/include/win32" +export CC="zig cc -target aarch64-windows" +export CXX="zig c++ -target aarch64-windows" +export AR="zig ar" +export RANLIB="zig ranlib" +cd libjpeg-turbo +autoreconf -fiv +mkdir build_winarm +cd build_winarm +../configure --with-java --host aarch64-windows +make +zig cc -target aarch64-windows .libs/libturbojpeg.a -shared -o .libs/libturbojpeg.dll + From 1f59f2f3c931a21457632fa778afc6b595823e53 Mon Sep 17 00:00:00 2001 From: CGDogan <126820728+CGDogan@users.noreply.github.com> Date: Thu, 14 Dec 2023 19:53:04 +0000 Subject: [PATCH 2/5] Update main.yml --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 9e9648e..01086be 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -62,7 +62,7 @@ jobs: name: artifacts-linux-x86_64 path: libjpeg-turbo/build/.libs/libturbojpeg.so if-no-files-found: error - build-linux-x86_64: + build-linux-x86_64-2: runs-on: ubuntu-latest steps: - name: Checkout repository and submodules From 850004fe6f9302b383dedb684dcd8e7feaa854a3 Mon Sep 17 00:00:00 2001 From: CGDogan <126820728+CGDogan@users.noreply.github.com> Date: Fri, 15 Dec 2023 19:02:49 +0000 Subject: [PATCH 3/5] Update main.yml --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 01086be..1eb4cbc 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -70,6 +70,7 @@ jobs: with: submodules: recursive - name: Build native code + uses: goto-bus-stop/setup-zig@v2 run: | ./winarm64-xcompile-on-unix.sh - uses: actions/upload-artifact@v3 From 2d51239f8403a36e5f18ae81490b5f712e9bfad8 Mon Sep 17 00:00:00 2001 From: CGDogan <126820728+CGDogan@users.noreply.github.com> Date: Fri, 15 Dec 2023 19:05:31 +0000 Subject: [PATCH 4/5] Update main.yml --- .github/workflows/main.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1eb4cbc..432e13a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -69,8 +69,9 @@ jobs: uses: actions/checkout@v3 with: submodules: recursive - - name: Build native code + - name: Setup Zig uses: goto-bus-stop/setup-zig@v2 + - name: Build native code run: | ./winarm64-xcompile-on-unix.sh - uses: actions/upload-artifact@v3 From ae6b60665d2fe5ddba6ed84061e10b1006a7d25e Mon Sep 17 00:00:00 2001 From: CGDogan <126820728+CGDogan@users.noreply.github.com> Date: Fri, 15 Dec 2023 19:18:59 +0000 Subject: [PATCH 5/5] Rename --- .github/workflows/main.yml | 9 +++++---- jar-pack.sh | 2 ++ winarm64-xcompile-on-unix.sh | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 432e13a..8b0a3c9 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -62,7 +62,7 @@ jobs: name: artifacts-linux-x86_64 path: libjpeg-turbo/build/.libs/libturbojpeg.so if-no-files-found: error - build-linux-x86_64-2: + build-windows-arm64-xcompile-linux: runs-on: ubuntu-latest steps: - name: Checkout repository and submodules @@ -82,8 +82,8 @@ jobs: - name: Upload artifacts uses: actions/upload-artifact@v2 with: - name: artifacts-linux-x86_64 - path: libjpeg-turbo/build_winarm/.libs/libturbojpeg.dll + name: artifacts-windows-arm64 + path: libjpeg-turbo/build_winarm/.libs/libturbojpeg-arm64.dll if-no-files-found: error build-windows-x86_64: runs-on: windows-latest @@ -117,7 +117,7 @@ jobs: path: libjpeg-turbo/build/**/turbojpeg.dll if-no-files-found: error build-package: - needs: [build-macos-x86_64, build-windows-x86_64, build-linux-x86_64] + needs: [build-macos-x86_64, build-windows-x86_64, build-linux-x86_64, build-windows-x86_64] runs-on: ubuntu-latest env: gradle_commands: --stacktrace clean jar @@ -180,5 +180,6 @@ jobs: files: | artifacts-macos-x86_64/*.dylib artifacts-linux-x86_64/*.so + artifacts-windows-arm64/*.dll artifacts-windows-x86_64/Debug/*.dll libjpeg-turbo-java/*.jar diff --git a/jar-pack.sh b/jar-pack.sh index 7fc49e9..5d396fb 100755 --- a/jar-pack.sh +++ b/jar-pack.sh @@ -15,6 +15,8 @@ mkdir -p META-INF/lib/osx_64 mv ../../artifacts-macos-x86_64/libturbojpeg.dylib META-INF/lib/osx_64/ mkdir -p META-INF/lib/linux_64 mv ../../artifacts-linux-x86_64/libturbojpeg.so META-INF/lib/linux_64/ +mkdir -p META-INF/lib/windows_arm64 +mv ../../artifacts-windows-arm64/libturbojpeg.dll META-INF/lib/windows_arm64/ # repack the jar file to include the native libraries jar uvvf libjpeg-turbo*.jar META-INF/lib/* diff --git a/winarm64-xcompile-on-unix.sh b/winarm64-xcompile-on-unix.sh index 59e31e5..cce31bb 100755 --- a/winarm64-xcompile-on-unix.sh +++ b/winarm64-xcompile-on-unix.sh @@ -17,5 +17,5 @@ mkdir build_winarm cd build_winarm ../configure --with-java --host aarch64-windows make -zig cc -target aarch64-windows .libs/libturbojpeg.a -shared -o .libs/libturbojpeg.dll +zig cc -target aarch64-windows .libs/libturbojpeg.a -shared -o .libs/libturbojpeg-arm64.dll