diff --git a/binaries/org.eclipse.swt.gtk.freebsd.aarch64/.project b/binaries/org.eclipse.swt.gtk.freebsd.aarch64/.project new file mode 100644 index 00000000000..5a050db0000 --- /dev/null +++ b/binaries/org.eclipse.swt.gtk.freebsd.aarch64/.project @@ -0,0 +1,117 @@ + + + org.eclipse.swt.gtk.freebsd.aarch64 + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + org.eclipse.pde.api.tools.apiAnalysisBuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + org.eclipse.pde.api.tools.apiAnalysisNature + + + + .classpath + 1 + PARENT-1-PROJECT_LOC/.classpath_gtk + + + .settings/.api_filters + 1 + PROJECT_LOC/.settings/.api_filters + + + .settings + 2 + PARENT-1-PROJECT_LOC/.settings + + + Eclipse SWT + 2 + SWT_HOST_PLUGIN/Eclipse%20SWT + + + Eclipse SWT Accessibility + 2 + SWT_HOST_PLUGIN/Eclipse%20SWT%20Accessibility + + + Eclipse SWT AWT + 2 + SWT_HOST_PLUGIN/Eclipse%20SWT%20AWT + + + Eclipse SWT Browser + 2 + SWT_HOST_PLUGIN/Eclipse%20SWT%20Browser + + + Eclipse SWT Custom Widgets + 2 + SWT_HOST_PLUGIN/Eclipse%20SWT%20Custom%20Widgets + + + Eclipse SWT Drag and Drop + 2 + SWT_HOST_PLUGIN/Eclipse%20SWT%20Drag%20and%20Drop + + + Eclipse SWT OLE Win32 + 2 + SWT_HOST_PLUGIN/Eclipse%20SWT%20OLE%20Win32 + + + Eclipse SWT OpenGL + 2 + SWT_HOST_PLUGIN/Eclipse%20SWT%20OpenGL + + + Eclipse SWT PI + 2 + SWT_HOST_PLUGIN/Eclipse%20SWT%20PI + + + Eclipse SWT Printing + 2 + SWT_HOST_PLUGIN/Eclipse%20SWT%20Printing + + + Eclipse SWT Program + 2 + SWT_HOST_PLUGIN/Eclipse%20SWT%20Program + + + Eclipse SWT WebKit + 2 + SWT_HOST_PLUGIN/Eclipse%20SWT%20WebKit + + + + + SWT_HOST_PLUGIN + $%7BPARENT-2-PROJECT_LOC%7D/bundles/org.eclipse.swt + + + diff --git a/binaries/org.eclipse.swt.gtk.freebsd.aarch64/.settings/.api_filters b/binaries/org.eclipse.swt.gtk.freebsd.aarch64/.settings/.api_filters new file mode 100644 index 00000000000..90218b8ed40 --- /dev/null +++ b/binaries/org.eclipse.swt.gtk.freebsd.aarch64/.settings/.api_filters @@ -0,0 +1,497 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/binaries/org.eclipse.swt.gtk.freebsd.aarch64/META-INF/MANIFEST.MF b/binaries/org.eclipse.swt.gtk.freebsd.aarch64/META-INF/MANIFEST.MF new file mode 100644 index 00000000000..0ff78925a41 --- /dev/null +++ b/binaries/org.eclipse.swt.gtk.freebsd.aarch64/META-INF/MANIFEST.MF @@ -0,0 +1,35 @@ +Manifest-Version: 1.0 +Fragment-Host: org.eclipse.swt;bundle-version="[3.128.0,4.0.0)" +Bundle-Name: %fragmentName +Bundle-Vendor: %providerName +Bundle-SymbolicName: org.eclipse.swt.gtk.freebsd.aarch64; singleton:=true +Bundle-Version: 3.130.0.qualifier +Bundle-ManifestVersion: 2 +Bundle-Localization: fragment +Export-Package: + org.eclipse.swt, + org.eclipse.swt.accessibility, + org.eclipse.swt.awt, + org.eclipse.swt.browser, + org.eclipse.swt.custom, + org.eclipse.swt.dnd, + org.eclipse.swt.events, + org.eclipse.swt.graphics, + org.eclipse.swt.layout, + org.eclipse.swt.opengl, + org.eclipse.swt.printing, + org.eclipse.swt.program, + org.eclipse.swt.widgets, + org.eclipse.swt.internal; x-friends:="org.eclipse.ui", + org.eclipse.swt.internal.image; x-internal:=true, + org.eclipse.swt.internal.accessibility.gtk; x-internal:=true, + org.eclipse.swt.internal.cairo; x-internal:=true, + org.eclipse.swt.internal.gtk; x-internal:=true, + org.eclipse.swt.internal.gtk3; x-internal:=true, + org.eclipse.swt.internal.gtk4; x-internal:=true, + org.eclipse.swt.internal.opengl.glx; x-internal:=true +Eclipse-PlatformFilter: (& (osgi.ws=gtk) (osgi.os=freebsd) (osgi.arch=aarch64)) +SWT-WS: gtk +SWT-OS: freebsd +SWT-Arch: aarch64 +Automatic-Module-Name: org.eclipse.swt.gtk.freebsd.aarch64 diff --git a/binaries/org.eclipse.swt.gtk.freebsd.aarch64/build.properties b/binaries/org.eclipse.swt.gtk.freebsd.aarch64/build.properties new file mode 100644 index 00000000000..187d2ab145a --- /dev/null +++ b/binaries/org.eclipse.swt.gtk.freebsd.aarch64/build.properties @@ -0,0 +1,48 @@ +############################################################################### +# Copyright (c) 2015, 2025 Red Hat Inc. and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Alexander Kurtakov, Red Hat, Inc.- initial API and implementation +# Hannes Wellmann - Leverage Tycho pomless +# Tue Ton - support for FreeBSD +############################################################################### +custom = true +bin.includes = .,*.so,fragment.properties +bin.excludes = library/ +source.. = \ + ../legal_files/gtk.linux,\ + ../../bundles/org.eclipse.swt/Eclipse SWT/gtk,\ + ../../bundles/org.eclipse.swt/Eclipse SWT/cairo,\ + ../../bundles/org.eclipse.swt/Eclipse SWT/emulated/bidi,\ + ../../bundles/org.eclipse.swt/Eclipse SWT/emulated/coolbar,\ + ../../bundles/org.eclipse.swt/Eclipse SWT/emulated/taskbar,\ + ../../bundles/org.eclipse.swt/Eclipse SWT/common,\ + ../../bundles/org.eclipse.swt/Eclipse SWT PI/gtk,\ + ../../bundles/org.eclipse.swt/Eclipse SWT PI/cairo,\ + ../../bundles/org.eclipse.swt/Eclipse SWT PI/common,\ + ../../bundles/org.eclipse.swt/Eclipse SWT Accessibility/gtk,\ + ../../bundles/org.eclipse.swt/Eclipse SWT Accessibility/common,\ + ../../bundles/org.eclipse.swt/Eclipse SWT AWT/gtk,\ + ../../bundles/org.eclipse.swt/Eclipse SWT AWT/common,\ + ../../bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk,\ + ../../bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common,\ + ../../bundles/org.eclipse.swt/Eclipse SWT Printing/gtk,\ + ../../bundles/org.eclipse.swt/Eclipse SWT Printing/common,\ + ../../bundles/org.eclipse.swt/Eclipse SWT Program/gtk,\ + ../../bundles/org.eclipse.swt/Eclipse SWT Program/common,\ + ../../bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common,\ + ../../bundles/org.eclipse.swt/Eclipse SWT Browser/common,\ + ../../bundles/org.eclipse.swt/Eclipse SWT Browser/gtk,\ + ../../bundles/org.eclipse.swt/Eclipse SWT OpenGL/gtk,\ + ../../bundles/org.eclipse.swt/Eclipse SWT OpenGL/glx,\ + ../../bundles/org.eclipse.swt/Eclipse SWT OpenGL/common,\ + ../../bundles/org.eclipse.swt/Eclipse SWT WebKit/gtk +output.. = bin/ + +pom.model.property.os=freebsd +pom.model.property.ws=gtk +pom.model.property.arch=aarch64 diff --git a/binaries/org.eclipse.swt.gtk.freebsd.aarch64/fragment.properties b/binaries/org.eclipse.swt.gtk.freebsd.aarch64/fragment.properties new file mode 100644 index 00000000000..bb3161fd01a --- /dev/null +++ b/binaries/org.eclipse.swt.gtk.freebsd.aarch64/fragment.properties @@ -0,0 +1,13 @@ +############################################################################### +# Copyright (c) 2015, 2025 Red Hat Inc. and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Alexander Kurtakov, Red Hat, Inc.- initial API and implementation +# Tue Ton - support for FreeBSD +############################################################################### +fragmentName = Standard Widget Toolkit for GTK on aarch64 +providerName = Eclipse.org diff --git a/binaries/org.eclipse.swt.gtk.freebsd.x86_64/.project b/binaries/org.eclipse.swt.gtk.freebsd.x86_64/.project new file mode 100644 index 00000000000..4dabd3d2f2a --- /dev/null +++ b/binaries/org.eclipse.swt.gtk.freebsd.x86_64/.project @@ -0,0 +1,117 @@ + + + org.eclipse.swt.gtk.freebsd.x86_64 + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + org.eclipse.pde.api.tools.apiAnalysisBuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.pde.PluginNature + org.eclipse.pde.api.tools.apiAnalysisNature + + + + .classpath + 1 + PARENT-1-PROJECT_LOC/.classpath_gtk + + + .settings/.api_filters + 1 + PROJECT_LOC/.settings/.api_filters + + + .settings + 2 + PARENT-1-PROJECT_LOC/.settings + + + Eclipse SWT + 2 + SWT_HOST_PLUGIN/Eclipse%20SWT + + + Eclipse SWT Accessibility + 2 + SWT_HOST_PLUGIN/Eclipse%20SWT%20Accessibility + + + Eclipse SWT AWT + 2 + SWT_HOST_PLUGIN/Eclipse%20SWT%20AWT + + + Eclipse SWT Browser + 2 + SWT_HOST_PLUGIN/Eclipse%20SWT%20Browser + + + Eclipse SWT Custom Widgets + 2 + SWT_HOST_PLUGIN/Eclipse%20SWT%20Custom%20Widgets + + + Eclipse SWT Drag and Drop + 2 + SWT_HOST_PLUGIN/Eclipse%20SWT%20Drag%20and%20Drop + + + Eclipse SWT OLE Win32 + 2 + SWT_HOST_PLUGIN/Eclipse%20SWT%20OLE%20Win32 + + + Eclipse SWT OpenGL + 2 + SWT_HOST_PLUGIN/Eclipse%20SWT%20OpenGL + + + Eclipse SWT PI + 2 + SWT_HOST_PLUGIN/Eclipse%20SWT%20PI + + + Eclipse SWT Printing + 2 + SWT_HOST_PLUGIN/Eclipse%20SWT%20Printing + + + Eclipse SWT Program + 2 + SWT_HOST_PLUGIN/Eclipse%20SWT%20Program + + + Eclipse SWT WebKit + 2 + SWT_HOST_PLUGIN/Eclipse%20SWT%20WebKit + + + + + SWT_HOST_PLUGIN + $%7BPARENT-2-PROJECT_LOC%7D/bundles/org.eclipse.swt + + + diff --git a/binaries/org.eclipse.swt.gtk.freebsd.x86_64/.settings/.api_filters b/binaries/org.eclipse.swt.gtk.freebsd.x86_64/.settings/.api_filters new file mode 100644 index 00000000000..21ea75e8a21 --- /dev/null +++ b/binaries/org.eclipse.swt.gtk.freebsd.x86_64/.settings/.api_filters @@ -0,0 +1,497 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/binaries/org.eclipse.swt.gtk.freebsd.x86_64/META-INF/MANIFEST.MF b/binaries/org.eclipse.swt.gtk.freebsd.x86_64/META-INF/MANIFEST.MF new file mode 100644 index 00000000000..e50cbb8a784 --- /dev/null +++ b/binaries/org.eclipse.swt.gtk.freebsd.x86_64/META-INF/MANIFEST.MF @@ -0,0 +1,35 @@ +Manifest-Version: 1.0 +Fragment-Host: org.eclipse.swt;bundle-version="[3.128.0,4.0.0)" +Bundle-Name: %fragmentName +Bundle-Vendor: %providerName +Bundle-SymbolicName: org.eclipse.swt.gtk.freebsd.x86_64; singleton:=true +Bundle-Version: 3.130.0.qualifier +Bundle-ManifestVersion: 2 +Bundle-Localization: fragment +Export-Package: + org.eclipse.swt, + org.eclipse.swt.accessibility, + org.eclipse.swt.awt, + org.eclipse.swt.browser, + org.eclipse.swt.custom, + org.eclipse.swt.dnd, + org.eclipse.swt.events, + org.eclipse.swt.graphics, + org.eclipse.swt.layout, + org.eclipse.swt.opengl, + org.eclipse.swt.printing, + org.eclipse.swt.program, + org.eclipse.swt.widgets, + org.eclipse.swt.internal; x-friends:="org.eclipse.ui", + org.eclipse.swt.internal.image; x-internal:=true, + org.eclipse.swt.internal.accessibility.gtk; x-internal:=true, + org.eclipse.swt.internal.cairo; x-internal:=true, + org.eclipse.swt.internal.gtk; x-internal:=true, + org.eclipse.swt.internal.gtk3; x-internal:=true, + org.eclipse.swt.internal.gtk4; x-internal:=true, + org.eclipse.swt.internal.opengl.glx; x-internal:=true +Eclipse-PlatformFilter: (& (osgi.ws=gtk) (osgi.os=freebsd) (osgi.arch=x86_64)) +SWT-WS: gtk +SWT-OS: freebsd +SWT-Arch: x86_64 +Automatic-Module-Name: org.eclipse.swt.gtk.freebsd.x86_64 diff --git a/binaries/org.eclipse.swt.gtk.freebsd.x86_64/build.properties b/binaries/org.eclipse.swt.gtk.freebsd.x86_64/build.properties new file mode 100644 index 00000000000..715b9f927ba --- /dev/null +++ b/binaries/org.eclipse.swt.gtk.freebsd.x86_64/build.properties @@ -0,0 +1,49 @@ +############################################################################### +# Copyright (c) 2000, 2025 IBM Corporation and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# IBM Corporation - initial API and implementation +# Krzysztof Daniel, Red Hat, Inc. - tycho enablement +# Hannes Wellmann - Leverage Tycho pomless +# Tue Ton - support for FreeBSD +############################################################################### +custom = true +bin.includes = .,*.so,fragment.properties +bin.excludes = library/ +source.. = \ + ../legal_files/gtk.linux,\ + ../../bundles/org.eclipse.swt/Eclipse SWT/gtk,\ + ../../bundles/org.eclipse.swt/Eclipse SWT/cairo,\ + ../../bundles/org.eclipse.swt/Eclipse SWT/emulated/bidi,\ + ../../bundles/org.eclipse.swt/Eclipse SWT/emulated/coolbar,\ + ../../bundles/org.eclipse.swt/Eclipse SWT/emulated/taskbar,\ + ../../bundles/org.eclipse.swt/Eclipse SWT/common,\ + ../../bundles/org.eclipse.swt/Eclipse SWT PI/gtk,\ + ../../bundles/org.eclipse.swt/Eclipse SWT PI/cairo,\ + ../../bundles/org.eclipse.swt/Eclipse SWT PI/common,\ + ../../bundles/org.eclipse.swt/Eclipse SWT Accessibility/gtk,\ + ../../bundles/org.eclipse.swt/Eclipse SWT Accessibility/common,\ + ../../bundles/org.eclipse.swt/Eclipse SWT AWT/gtk,\ + ../../bundles/org.eclipse.swt/Eclipse SWT AWT/common,\ + ../../bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/gtk,\ + ../../bundles/org.eclipse.swt/Eclipse SWT Drag and Drop/common,\ + ../../bundles/org.eclipse.swt/Eclipse SWT Printing/gtk,\ + ../../bundles/org.eclipse.swt/Eclipse SWT Printing/common,\ + ../../bundles/org.eclipse.swt/Eclipse SWT Program/gtk,\ + ../../bundles/org.eclipse.swt/Eclipse SWT Program/common,\ + ../../bundles/org.eclipse.swt/Eclipse SWT Custom Widgets/common,\ + ../../bundles/org.eclipse.swt/Eclipse SWT Browser/common,\ + ../../bundles/org.eclipse.swt/Eclipse SWT Browser/gtk,\ + ../../bundles/org.eclipse.swt/Eclipse SWT OpenGL/gtk,\ + ../../bundles/org.eclipse.swt/Eclipse SWT OpenGL/glx,\ + ../../bundles/org.eclipse.swt/Eclipse SWT OpenGL/common,\ + ../../bundles/org.eclipse.swt/Eclipse SWT WebKit/gtk +output.. = bin/ + +pom.model.property.os=freebsd +pom.model.property.ws=gtk +pom.model.property.arch=x86_64 diff --git a/binaries/org.eclipse.swt.gtk.freebsd.x86_64/fragment.properties b/binaries/org.eclipse.swt.gtk.freebsd.x86_64/fragment.properties new file mode 100644 index 00000000000..f0d12f7938d --- /dev/null +++ b/binaries/org.eclipse.swt.gtk.freebsd.x86_64/fragment.properties @@ -0,0 +1,13 @@ +############################################################################### +# Copyright (c) 2000, 2025 IBM Corporation and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# IBM Corporation - initial API and implementation +# Tue Ton - support for FreeBSD +############################################################################### +fragmentName = Standard Widget Toolkit for GTK on x86_64 +providerName = Eclipse.org diff --git a/binaries/pom.xml b/binaries/pom.xml index 743ed32629c..b4f25cf22f8 100644 --- a/binaries/pom.xml +++ b/binaries/pom.xml @@ -1,7 +1,7 @@ org.eclipse.swt.cocoa.macosx.x86_64 org.eclipse.swt.cocoa.macosx.aarch64 + org.eclipse.swt.gtk.freebsd.aarch64 + org.eclipse.swt.gtk.freebsd.x86_64 org.eclipse.swt.gtk.linux.aarch64 org.eclipse.swt.gtk.linux.ppc64le org.eclipse.swt.gtk.linux.riscv64 diff --git a/bundles/org.eclipse.swt.tools/Oomph/platformSwt.setup b/bundles/org.eclipse.swt.tools/Oomph/platformSwt.setup index dca1b94d700..93d46f1a808 100644 --- a/bundles/org.eclipse.swt.tools/Oomph/platformSwt.setup +++ b/bundles/org.eclipse.swt.tools/Oomph/platformSwt.setup @@ -74,7 +74,7 @@ xsi:type="predicates:OrPredicate"> + pattern=".*(cocoa|gtk|win32)(\.(freebsd|macosx|aix|hpux|linux|solaris|win32)(\.(x86_64|ia64|aarch64|arm|ppc64|ppc64le|s390|s390x|x86|sparcv9))?)?"/> diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/common/org/eclipse/swt/internal/Library.java b/bundles/org.eclipse.swt/Eclipse SWT PI/common/org/eclipse/swt/internal/Library.java index 5f4472c73c8..464bb8f6989 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT PI/common/org/eclipse/swt/internal/Library.java +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/common/org/eclipse/swt/internal/Library.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2022 IBM Corporation and others. + * Copyright (c) 2000, 2025 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 @@ -10,6 +10,7 @@ * * Contributors: * IBM Corporation - initial API and implementation + * Tue Ton - support for FreeBSD *******************************************************************************/ package org.eclipse.swt.internal; @@ -69,12 +70,14 @@ public class Library { static String arch() { String osArch = System.getProperty("os.arch"); //$NON-NLS-1$ if (osArch.equals ("amd64")) return "x86_64"; //$NON-NLS-1$ $NON-NLS-2$ + if (osArch.equals ("arm64")) return "aarch64"; //$NON-NLS-1$ $NON-NLS-2$ return osArch; } static String os() { String osName = System.getProperty("os.name"); //$NON-NLS-1$ if (osName.equals ("Linux")) return "linux"; //$NON-NLS-1$ $NON-NLS-2$ + if (osName.equals ("FreeBSD")) return "freebsd"; //$NON-NLS-1$ $NON-NLS-2$ if (osName.equals ("Mac OS X")) return "macosx"; //$NON-NLS-1$ $NON-NLS-2$ if (osName.startsWith ("Win")) return "win32"; //$NON-NLS-1$ $NON-NLS-2$ return osName; diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/build.sh b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/build.sh index fa85c882a6f..0a3d4f5b3ae 100755 --- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/build.sh +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/build.sh @@ -1,6 +1,6 @@ #!/bin/sh #******************************************************************************* -# Copyright (c) 2000, 2020 IBM Corporation and others. +# Copyright (c) 2000, 2025 IBM Corporation and others. # # This program and the accompanying materials # are made available under the terms of the Eclipse Public License 2.0 @@ -13,6 +13,7 @@ # IBM Corporation - initial API and implementation # Kevin Cornell (Rational Software Corporation) # Tom Tromey (Red Hat, Inc.) +# Tue Ton - support for FreeBSD #******************************************************************************* HELP=" @@ -81,9 +82,15 @@ if [ "${OS}" = "" ]; then OS=`uname -s` fi case $OS in + "FreeBSD" | "freebsd") + SWT_OS=`echo $OS | tr '[:upper:]' '[:lower:]'` + MAKE_TYPE=gmake + MAKEFILE=make_unix.mak + export FREEBSD_OS=1 + ;; *) SWT_OS=`uname -s | tr -s '[:upper:]' '[:lower:]'` - MAKEFILE=make_linux.mak + MAKEFILE=make_unix.mak ;; esac @@ -91,7 +98,7 @@ esac if [ "${MODEL}" = "" ]; then if uname -i > /dev/null 2>&1; then MODEL=`uname -i` - if [ ${MODEL} = 'unknown' ]; then + if [ ${MODEL} = 'unknown' -o ${MODEL} = 'GENERIC' ]; then MODEL=`uname -m` fi else @@ -100,10 +107,24 @@ if [ "${MODEL}" = "" ]; then export MODEL fi case $MODEL in - "x86_64") + "x86_64" | "amd64") SWT_ARCH=x86_64 AWT_ARCH=amd64 ;; + "aarch64" | "arm64") + SWT_ARCH=aarch64 + AWT_ARCH=aarch64 + ;; + "powerpc" | "powerpc64") + SWT_ARCH=ppc64 + AWT_ARCH=ppc64 + MODEL=`uname -p` + ;; + "powerpc64le") + SWT_ARCH=ppc64le + AWT_ARCH=ppc64le + MODEL=`uname -p` + ;; *) SWT_ARCH=$MODEL AWT_ARCH=$MODEL @@ -142,11 +163,30 @@ case $SWT_OS.$SWT_ARCH in if [ "${PKG_CONFIG_PATH}" = "" ]; then export PKG_CONFIG_PATH="/usr/lib64/pkgconfig/" fi + ;; + "freebsd.x86_64") + AWT_ARCH=x86_64 + if [ "${CC}" = "" ]; then + export CC=cc + fi + ;; + "freebsd.ppc64" | "freebsd.ppc64le") + if [ "${CC}" = "" ]; then + export CC=cc + fi + export GTK_VERSION=3.0 + ;; + "freebsd.aarch64") + if [ "${CC}" = "" ]; then + export CC=cc + fi + export GTK_VERSION=3.0 + ;; esac # For 64-bit CPUs, we have a switch -if [ ${MODEL} = 'x86_64' -o ${MODEL} = 'ppc64le' -o ${MODEL} = 'aarch64' -o ${MODEL} = 'loongarch64' -o ${MODEL} = 'riscv64' ]; then +if [ ${MODEL} = 'x86_64' -o ${MODEL} = 'ppc64' -o ${MODEL} = 'ppc64le' -o ${MODEL} = 'powerpc64' -o ${MODEL} = 'powerpc64le' -o ${MODEL} = 'aarch64' -o ${MODEL} = 'arm64' -o ${MODEL} = 'loongarch64' -o ${MODEL} = 'riscv64' ]; then SWT_PTR_CFLAGS=-DJNI64 if [ -d /lib64 ]; then XLIB64=-L/usr/X11R6/lib64 @@ -158,6 +198,11 @@ if [ ${MODEL} = 'x86_64' -o ${MODEL} = 'ppc64le' -o ${MODEL} = 'aarch64' -o ${MO SWT_LFLAGS=-m64 export SWT_LFLAGS fi + if [ ${SWT_OS} = "freebsd" ] + then + SWT_PTR_CFLAGS="${SWT_PTR_CFLAGS} -m64" + export SWT_LFLAGS=-m64 + fi export SWT_PTR_CFLAGS fi diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_linux.mak b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_unix.mak similarity index 94% rename from bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_linux.mak rename to bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_unix.mak index 0d5cbe9875b..624745bd8e8 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_linux.mak +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/make_unix.mak @@ -1,5 +1,5 @@ #******************************************************************************* -# Copyright (c) 2000, 2016 IBM Corporation and others. +# Copyright (c) 2000, 2025 IBM Corporation and others. # # This program and the accompanying materials # are made available under the terms of the Eclipse Public License 2.0 @@ -10,9 +10,10 @@ # # Contributors: # IBM Corporation - initial API and implementation +# Tue Ton - support for FreeBSD #******************************************************************************* -# Makefile for creating SWT libraries for Linux GTK +# Makefile for creating SWT libraries for Linux & FreeBSD GTK # assumes these variables are set in the environment from which make is run # SWT_JAVA_HOME @@ -102,13 +103,31 @@ GLX_OBJECTS = swt.o glx.o glx_structs.o glx_stats.o CFLAGS := $(CFLAGS) \ $(SWT_DEBUG) \ $(SWT_WEBKIT_DEBUG) \ - -DLINUX -DGTK \ + -DGTK \ -I$(SWT_JAVA_HOME)/include \ - -I$(SWT_JAVA_HOME)/include/linux \ -std=gnu17 \ ${SWT_PTR_CFLAGS} LFLAGS = -shared -fPIC ${SWT_LFLAGS} +ifdef FREEBSD_OS +ifeq ($(GTK_VERSION), 4.0) +freebsd_gtk_prefix = `pkg-config --variable=prefix gtk4` +else +freebsd_gtk_prefix = `pkg-config --variable=prefix gtk+-3.0` +endif +CFLAGS := $(CFLAGS) \ + -DFREEBSD \ + -Wno-deprecated-non-prototype \ + -Wno-deprecated-declarations \ + -I$(freebsd_gtk_prefix)/include \ + -I$(SWT_JAVA_HOME)/include/freebsd +LFLAGS := $(LFLAGS) -L$(freebsd_gtk_prefix)/lib +else +CFLAGS := $(CFLAGS) \ + -DLINUX \ + -I$(SWT_JAVA_HOME)/include/linux +endif + # Treat all warnings as errors. If your new code produces a warning, please # take time to properly understand and fix/silence it as necessary. ifeq ($(GTK_VERSION), 3.0) diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java index 97cc31ee5d8..42e30a522dc 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java +++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2000, 2024 IBM Corporation and others. All rights reserved. + * Copyright (c) 2000, 2025 IBM Corporation and others. All rights reserved. * The contents of this file are made available under the terms * of the GNU Lesser General Public License (LGPL) Version 2.1 that * accompanies this distribution (lgpl-v21.txt). The LGPL is also @@ -11,6 +11,7 @@ * * Contributors: * IBM Corporation - initial API and implementation + * Tue Ton - suport for FreeBSD *******************************************************************************/ package org.eclipse.swt.internal.gtk; @@ -60,15 +61,16 @@ */ public class OS extends C { /** OS Constants */ - public static final boolean IsLinux, IsWin32, BIG_ENDIAN; + public static final boolean IsFreeBSD, IsLinux, IsWin32, BIG_ENDIAN; static { /* Initialize the OS flags and locale constants */ String osName = System.getProperty ("os.name"); - boolean isLinux = false, isWin32 = false; + boolean isFreeBSD = false, isLinux = false, isWin32 = false; + if (osName.equals ("FreeBSD")) isFreeBSD = true; if (osName.equals ("Linux")) isLinux = true; if (osName.startsWith("Windows")) isWin32 = true; - IsLinux = isLinux; IsWin32 = isWin32; + IsFreeBSD = isFreeBSD; IsLinux = isLinux; IsWin32 = isWin32; byte[] buffer = new byte[4]; long ptr = C.malloc(4); diff --git a/bundles/org.eclipse.swt/META-INF/p2.inf b/bundles/org.eclipse.swt/META-INF/p2.inf index d241b4233fa..7ee7fb9a83e 100644 --- a/bundles/org.eclipse.swt/META-INF/p2.inf +++ b/bundles/org.eclipse.swt/META-INF/p2.inf @@ -44,3 +44,13 @@ requires.9.namespace = org.eclipse.equinox.p2.iu requires.9.name = org.eclipse.swt.gtk.linux.riscv64 requires.9.range = [$version$,$version$] requires.9.filter = (&(osgi.os=linux)(osgi.ws=gtk)(osgi.arch=riscv64)(!(org.eclipse.swt.buildtime=true))) + +requires.10.namespace = org.eclipse.equinox.p2.iu +requires.10.name = org.eclipse.swt.gtk.freebsd.x86_64 +requires.10.range = [$version$,$version$] +requires.10.filter = (&(osgi.os=freebsd)(osgi.ws=gtk)(osgi.arch=x86_64)(!(org.eclipse.swt.buildtime=true))) + +requires.11.namespace = org.eclipse.equinox.p2.iu +requires.11.name = org.eclipse.swt.gtk.freebsd.aarch64 +requires.11.range = [$version$,$version$] +requires.11.filter = (&(osgi.os=freebsd)(osgi.ws=gtk)(osgi.arch=aarch64)(!(org.eclipse.swt.buildtime=true))) diff --git a/local-build/org.eclipse.swt.fragments.localbuild/META-INF/p2.inf b/local-build/org.eclipse.swt.fragments.localbuild/META-INF/p2.inf index 63c7cd8bc00..dec1e3d10df 100644 --- a/local-build/org.eclipse.swt.fragments.localbuild/META-INF/p2.inf +++ b/local-build/org.eclipse.swt.fragments.localbuild/META-INF/p2.inf @@ -38,3 +38,13 @@ requires.8.namespace = org.eclipse.equinox.p2.iu requires.8.name = org.eclipse.swt.gtk.linux.riscv64 requires.8.range = 0.0.0 requires.8.filter = (&(osgi.os=linux)(osgi.ws=gtk)(osgi.arch=riscv64)) + +requires.9.namespace = org.eclipse.equinox.p2.iu +requires.9.name = org.eclipse.swt.gtk.freebsd.x86_64 +requires.9.range = 0.0.0 +requires.9.filter = (&(osgi.os=freebsd)(osgi.ws=gtk)(osgi.arch=x86_64)) + +requires.10.namespace = org.eclipse.equinox.p2.iu +requires.10.name = org.eclipse.swt.gtk.freebsd.aarch64 +requires.10.range = 0.0.0 +requires.10.filter = (&(osgi.os=freebsd)(osgi.ws=gtk)(osgi.arch=aarch64)) diff --git a/pom.xml b/pom.xml index 3724bbbdb02..5b13a57633b 100644 --- a/pom.xml +++ b/pom.xml @@ -1,6 +1,6 @@ unix - Linux @@ -140,6 +140,11 @@ gtk ppc64le + + freebsd + gtk + x86_64 +