mirror of
https://git.yoctoproject.org/poky
synced 2026-05-31 00:39:46 +00:00
wayland: always build wayland-scanner
By passing --disable-scanner to use a native wayland-scanner binary a target wayland-scanner binary isn't built, which is a problem if you want to use it on the target or in a SDK. Instead, always build a target wayland-scanner binary, and have an option to control whether that binary or a host-provided binary is used at build time. [ YOCTO #7931 ] (From OE-Core rev: 7aeeaf287169d4d7de5349626caa93a3941c2c35) Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
fa0845f2ad
commit
df7386e7df
@@ -0,0 +1,105 @@
|
|||||||
|
build: always build wayland-scanner
|
||||||
|
|
||||||
|
The previous idiom for building a cross-compiled Wayland is to build once for
|
||||||
|
the build host (with --enable-scanner --disable-libraries) to get a
|
||||||
|
wayland-scanner binary that can then be used in a cross-compile (with
|
||||||
|
--disable-scanner). The problem with this is that the cross wayland is missing
|
||||||
|
a wayland-scanner binary, which means you then can't do any Wayland development
|
||||||
|
on the target.
|
||||||
|
|
||||||
|
Instead, always build wayland-scanner for the target and change
|
||||||
|
--enable/disable-scanner to --with/without-host-scanner. Normal builds use the
|
||||||
|
default of --without-host-scanner and run the wayland-scanner it just built, and
|
||||||
|
cross-compiled builds pass --with-host-scanner to use a previously built host
|
||||||
|
scanner but still get a wayland-scanner to install.
|
||||||
|
|
||||||
|
(a theoretically neater solution would be to build two scanners if required (one
|
||||||
|
to run and one to install), but automake makes this overly complicated)
|
||||||
|
|
||||||
|
Signed-off-by: Ross Burton <ross.burton@intel.com>
|
||||||
|
Upstream-Status: Submitted
|
||||||
|
|
||||||
|
diff --git a/Makefile.am b/Makefile.am
|
||||||
|
index c19494f..c2d929b 100644
|
||||||
|
--- a/Makefile.am
|
||||||
|
+++ b/Makefile.am
|
||||||
|
@@ -64,16 +64,17 @@ nodist_libwayland_client_la_SOURCES = \
|
||||||
|
|
||||||
|
pkgconfig_DATA += src/wayland-client.pc src/wayland-server.pc
|
||||||
|
|
||||||
|
-if ENABLE_SCANNER
|
||||||
|
-wayland_scanner = $(top_builddir)/wayland-scanner
|
||||||
|
bin_PROGRAMS = wayland-scanner
|
||||||
|
wayland_scanner_SOURCES = src/scanner.c
|
||||||
|
wayland_scanner_CFLAGS = $(EXPAT_CFLAGS) $(AM_CFLAGS)
|
||||||
|
wayland_scanner_LDADD = $(EXPAT_LIBS) libwayland-util.la
|
||||||
|
-$(BUILT_SOURCES) : wayland-scanner
|
||||||
|
pkgconfig_DATA += src/wayland-scanner.pc
|
||||||
|
-else
|
||||||
|
+
|
||||||
|
+if HOST_SCANNER
|
||||||
|
wayland_scanner = wayland-scanner
|
||||||
|
+else
|
||||||
|
+$(BUILT_SOURCES) : wayland-scanner
|
||||||
|
+wayland_scanner = $(top_builddir)/wayland-scanner
|
||||||
|
endif
|
||||||
|
|
||||||
|
protocol/%-protocol.c : $(top_srcdir)/protocol/%.xml
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index c2a804e..de0b02f 100644
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -65,11 +65,11 @@ AC_CHECK_DECL(CLOCK_MONOTONIC,[],
|
||||||
|
[[#include <time.h>]])
|
||||||
|
AC_CHECK_HEADERS([execinfo.h])
|
||||||
|
|
||||||
|
-AC_ARG_ENABLE([scanner],
|
||||||
|
- [AC_HELP_STRING([--disable-scanner],
|
||||||
|
- [Disable compilation of wayland-scanner])],
|
||||||
|
- [],
|
||||||
|
- [enable_scanner=yes])
|
||||||
|
+AC_ARG_WITH([host-scanner],
|
||||||
|
+ [AC_HELP_STRING([--with-host-scanner],
|
||||||
|
+ [Use a host wayland-scanner])],
|
||||||
|
+ [],
|
||||||
|
+ [with_host_scanner=no])
|
||||||
|
|
||||||
|
AC_ARG_ENABLE([documentation],
|
||||||
|
[AC_HELP_STRING([--disable-documentation],
|
||||||
|
@@ -77,25 +77,23 @@ AC_ARG_ENABLE([documentation],
|
||||||
|
[],
|
||||||
|
[enable_documentation=yes])
|
||||||
|
|
||||||
|
-AM_CONDITIONAL(ENABLE_SCANNER, test "x$enable_scanner" = xyes)
|
||||||
|
+AM_CONDITIONAL(HOST_SCANNER, test "x$with_host_scanner" = xyes)
|
||||||
|
|
||||||
|
AC_ARG_WITH(icondir, [ --with-icondir=<dir> Look for cursor icons here],
|
||||||
|
[ ICONDIR=$withval],
|
||||||
|
[ ICONDIR=${datadir}/icons])
|
||||||
|
AC_SUBST([ICONDIR])
|
||||||
|
|
||||||
|
-if test "x$enable_scanner" = "xyes"; then
|
||||||
|
- PKG_CHECK_MODULES(EXPAT, [expat], [],
|
||||||
|
- [AC_CHECK_HEADERS(expat.h, [],
|
||||||
|
- [AC_MSG_ERROR([Can't find expat.h. Please install expat.])])
|
||||||
|
- SAVE_LIBS="$LIBS"
|
||||||
|
- AC_SEARCH_LIBS(XML_ParserCreate, expat, [],
|
||||||
|
- [AC_MSG_ERROR([Can't find expat library. Please install expat.])])
|
||||||
|
- EXPAT_LIBS="$LIBS"
|
||||||
|
- LIBS="$SAVE_LIBS"
|
||||||
|
- AC_SUBST(EXPAT_LIBS)
|
||||||
|
- ])
|
||||||
|
-fi
|
||||||
|
+PKG_CHECK_MODULES(EXPAT, [expat], [],
|
||||||
|
+ [AC_CHECK_HEADERS(expat.h, [],
|
||||||
|
+ [AC_MSG_ERROR([Can't find expat.h. Please install expat.])])
|
||||||
|
+ SAVE_LIBS="$LIBS"
|
||||||
|
+ AC_SEARCH_LIBS(XML_ParserCreate, expat, [],
|
||||||
|
+ [AC_MSG_ERROR([Can't find expat library. Please install expat.])])
|
||||||
|
+ EXPAT_LIBS="$LIBS"
|
||||||
|
+ LIBS="$SAVE_LIBS"
|
||||||
|
+ AC_SUBST(EXPAT_LIBS)
|
||||||
|
+ ])
|
||||||
|
|
||||||
|
AC_PATH_PROG(XSLTPROC, xsltproc)
|
||||||
|
AM_CONDITIONAL([HAVE_XSLTPROC], [test "x$XSLTPROC" != "x"])
|
||||||
@@ -10,14 +10,15 @@ LICENSE = "MIT"
|
|||||||
LIC_FILES_CHKSUM = "file://COPYING;md5=1d4476a7d98dd5691c53d4d43a510c72 \
|
LIC_FILES_CHKSUM = "file://COPYING;md5=1d4476a7d98dd5691c53d4d43a510c72 \
|
||||||
file://src/wayland-server.c;endline=21;md5=079ae21dbf98ada52ec23744851b0a5c"
|
file://src/wayland-server.c;endline=21;md5=079ae21dbf98ada52ec23744851b0a5c"
|
||||||
|
|
||||||
SRC_URI = "http://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz"
|
SRC_URI = "http://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
|
||||||
|
file://always-build-scanner.patch"
|
||||||
SRC_URI[md5sum] = "6e877877c3e04cfb865cfcd0733c9ab1"
|
SRC_URI[md5sum] = "6e877877c3e04cfb865cfcd0733c9ab1"
|
||||||
SRC_URI[sha256sum] = "f17c938d1c24fd0a10f650a623a2775d329db3168b5732e498b08388ec776fc8"
|
SRC_URI[sha256sum] = "f17c938d1c24fd0a10f650a623a2775d329db3168b5732e498b08388ec776fc8"
|
||||||
|
|
||||||
SRC_URI_append_class-native = " \
|
SRC_URI_append_class-native = " \
|
||||||
file://disable-macro-checks-not-used-for-scanner.patch \
|
file://disable-macro-checks-not-used-for-scanner.patch \
|
||||||
"
|
"
|
||||||
EXTRA_OECONF_class-native = "--disable-documentation --enable-scanner"
|
EXTRA_OECONF_class-native = "--disable-documentation"
|
||||||
|
|
||||||
inherit autotools pkgconfig
|
inherit autotools pkgconfig
|
||||||
|
|
||||||
@@ -26,7 +27,7 @@ BBCLASSEXTEND = "native"
|
|||||||
|
|
||||||
DEPENDS = "expat libffi wayland-native"
|
DEPENDS = "expat libffi wayland-native"
|
||||||
|
|
||||||
EXTRA_OECONF = "--disable-documentation --disable-scanner"
|
EXTRA_OECONF = "--disable-documentation --with-host-scanner"
|
||||||
|
|
||||||
# Wayland installs a M4 macro for other projects to use, which uses the target
|
# Wayland installs a M4 macro for other projects to use, which uses the target
|
||||||
# pkg-config to find files. Replace pkg-config with pkg-config-native.
|
# pkg-config to find files. Replace pkg-config with pkg-config-native.
|
||||||
@@ -40,3 +41,6 @@ sysroot_stage_all_append_class-target () {
|
|||||||
rm ${SYSROOT_DESTDIR}/${datadir}/aclocal/wayland-scanner.m4
|
rm ${SYSROOT_DESTDIR}/${datadir}/aclocal/wayland-scanner.m4
|
||||||
cp ${STAGING_DATADIR_NATIVE}/aclocal/wayland-scanner.m4 ${SYSROOT_DESTDIR}/${datadir}/aclocal/
|
cp ${STAGING_DATADIR_NATIVE}/aclocal/wayland-scanner.m4 ${SYSROOT_DESTDIR}/${datadir}/aclocal/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FILES_${PN} = "${libdir}/*${SOLIBS}"
|
||||||
|
FILES_${PN}-dev += "${bindir} ${datadir}/wayland"
|
||||||
|
|||||||
Reference in New Issue
Block a user