diff --git a/.builds/freebsd.yml b/.builds/freebsd.yml new file mode 100644 index 00000000..85558473 --- /dev/null +++ b/.builds/freebsd.yml @@ -0,0 +1,25 @@ +image: freebsd/latest +packages: + - libX11 + - libxkbcommon + - wayland + - mesa-libs + - xorg-vfbserver + - go +sources: + - https://git.sr.ht/~eliasnaur/gio +environment: + PATH: /bin:/usr/local/bin:/usr/bin +tasks: + - test_gio: | + cd gio + go test ./... + - test_example: | + cd gio/example + go test ./... + - test_cmd: | + cd gio/cmd + go test ./... + - check_gofmt: | + cd gio + test -z $(gofmt -s -l .) diff --git a/app/internal/gl/functions.go b/app/internal/gl/functions.go index a7f07047..14f3f17d 100644 --- a/app/internal/gl/functions.go +++ b/app/internal/gl/functions.go @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Unlicense OR MIT -// +build darwin linux +// +build darwin linux freebsd package gl @@ -10,7 +10,9 @@ import ( /* #cgo CFLAGS: -Werror -#cgo linux LDFLAGS: -lGLESv2 -ldl +#cgo linux freebsd LDFLAGS: -lGLESv2 -ldl +#cgo freebsd CFLAGS: -I/usr/local/include +#cgo freebsd LDFLAGS: -L/usr/local/lib #cgo darwin,!ios CFLAGS: -DGL_SILENCE_DEPRECATION #cgo darwin,!ios LDFLAGS: -framework OpenGL #cgo darwin,ios CFLAGS: -DGLES_SILENCE_DEPRECATION diff --git a/app/internal/window/egl.go b/app/internal/window/egl.go index 858ed153..55e3b8ea 100644 --- a/app/internal/window/egl.go +++ b/app/internal/window/egl.go @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Unlicense OR MIT -// +build linux windows +// +build linux windows freebsd package window diff --git a/app/internal/window/egl_linux.go b/app/internal/window/egl_unix.go similarity index 96% rename from app/internal/window/egl_linux.go rename to app/internal/window/egl_unix.go index 008a5ee3..e40b4afa 100644 --- a/app/internal/window/egl_linux.go +++ b/app/internal/window/egl_unix.go @@ -1,9 +1,13 @@ // SPDX-License-Identifier: Unlicense OR MIT +// +build linux freebsd + package window /* #cgo LDFLAGS: -lEGL +#cgo freebsd CFLAGS: -I/usr/local/include +#cgo freebsd LDFLAGS: -L/usr/local/lib #include #include diff --git a/app/internal/window/egl_wayland.go b/app/internal/window/egl_wayland.go index b1255643..5d86f1fb 100644 --- a/app/internal/window/egl_wayland.go +++ b/app/internal/window/egl_wayland.go @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Unlicense OR MIT -// +build linux,!android,!nowayland +// +build linux,!android,!nowayland freebsd package window diff --git a/app/internal/window/egl_x11.go b/app/internal/window/egl_x11.go index 819635e5..bb9bc7ea 100644 --- a/app/internal/window/egl_x11.go +++ b/app/internal/window/egl_x11.go @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Unlicense OR MIT -// +build linux,!android,!nox11 +// +build linux,!android,!nox11 freebsd package window diff --git a/app/internal/window/os_linux.go b/app/internal/window/os_unix.go similarity index 96% rename from app/internal/window/os_linux.go rename to app/internal/window/os_unix.go index 4194c15b..f6ebfe8f 100644 --- a/app/internal/window/os_linux.go +++ b/app/internal/window/os_unix.go @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Unlicense OR MIT -// +build linux,!android +// +build linux,!android freebsd package window diff --git a/app/internal/window/os_wayland.c b/app/internal/window/os_wayland.c index 0b9ed4fe..ad30745f 100644 --- a/app/internal/window/os_wayland.c +++ b/app/internal/window/os_wayland.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Unlicense OR MIT -// +build linux,!android,!nowayland +// +build linux,!android,!nowayland freebsd #include #include "wayland_xdg_shell.h" diff --git a/app/internal/window/os_wayland.go b/app/internal/window/os_wayland.go index 318f2477..0939409e 100644 --- a/app/internal/window/os_wayland.go +++ b/app/internal/window/os_wayland.go @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Unlicense OR MIT -// +build linux,!android,!nowayland +// +build linux,!android,!nowayland freebsd package window @@ -35,9 +35,9 @@ import ( //go:generate wayland-scanner client-header /usr/share/wayland-protocols/unstable/xdg-decoration/xdg-decoration-unstable-v1.xml wayland_xdg_decoration.h //go:generate wayland-scanner private-code /usr/share/wayland-protocols/unstable/xdg-decoration/xdg-decoration-unstable-v1.xml wayland_xdg_decoration.c -//go:generate sed -i "1s;^;// +build linux,!android,!nowayland\\n\\n;" wayland_xdg_shell.c -//go:generate sed -i "1s;^;// +build linux,!android,!nowayland\\n\\n;" wayland_xdg_decoration.c -//go:generate sed -i "1s;^;// +build linux,!android,!nowayland\\n\\n;" wayland_text_input.c +//go:generate sed -i "1s;^;// +build linux,!android,!nowayland freebsd\\n\\n;" wayland_xdg_shell.c +//go:generate sed -i "1s;^;// +build linux,!android,!nowayland freebsd\\n\\n;" wayland_xdg_decoration.c +//go:generate sed -i "1s;^;// +build linux,!android,!nowayland freebsd\\n\\n;" wayland_text_input.c /* #cgo LDFLAGS: -lwayland-client -lwayland-cursor diff --git a/app/internal/window/os_x11.go b/app/internal/window/os_x11.go index 1174a786..acfe8955 100644 --- a/app/internal/window/os_x11.go +++ b/app/internal/window/os_x11.go @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Unlicense OR MIT -// +build linux,!android,!nox11 +// +build linux,!android,!nox11 freebsd package window diff --git a/app/internal/window/wayland_text_input.c b/app/internal/window/wayland_text_input.c index 77fe38ec..a69af09f 100644 --- a/app/internal/window/wayland_text_input.c +++ b/app/internal/window/wayland_text_input.c @@ -1,6 +1,6 @@ -// +build linux,!android,!nowayland +// +build linux,!android,!nowayland freebsd -/* Generated by wayland-scanner 1.16.0 */ +/* Generated by wayland-scanner 1.17.0 */ /* * Copyright © 2012, 2013 Intel Corporation diff --git a/app/internal/window/wayland_text_input.h b/app/internal/window/wayland_text_input.h index f3041f64..8a6f8ddc 100644 --- a/app/internal/window/wayland_text_input.h +++ b/app/internal/window/wayland_text_input.h @@ -1,4 +1,4 @@ -/* Generated by wayland-scanner 1.16.0 */ +/* Generated by wayland-scanner 1.17.0 */ #ifndef TEXT_INPUT_UNSTABLE_V3_CLIENT_PROTOCOL_H #define TEXT_INPUT_UNSTABLE_V3_CLIENT_PROTOCOL_H diff --git a/app/internal/window/wayland_xdg_decoration.c b/app/internal/window/wayland_xdg_decoration.c index 59499a8a..fa13d7cc 100644 --- a/app/internal/window/wayland_xdg_decoration.c +++ b/app/internal/window/wayland_xdg_decoration.c @@ -1,6 +1,6 @@ -// +build linux,!android,!nowayland +// +build linux,!android,!nowayland freebsd -/* Generated by wayland-scanner 1.16.0 */ +/* Generated by wayland-scanner 1.17.0 */ /* * Copyright © 2018 Simon Ser diff --git a/app/internal/window/wayland_xdg_decoration.h b/app/internal/window/wayland_xdg_decoration.h index 6f593916..044ea2ec 100644 --- a/app/internal/window/wayland_xdg_decoration.h +++ b/app/internal/window/wayland_xdg_decoration.h @@ -1,4 +1,4 @@ -/* Generated by wayland-scanner 1.16.0 */ +/* Generated by wayland-scanner 1.17.0 */ #ifndef XDG_DECORATION_UNSTABLE_V1_CLIENT_PROTOCOL_H #define XDG_DECORATION_UNSTABLE_V1_CLIENT_PROTOCOL_H diff --git a/app/internal/window/wayland_xdg_shell.c b/app/internal/window/wayland_xdg_shell.c index 5417902b..19478471 100644 --- a/app/internal/window/wayland_xdg_shell.c +++ b/app/internal/window/wayland_xdg_shell.c @@ -1,6 +1,6 @@ -// +build linux,!android,!nowayland +// +build linux,!android,!nowayland freebsd -/* Generated by wayland-scanner 1.16.0 */ +/* Generated by wayland-scanner 1.17.0 */ /* * Copyright © 2008-2013 Kristian Høgsberg diff --git a/app/internal/window/wayland_xdg_shell.h b/app/internal/window/wayland_xdg_shell.h index 3cf1c00e..1f4bfb5d 100644 --- a/app/internal/window/wayland_xdg_shell.h +++ b/app/internal/window/wayland_xdg_shell.h @@ -1,4 +1,4 @@ -/* Generated by wayland-scanner 1.16.0 */ +/* Generated by wayland-scanner 1.17.0 */ #ifndef XDG_SHELL_CLIENT_PROTOCOL_H #define XDG_SHELL_CLIENT_PROTOCOL_H @@ -372,7 +372,7 @@ struct xdg_wm_base_listener { * The ping event asks the client if it's still alive. Pass the * serial specified in the event back to the compositor by sending * a "pong" request back with the specified serial. See - * xdg_wm_base.ping. + * xdg_wm_base.pong. * * Compositors can use this to determine if the client is still * alive. It's unspecified what will happen if the client doesn't @@ -1327,6 +1327,9 @@ xdg_toplevel_set_title(struct xdg_toplevel *xdg_toplevel, const char *title) * For example, "org.freedesktop.FooViewer" where the .desktop file is * "org.freedesktop.FooViewer.desktop". * + * Like other properties, a set_app_id request can be sent after the + * xdg_toplevel has been mapped to update the property. + * * See the desktop-entry specification [0] for more details on * application identifiers and how they relate to well-known D-Bus * names and .desktop files. diff --git a/app/internal/xkb/xkb_linux.go b/app/internal/xkb/xkb_unix.go similarity index 98% rename from app/internal/xkb/xkb_linux.go rename to app/internal/xkb/xkb_unix.go index ca004c02..77e940aa 100644 --- a/app/internal/xkb/xkb_linux.go +++ b/app/internal/xkb/xkb_unix.go @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Unlicense OR MIT -// +build !android +// +build linux,!android freebsd // Package xkb implements a Go interface for the X Keyboard Extension library. package xkb @@ -9,6 +9,8 @@ import "gioui.org/io/event" /* #cgo LDFLAGS: -lxkbcommon +#cgo freebsd CFLAGS: -I/usr/local/include +#cgo freebsd LDFLAGS: -L/usr/local/lib #include #include