diff --git a/Jenkinsfile b/Jenkinsfile index b8f3e049e3b..51bc8c73c9e 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -48,6 +48,18 @@ spec: /** Returns the download URL of the JDK against whoose C headers (in the 'include/' folder) and native libaries the natives are compiled.*/ def getNativeJdkUrl(String os, String arch) { // To update the used JDK version update the URL template below + if('win32'.equals(os) && 'aarch64'.equals(arch)) { + // Temporary workaround until there are official Temurin GA releases for Windows on ARM that can be consumed through JustJ + dir("${WORKSPACE}/repackage-win32.aarch64-jdk") { + sh """ + curl -L 'https://github.com/adoptium/temurin17-binaries/releases/download/jdk17u-2024-02-07-14-14-beta/OpenJDK17U-jdk_aarch64_windows_hotspot_2024-02-07-14-14.zip' > jdk.zip + unzip -q jdk.zip jdk-17.0.11+1/include/** jdk-17.0.11+1/lib/** + cd jdk-17.0.11+1 + tar -czf ../jdk.tar.gz include/ lib/ + """ + } + return "file://${WORKSPACE}/repackage-win32.aarch64-jdk/jdk.tar.gz" + } return "https://download.eclipse.org/justj/jres/17/downloads/20230428_1804/org.eclipse.justj.openjdk.hotspot.jre.minimal.stripped-17.0.7-${os}-${arch}.tar.gz" } @@ -169,7 +181,7 @@ pipeline { axes { axis { name 'PLATFORM' - values 'cocoa.macosx.aarch64' , 'cocoa.macosx.x86_64', 'gtk.linux.aarch64', 'gtk.linux.ppc64le', 'gtk.linux.x86_64', 'win32.win32.x86_64' + values 'cocoa.macosx.aarch64' , 'cocoa.macosx.x86_64', 'gtk.linux.aarch64', 'gtk.linux.ppc64le', 'gtk.linux.x86_64', 'win32.win32.aarch64', 'win32.win32.x86_64' } } stages { diff --git a/bundles/org.eclipse.equinox.launcher.win32.win32.aarch64/.project b/bundles/org.eclipse.equinox.launcher.win32.win32.aarch64/.project new file mode 100644 index 00000000000..16d793ae401 --- /dev/null +++ b/bundles/org.eclipse.equinox.launcher.win32.win32.aarch64/.project @@ -0,0 +1,22 @@ + + + org.eclipse.equinox.launcher.win32.win32.aarch64 + + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + + diff --git a/bundles/org.eclipse.equinox.launcher.win32.win32.aarch64/.settings/org.eclipse.core.resources.prefs b/bundles/org.eclipse.equinox.launcher.win32.win32.aarch64/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000000..99f26c0203a --- /dev/null +++ b/bundles/org.eclipse.equinox.launcher.win32.win32.aarch64/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/bundles/org.eclipse.equinox.launcher.win32.win32.aarch64/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.launcher.win32.win32.aarch64/META-INF/MANIFEST.MF new file mode 100644 index 00000000000..ca2e6ee4211 --- /dev/null +++ b/bundles/org.eclipse.equinox.launcher.win32.win32.aarch64/META-INF/MANIFEST.MF @@ -0,0 +1,10 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: %pluginName +Bundle-Vendor: %providerName +Bundle-SymbolicName: org.eclipse.equinox.launcher.win32.win32.aarch64;singleton:=true +Bundle-Version: 1.2.1000.qualifier +Fragment-Host: org.eclipse.equinox.launcher;bundle-version="[1.5.0,1.7.0)" +Eclipse-PlatformFilter: (& (osgi.ws=win32) (osgi.os=win32) (osgi.arch=aarch64)) +Bundle-Localization: launcher.win32.win32.aarch64 +Eclipse-BundleShape: dir diff --git a/bundles/org.eclipse.equinox.launcher.win32.win32.aarch64/about.html b/bundles/org.eclipse.equinox.launcher.win32.win32.aarch64/about.html new file mode 100644 index 00000000000..164f781a8fd --- /dev/null +++ b/bundles/org.eclipse.equinox.launcher.win32.win32.aarch64/about.html @@ -0,0 +1,36 @@ + + + + +About + + +

About This Content

+ +

November 30, 2017

+

License

+ +

+ The Eclipse Foundation makes available all content in this plug-in + ("Content"). Unless otherwise indicated below, the Content + is provided to you under the terms and conditions of the Eclipse + Public License Version 2.0 ("EPL"). A copy of the EPL is + available at http://www.eclipse.org/legal/epl-2.0. + For purposes of the EPL, "Program" will mean the Content. +

+ +

+ If you did not receive this Content directly from the Eclipse + Foundation, the Content is being redistributed by another party + ("Redistributor") and different terms and conditions may + apply to your use of any object code in the Content. Check the + Redistributor's license that was provided with the Content. If no such + license exists, contact the Redistributor. Unless otherwise indicated + below, the terms and conditions of the EPL still apply to any source + code in the Content and such source code may be obtained at http://www.eclipse.org. +

+ + + \ No newline at end of file diff --git a/bundles/org.eclipse.equinox.launcher.win32.win32.aarch64/build.properties b/bundles/org.eclipse.equinox.launcher.win32.win32.aarch64/build.properties new file mode 100644 index 00000000000..4645e126913 --- /dev/null +++ b/bundles/org.eclipse.equinox.launcher.win32.win32.aarch64/build.properties @@ -0,0 +1,25 @@ +############################################################################### +# Copyright (c) 2023, 2024 Eclipse Foundation. +# +# This program and the accompanying materials +# are made available under the terms of the Eclipse Public License 2.0 +# which accompanies this distribution, and is available at +# https://www.eclipse.org/legal/epl-2.0/ +# +# SPDX-License-Identifier: EPL-2.0 +# +# Contributors: +# Tue Ton - initial API and implementation +############################################################################### +bin.includes = META-INF/,\ + launcher.win32.win32.aarch64.properties,\ + about.html + +generateSourceBundle=false +binaryTag=LBv1-1901 + +# Maven properties, see https://github.com/eclipse/tycho/wiki/Tycho-Pomless +tycho.pomless.parent = ../../launcher-binary-parent +pom.model.property.os = win32 +pom.model.property.ws = win32 +pom.model.property.arch = aarch64 diff --git a/bundles/org.eclipse.equinox.launcher.win32.win32.aarch64/launcher.win32.win32.aarch64.properties b/bundles/org.eclipse.equinox.launcher.win32.win32.aarch64/launcher.win32.win32.aarch64.properties new file mode 100644 index 00000000000..df45f1edbf9 --- /dev/null +++ b/bundles/org.eclipse.equinox.launcher.win32.win32.aarch64/launcher.win32.win32.aarch64.properties @@ -0,0 +1,15 @@ +############################################################################### +# Copyright (c) 2023, 2024 Eclipse Foundation. +# +# This program and the accompanying materials +# are made available under the terms of the Eclipse Public License 2.0 +# which accompanies this distribution, and is available at +# https://www.eclipse.org/legal/epl-2.0/ +# +# SPDX-License-Identifier: EPL-2.0 +# +# Contributors: +# Tue Ton - initial API and implementation +############################################################################### +pluginName = Equinox Launcher Win32 Arm64 Fragment +providerName = Eclipse.org - Equinox diff --git a/features/org.eclipse.equinox.executable.feature/build.properties b/features/org.eclipse.equinox.executable.feature/build.properties index 2ab3c26d5fd..f385478239b 100644 --- a/features/org.eclipse.equinox.executable.feature/build.properties +++ b/features/org.eclipse.equinox.executable.feature/build.properties @@ -21,6 +21,9 @@ bin.includes = bin/,\ ####Even though marked as custom, the content of the build.properties needs to be updated to ensure correctness of RCP app exported #root.permissions.755=${launcherName} +root.win32.win32.aarch64=bin/win32/win32/aarch64 +root.win32.win32.aarch64.permissions.755=launcher.exe + root.win32.win32.x86_64=bin/win32/win32/x86_64 root.win32.win32.x86_64.permissions.755=launcher.exe diff --git a/features/org.eclipse.equinox.executable.feature/feature.xml b/features/org.eclipse.equinox.executable.feature/feature.xml index dfeaaaafa6a..12beb75c5a0 100755 --- a/features/org.eclipse.equinox.executable.feature/feature.xml +++ b/features/org.eclipse.equinox.executable.feature/feature.xml @@ -65,6 +65,13 @@ arch="x86_64" version="0.0.0"/> + + + + + org.eclipse.tycho + target-platform-configuration + + + + win32 + win32 + aarch64 + + + + @@ -125,6 +139,7 @@ + diff --git a/features/org.eclipse.equinox.executable.feature/resources/build.properties b/features/org.eclipse.equinox.executable.feature/resources/build.properties index 731763910b9..b938365beef 100644 --- a/features/org.eclipse.equinox.executable.feature/resources/build.properties +++ b/features/org.eclipse.equinox.executable.feature/resources/build.properties @@ -17,6 +17,9 @@ custom = true ####Even though marked as custom, the content of the build.properties needs to be updated to ensure correctness of RCP app exported root.permissions.755=${launcherName} +root.win32.win32.aarch64=file:bin/win32/win32/aarch64/launcher.exe +root.win32.win32.aarch64.permissions.755=launcher.exe + root.win32.win32.x86_64=file:bin/win32/win32/x86_64/launcher.exe root.win32.win32.x86_64.permissions.755=launcher.exe diff --git a/features/org.eclipse.equinox.executable.feature/resources/build.xml b/features/org.eclipse.equinox.executable.feature/resources/build.xml index b55147fb77e..ecf01b4fd0d 100644 --- a/features/org.eclipse.equinox.executable.feature/resources/build.xml +++ b/features/org.eclipse.equinox.executable.feature/resources/build.xml @@ -48,6 +48,16 @@ + + + + + + + + + + @@ -152,6 +162,7 @@ + diff --git a/pom.xml b/pom.xml index 68986ce3ddb..0eccb4c8a4e 100644 --- a/pom.xml +++ b/pom.xml @@ -219,6 +219,7 @@ bundles/org.eclipse.equinox.launcher.gtk.linux.aarch64 bundles/org.eclipse.equinox.launcher.gtk.linux.ppc64le bundles/org.eclipse.equinox.launcher.gtk.linux.x86_64 + bundles/org.eclipse.equinox.launcher.win32.win32.aarch64 bundles/org.eclipse.equinox.launcher.win32.win32.x86_64 bundles/org.eclipse.equinox.launcher.tests