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..ebe0fb7347a --- /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.900.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..662e2fa2d8e --- /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=v20240129-1338 + +# 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"/> + + ] [clean] -@rem -@rem where the optional switches are: -@rem -output - executable filename ("eclipse") -@rem -library - dll filename (eclipse.dll) -@rem -os - default Eclipse "-os" value (qnx) -@rem -arch - default Eclipse "-arch" value (x86) -@rem -ws - default Eclipse "-ws" value (photon) -@rem -java - location of a Java SDK for JNI headers -@rem -@rem -@rem This script can also be invoked with the "clean" argument. -@rem -@rem NOTE: The C compiler needs to be setup. This script has been -@rem tested against Microsoft Visual C and C++ Compiler 6.0. -@rem -@rem Uncomment the lines below and edit MSVC_HOME to point to the -@rem correct root directory of the compiler installation, if you -@rem want this to be done by this script. -@rem -@rem ****** -@echo off - -IF EXIST C:\BUILD\swt-builddir set LAUNCHER_BUILDDIR=C:\BUILD\swt-builddir -IF x.%LAUNCHER_BUILDDIR%==x. set LAUNCHER_BUILDDIR=S:\swt-builddir -echo LAUNCHER build dir: %LAUNCHER_BUILDDIR% - -@rem Specify VisualStudio Edition: 'Community', 'Enterprise', 'Professional' etc. -IF "x.%MSVC_EDITION%"=="x." set "MSVC_EDITION=Community" - -@rem Specify VisualStudio Version: '2017' or newer '2019' -IF "x.%MSVC_VERSION%"=="x." set "MSVC_VERSION=2019" - -GOTO X86_64 - -:X86_64 -shift -set defaultOSArch=x86_64 -set PROCESSOR_ARCHITECTURE=AMD64 -IF NOT EXIST "%MSVC_HOME%" set "MSVC_HOME=%ProgramFiles(x86)%\Microsoft Visual Studio\%MSVC_VERSION%\BuildTools" -IF NOT EXIST "%MSVC_HOME%" set "MSVC_HOME=%ProgramFiles(x86)%\Microsoft Visual Studio\%MSVC_VERSION%\%MSVC_EDITION%" -IF EXIST "%MSVC_HOME%" ( - echo "Microsoft Visual Studio %MSVC_VERSION% dir: %MSVC_HOME%" -) ELSE ( - echo "WARNING: Microsoft Visual Studio %MSVC_VERSION% was not found." - echo " Refer steps for SWT Windows native setup: https://www.eclipse.org/swt/swt_win_native.php" -) -IF NOT EXIST "%JAVA_HOME%" set "JAVA_HOME=%ProgramFiles%\AdoptOpenJDK\jdk-8.0.292.10-hotspot" -IF EXIST "%JAVA_HOME%" ( - echo "JAVA_HOME x64: %JAVA_HOME%" -) ELSE ( - echo "WARNING: x64 Java JDK not found. Please set JAVA_HOME to your JDK directory." - echo " Refer steps for SWT Windows native setup: https://www.eclipse.org/swt/swt_win_native.php" -) -set javaHome=%JAVA_HOME% -set makefile=make_win64.mak -call "%MSVC_HOME%\VC\Auxiliary\Build\vcvarsall.bat" x64 -GOTO MAKE - -:MAKE -rem -------------------------- -rem Define default values for environment variables used in the makefiles. -rem -------------------------- -set programOutput=eclipse.exe -set programLibrary=eclipse.dll -set defaultOS=win32 -set defaultWS=win32 -set OS=Windows - -rem -------------------------- -rem Parse the command line arguments and override the default values. -rem -------------------------- -set extraArgs= -:WHILE -if "%1" == "" goto WHILE_END - if "%2" == "" goto LAST_ARG - - if "%1" == "-os" ( - set defaultOS=%2 - shift - goto NEXT ) - if "%1" == "-arch" ( - set defaultOSArch=%2 - shift - goto NEXT ) - if "%1" == "-ws" ( - set defaultWS=%2 - shift - goto NEXT ) - if "%1" == "-output" ( - set programOutput=%2 - shift - goto NEXT ) - if "%1" == "-library" ( - set programLibrary=%2 - shift - goto NEXT ) - if "%1" == "-java" ( - set javaHome=%2 - echo %javaHome% - shift - goto NEXT ) -:LAST_ARG - set extraArgs=%extraArgs% %1 - -:NEXT - shift - goto WHILE -:WHILE_END - -rem -------------------------- -rem Set up environment variables needed by the makefile. -rem -------------------------- -set PROGRAM_OUTPUT=%programOutput% -set PROGRAM_LIBRARY=%programLibrary% -set DEFAULT_OS=%defaultOS% -set DEFAULT_OS_ARCH=%defaultOSArch% -set DEFAULT_WS=%defaultWS% -set EXEC_DIR=..\..\.\..\..\rt.equinox.binaries\org.eclipse.equinox.executable -set OUTPUT_DIR=%EXEC_DIR%\bin\%defaultWS%\%defaultOS%\%defaultOSArch% -set JAVA_HOME=%javaHome% - -rem -------------------------- -rem Run nmake to build the executable. -rem -------------------------- -if "%extraArgs%" == "" goto MAKE_ALL - -nmake -f %makefile% %extraArgs% -goto DONE - -:MAKE_ALL -echo Building %OS% launcher. Defaults: -os %DEFAULT_OS% -arch %DEFAULT_OS_ARCH% -ws %DEFAULT_WS% -nmake -f %makefile% clean -nmake -f %makefile% %1 %2 %3 %4 -goto DONE - - -:DONE +@rem ******************************************************************************* +@rem Copyright (c) 2000, 2021 IBM Corporation and others. +@rem +@rem This program and the accompanying materials +@rem are made available under the terms of the Eclipse Public License 2.0 +@rem which accompanies this distribution, and is available at +@rem https://www.eclipse.org/legal/epl-2.0/ +@rem +@rem SPDX-License-Identifier: EPL-2.0 +@rem +@rem Contributors: +@rem IBM Corporation - initial API and implementation +@rem Kevin Cornell (Rational Software Corporation) +@rem ********************************************************************** +@rem +@rem Usage: sh build.sh [] [clean] +@rem +@rem where the optional switches are: +@rem -output - executable filename ("eclipse") +@rem -library - dll filename (eclipse.dll) +@rem -os - default Eclipse "-os" value (qnx) +@rem -arch - default Eclipse "-arch" value (x86) +@rem -ws - default Eclipse "-ws" value (photon) +@rem -java - location of a Java SDK for JNI headers +@rem +@rem +@rem This script can also be invoked with the "clean" argument. +@rem +@rem NOTE: The C compiler needs to be setup. This script has been +@rem tested against Microsoft Visual C and C++ Compiler 6.0. +@rem +@rem Uncomment the lines below and edit MSVC_HOME to point to the +@rem correct root directory of the compiler installation, if you +@rem want this to be done by this script. +@rem +@rem ****** +@echo off + +IF EXIST C:\BUILD\swt-builddir set LAUNCHER_BUILDDIR=C:\BUILD\swt-builddir +IF x.%LAUNCHER_BUILDDIR%==x. set LAUNCHER_BUILDDIR=S:\swt-builddir +echo LAUNCHER build dir: %LAUNCHER_BUILDDIR% + +@rem Specify VisualStudio Edition: 'Community', 'Enterprise', 'Professional' etc. +IF "x.%MSVC_EDITION%"=="x." set "MSVC_EDITION=Community" + +@rem Specify VisualStudio Version: '2019' or newer '2022' +IF "x.%MSVC_VERSION%"=="x." set "MSVC_VERSION=2022" + +GOTO WIN64 + +:WIN64 +@REM Compose host architecture string for MSVC +IF "%PROCESSOR_ARCHITECTURE%"=="AMD64" ( + SET HOST_ARCH=x64 + SET defaultOSArch=x86_64 +) ELSE IF "%PROCESSOR_ARCHITECTURE%"=="ARM64" ( + SET HOST_ARCH=arm64 + SET defaultOSArch=aarch64 +) ELSE ( + CALL :ECHO "ERROR: Unknown host architecture: %PROCESSOR_ARCHITECTURE%." + EXIT /B 1 +) + +@REM %TARGET_ARCH% may be specified by the caller for cross-compiling. +@REM If not, build for builder machine's architecture +IF "%TARGET_ARCH%"=="" ( + SET TARGET_ARCH=%HOST_ARCH% +) + +@REM Compose build argument for MSVC +IF "%TARGET_ARCH%"=="%HOST_ARCH%" ( + SET BUILD_ARCH=%TARGET_ARCH% +) ELSE ( + SET BUILD_ARCH=%HOST_ARCH%_%TARGET_ARCH% +) + +IF NOT EXIST "%MSVC_HOME%" set "MSVC_HOME=%ProgramFiles(x86)%\Microsoft Visual Studio\%MSVC_VERSION%\BuildTools" +IF NOT EXIST "%MSVC_HOME%" set "MSVC_HOME=%ProgramFiles(x86)%\Microsoft Visual Studio\%MSVC_VERSION%\%MSVC_EDITION%" +IF NOT EXIST "%MSVC_HOME%" set "MSVC_HOME=%ProgramFiles%\Microsoft Visual Studio\%MSVC_VERSION%\%MSVC_EDITION%" +IF EXIST "%MSVC_HOME%" ( + echo "Microsoft Visual Studio %MSVC_VERSION% dir: %MSVC_HOME%" +) ELSE ( + echo "WARNING: Microsoft Visual Studio %MSVC_VERSION% was not found." + echo " Refer steps for SWT Windows native setup: https://www.eclipse.org/swt/swt_win_native.php" +) +IF NOT EXIST "%JAVA_HOME%" set "JAVA_HOME=%ProgramFiles%\AdoptOpenJDK\jdk-8.0.292.10-hotspot" +IF EXIST "%JAVA_HOME%" ( + echo "JAVA_HOME 64-bit: %JAVA_HOME%" +) ELSE ( + echo "WARNING: 64-bit Java JDK not found. Please set JAVA_HOME to your JDK directory." + echo " Refer steps for SWT Windows native setup: https://www.eclipse.org/swt/swt_win_native.php" +) +set javaHome=%JAVA_HOME% +set makefile=make_win64.mak +call "%MSVC_HOME%\VC\Auxiliary\Build\vcvarsall.bat" %BUILD_ARCH% +GOTO MAKE + +:MAKE +rem -------------------------- +rem Define default values for environment variables used in the makefiles. +rem -------------------------- +set programOutput=eclipse.exe +set programLibrary=eclipse.dll +set defaultOS=win32 +set defaultWS=win32 +set OS=Windows + +rem -------------------------- +rem Parse the command line arguments and override the default values. +rem -------------------------- +set extraArgs= +:WHILE +if "%1" == "" goto WHILE_END + if "%2" == "" goto LAST_ARG + + if "%1" == "-os" ( + set defaultOS=%2 + shift + goto NEXT ) + if "%1" == "-arch" ( + set defaultOSArch=%2 + shift + goto NEXT ) + if "%1" == "-ws" ( + set defaultWS=%2 + shift + goto NEXT ) + if "%1" == "-output" ( + set programOutput=%2 + shift + goto NEXT ) + if "%1" == "-library" ( + set programLibrary=%2 + shift + goto NEXT ) + if "%1" == "-java" ( + set javaHome=%2 + echo %javaHome% + shift + goto NEXT ) +:LAST_ARG + set extraArgs=%extraArgs% %1 + +:NEXT + shift + goto WHILE +:WHILE_END + +rem -------------------------- +rem Set up environment variables needed by the makefile. +rem -------------------------- +set PROGRAM_OUTPUT=%programOutput% +set PROGRAM_LIBRARY=%programLibrary% +set DEFAULT_OS=%defaultOS% +set DEFAULT_OS_ARCH=%defaultOSArch% +set DEFAULT_WS=%defaultWS% +set EXEC_DIR=..\..\.\..\..\rt.equinox.binaries\org.eclipse.equinox.executable +set OUTPUT_DIR=%EXEC_DIR%\bin\%defaultWS%\%defaultOS%\%defaultOSArch% +set JAVA_HOME=%javaHome% + +rem -------------------------- +rem Run nmake to build the executable. +rem -------------------------- +if "%extraArgs%" == "" goto MAKE_ALL + +nmake -f %makefile% %extraArgs% +goto DONE + +:MAKE_ALL +echo Building %OS% launcher. Defaults: -os %DEFAULT_OS% -arch %DEFAULT_OS_ARCH% -ws %DEFAULT_WS% +nmake -f %makefile% clean +nmake -f %makefile% %1 %2 %3 %4 +goto DONE + + +:DONE diff --git a/features/org.eclipse.equinox.executable.feature/pom.xml b/features/org.eclipse.equinox.executable.feature/pom.xml index da8efd2c0a0..618420ad10a 100644 --- a/features/org.eclipse.equinox.executable.feature/pom.xml +++ b/features/org.eclipse.equinox.executable.feature/pom.xml @@ -125,6 +125,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..adb8af0364b 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 @@ + + + + + + + + + + diff --git a/pom.xml b/pom.xml index d943b514468..e644b3cb046 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.osgi.tests