mirror of https://github.com/fltk/fltk
Wayland platform: add support of FreeBSD version 13.1
This commit is contained in:
parent
1c37c29e2d
commit
6686d2bfa9
|
@ -20,7 +20,7 @@ CONTENTS
|
|||
==============
|
||||
|
||||
Version 1.4 of the FLTK library introduces support of the public FLTK API on
|
||||
the Wayland platform. It requires a Wayland-equipped OS which means Linux.
|
||||
the Wayland platform. It requires a Wayland-equipped OS, namely Linux or FreeBSD.
|
||||
Pre-existing platform-independent source code for FLTK 1.3.x should build and
|
||||
run unchanged with FLTK 1.4 and the Wayland platform.
|
||||
The code has been tested on Debian, Ubuntu and Fedora with 3 distinct Wayland
|
||||
|
@ -32,8 +32,8 @@ CJK text-input methods, as well as dead and compose keys are supported.
|
|||
==========================
|
||||
|
||||
It is possible to have your FLTK application do all its windowing and drawing
|
||||
through the Wayland protocol on Linux systems. All graphics is done via Cairo or EGL.
|
||||
All text-drawing is done via Pango.
|
||||
through the Wayland protocol on Linux or FreeBSD systems.
|
||||
All graphics is done via Cairo or EGL. All text-drawing is done via Pango.
|
||||
|
||||
2.1 Configuration
|
||||
---------------
|
||||
|
@ -167,3 +167,19 @@ in a Fedora 35 Workstation distribution :
|
|||
- cmake-gui <== if you plan to use the GUI of CMake
|
||||
|
||||
Package installation command: sudo yum install <package-name ...>
|
||||
|
||||
|
||||
3.3 FreeBSD
|
||||
|
||||
The Wayland platform is know to work with FreeBSD version 13.1 and the sway compositor.
|
||||
|
||||
These packages are necessary to build the FLTK library and the sway compositor:
|
||||
pkg install git autoconf pkgconf xorg urwfonts gnome seatd sway dmenu-wayland dmenu
|
||||
|
||||
The FLTK library should be built, for now, as follows :
|
||||
|
||||
git clone https://github.com/fltk/fltk fltk
|
||||
cd fltk
|
||||
autoconf -f
|
||||
./configure --enable-localzlib --enable-wayland
|
||||
make
|
||||
|
|
21
configure.ac
21
configure.ac
|
@ -996,17 +996,26 @@ AS_CASE([$host_os_gui], [cygwin* | mingw*], [
|
|||
DSOFLAGS="$LIBS $DSOFLAGS"
|
||||
enable_pango=yes
|
||||
LIBDECORDIR="libdecor/build"
|
||||
LDFLAGS="$LDFLAGS -rdynamic -no-pie"
|
||||
LDFLAGS="$LDFLAGS -rdynamic"
|
||||
AC_SUBST([UNAME])
|
||||
UNAME="$(uname -s)"
|
||||
AS_CASE([$UNAME],
|
||||
[Linux], [LDFLAGS="$LDFLAGS -no-pie"],
|
||||
[*], [CXXFLAGS="$CXXFLAGS -I../libdecor/build"]
|
||||
)
|
||||
|
||||
AC_SEARCH_LIBS([dlopen], [dl])
|
||||
|
||||
AS_IF([test x$enable_gl != xno], [
|
||||
AC_CHECK_HEADER([GL/gl.h], [AC_DEFINE([HAVE_GL])])
|
||||
AC_CHECK_HEADER([GL/glu.h], [
|
||||
AC_DEFINE([HAVE_GL_GLU_H])
|
||||
GLLIBS="$($PKGCONFIG --libs wayland-egl) $($PKGCONFIG --libs egl) $($PKGCONFIG --libs glu) $($PKGCONFIG --libs gl) $GLLIBS"
|
||||
AS_IF([$PKGCONFIG --exists gl], [
|
||||
AC_DEFINE([HAVE_GL])
|
||||
GLLIBS="$($PKGCONFIG --libs wayland-egl) $($PKGCONFIG --libs egl) $($PKGCONFIG --libs gl) $GLLIBS"
|
||||
])
|
||||
GLWLDEMO="egl"
|
||||
AS_IF([$PKGCONFIG --exists glu], [
|
||||
AC_DEFINE([HAVE_GL_GLU_H])
|
||||
GLLIBS="$($PKGCONFIG --libs glu) $GLLIBS"
|
||||
])
|
||||
GLWLDEMO="egl"
|
||||
], [
|
||||
LINKFLTKGL=""
|
||||
GLLIBNAME=""
|
||||
|
|
|
@ -16,22 +16,47 @@
|
|||
|
||||
include ../../makeinclude
|
||||
|
||||
CFLAGS_DECOR = -I. -I../.. -I../../src -I../src -fPIC -D_GNU_SOURCE \
|
||||
-DUSE_SYSTEM_LIBDECOR=0 -DHAVE_MEMFD_CREATE -DHAVE_MKOSTEMP -DHAVE_POSIX_FALLOCATE
|
||||
OBJECTS = fl_libdecor.o libdecor-cairo-blur.o fl_libdecor-plugins.o \
|
||||
../../src/xdg-decoration-protocol.o ../../src/xdg-shell-protocol.o \
|
||||
../../src/text-input-protocol.o cursor-settings.o os-compatibility.o
|
||||
PROTOCOLS = /usr/share/wayland-protocols
|
||||
|
||||
|
||||
#$(UNAME) is set to the product of `uname -s` in makeinclude
|
||||
|
||||
Linux_PROTO = /usr/share/wayland-protocols
|
||||
FreeBSD_PROTO = /usr/local/share/wayland-protocols
|
||||
PROTOCOLS = ${${UNAME}_PROTO}
|
||||
|
||||
Linux_INPUT =
|
||||
FreeBSD_INPUT = linux/input.h
|
||||
EXTRA_INPUT= ${${UNAME}_INPUT}
|
||||
|
||||
Linux_CFLAGS =
|
||||
FreeBSD_CFLAGS = -I/usr/local/include
|
||||
EXTRA_DECOR = ${${UNAME}_CFLAGS}
|
||||
|
||||
CFLAGS_DECOR = -I. -I../.. -I../../src -I../src $(EXTRA_DECOR) -fPIC -D_GNU_SOURCE \
|
||||
-DUSE_SYSTEM_LIBDECOR=0 -DHAVE_MEMFD_CREATE -DHAVE_MKOSTEMP -DHAVE_POSIX_FALLOCATE
|
||||
|
||||
Linux_NOPIE = -no-pie
|
||||
FreeBSD_NOPIE =
|
||||
NOPIE = ${${UNAME}_NOPIE}
|
||||
|
||||
all : demo $(GLWLDEMO)
|
||||
|
||||
depend:
|
||||
: echo "libdecor/build: make depend..."
|
||||
|
||||
linux/input.h :
|
||||
mkdir -p linux
|
||||
echo "#define BTN_LEFT 0x110" > linux/input.h
|
||||
echo "#define BTN_RIGHT 0x111" >> linux/input.h
|
||||
echo "#define BTN_MIDDLE 0x112" >> linux/input.h
|
||||
|
||||
fl_libdecor.o : fl_libdecor.c ../src/libdecor.c ../../src/xdg-shell-protocol.c ../../src/xdg-decoration-protocol.c ../../src/text-input-protocol.c
|
||||
$(CC) $(CFLAGS) $(CFLAGS_DECOR) -c fl_libdecor.c -DLIBDECOR_PLUGIN_API_VERSION=1 -DLIBDECOR_PLUGIN_DIR=\"/usr/local/lib\"
|
||||
|
||||
fl_libdecor-plugins.o : fl_libdecor-plugins.c ../src/plugins/cairo/libdecor-cairo.c
|
||||
fl_libdecor-plugins.o : $(EXTRA_INPUT) fl_libdecor-plugins.c ../src/plugins/cairo/libdecor-cairo.c
|
||||
$(CC) $(CFLAGS) $(CFLAGS_DECOR) -c fl_libdecor-plugins.c -DLIBDECOR_PLUGIN_API_VERSION=1 -DLIBDECOR_PLUGIN_DIR=\"/usr/local/lib\"
|
||||
|
||||
libdecor-cairo-blur.o : ../src/plugins/cairo/libdecor-cairo-blur.c
|
||||
|
@ -65,11 +90,11 @@ cursor-settings.o : ../src/cursor-settings.c
|
|||
$(PROTOCOLS)/unstable/text-input/text-input-unstable-v3.xml \
|
||||
../../src/text-input-client-protocol.h
|
||||
|
||||
demo : ../demo/demo.c $(OBJECTS)
|
||||
$(CC) -o demo ../demo/demo.c -D_GNU_SOURCE -I../.. -I../src -I. -I../../src $(OBJECTS) $(LDLIBS) -lm -rdynamic -no-pie -Wl,--defsym=fl_libdecor_using_weston=0
|
||||
demo : ../demo/demo.c $(OBJECTS) $(EXTRA_INPUT)
|
||||
$(CC) -o demo ../demo/demo.c -D_GNU_SOURCE -I../.. -I../src -I. -I../../src $(EXTRA_DECOR) $(OBJECTS) $(LDLIBS) -lm -rdynamic $(NOPIE) -Wl,--defsym=fl_libdecor_using_weston=0
|
||||
|
||||
egl : ../demo/egl.c $(OBJECTS)
|
||||
$(CC) -o egl ../demo/egl.c -D_GNU_SOURCE -I../.. -I../src -I. -I../../src $(OBJECTS) $(GLDLIBS) -lm -rdynamic -no-pie -Wl,--defsym=fl_libdecor_using_weston=0
|
||||
$(CC) -o egl ../demo/egl.c -D_GNU_SOURCE -I../.. -I../src -I. -I../../src $(EXTRA_DECOR) $(OBJECTS) $(GLDLIBS) -lm -rdynamic $(NOPIE) -Wl,--defsym=fl_libdecor_using_weston=0
|
||||
|
||||
|
||||
install:
|
||||
|
@ -79,3 +104,4 @@ uninstall:
|
|||
|
||||
clean:
|
||||
$(RM) *.o ../../src/xdg-*.c ../../src/xdg-*.h ../../src/xdg-*.o ../../src/text-input-* demo egl
|
||||
rm -r -f linux
|
||||
|
|
|
@ -27,6 +27,7 @@ FLTK_VERSION = @FLTK_VERSION@
|
|||
# FLTK configuration options: BUILD = { WIN | OSX | X11 | XFT | WAYLAND }
|
||||
|
||||
BUILD = @BUILD@
|
||||
UNAME = @UNAME@
|
||||
|
||||
# Standard configure variables
|
||||
|
||||
|
|
Loading…
Reference in New Issue