aboutsummaryrefslogtreecommitdiffstats
path: root/meta-agl-core/recipes-graphics/wayland
diff options
context:
space:
mode:
Diffstat (limited to 'meta-agl-core/recipes-graphics/wayland')
-rw-r--r--meta-agl-core/recipes-graphics/wayland/Readme.weston-ini-conf35
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bb95
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bbappend7
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-180.cfg4
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf/virtual-0.cfg3
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf/virtual-270.cfg4
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-ini-conf/virtual.cfg18
-rw-r--r--meta-agl-core/recipes-graphics/wayland/weston-init_aglcore.inc4
8 files changed, 109 insertions, 61 deletions
diff --git a/meta-agl-core/recipes-graphics/wayland/Readme.weston-ini-conf b/meta-agl-core/recipes-graphics/wayland/Readme.weston-ini-conf
index bbd5a80c4..bb66fd2bb 100644
--- a/meta-agl-core/recipes-graphics/wayland/Readme.weston-ini-conf
+++ b/meta-agl-core/recipes-graphics/wayland/Readme.weston-ini-conf
@@ -1,10 +1,11 @@
##Generate a weston.ini file:
-To modify any of the default sections (core, shell, ivi-shell), add a
-do_configure() function to your bbappend:
+To modify any of the default sections (core, shell), add a
+do_configure() function to your bbappend, using machine (e.g. h3ulcb)
+overrides (i.e. use the MACHINE name where "machine" is used below):
'''
-do_configure() {
+do_configure_machine() {
echo repaint-window=34 >> ${WORKDIR}/core.cfg
echo transition-duration=300 >> ${WORKDIR}/ivishell.cfg
@@ -13,22 +14,30 @@ do_configure() {
'''
or:
'''
-do_configure() {
+do_configure_machine() {
sed -i -e 's/drm-backend/fbdev-backend/' ${WORKDIR}/core.cfg
}
'''
-To change the display from the default assumption of an HDMI-1-A connected
-screen that needs to be rotated 270 degrees:
-
-'''
-SRC_URI_remove = "file://hdmi-a-1-270.cfg"
-SRC_URI += "file://hdmi-a-1-90.cfg"
+To add new non-display sections, just list them in SRC_URI and WESTON_FRAGMENTS:
'''
+FILESEXTRAPATHS_prepend_machine := "${THISDIR}/${PN}:"
+
+SRC_URI_append_machine = " file://foo.cfg"
+WESTON_FRAGMENTS_append_machine = " foo"
-To add new sections just list them in SRC_URI:
'''
-FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
-SRC_URI += "file://dsi.cfg"
+To change the display, for example from the default assumption of an
+HDMI-1-A connected screen that needs to be rotated 270 degrees to one
+that is rotated 90 degrees, redefine the WESTON_DISPLAYS variable:
+
+'''
+WESTON_DISPLAYS_machine = "hdmi-a-1-90"
'''
+
+Note that the weston-ini-conf recipe automatically generates a landscape
+orientation version of weston.ini by replacing 90/270 degree rotation
+fragments for HDMI-A-1 and the virtual output into 180 and 0 degrees,
+respectively. This landscape configuration can be used in an image by
+pulling in weston-ini-conf-landscape instead of weston-ini-conf.
diff --git a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bb b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bb
index 16c0f046d..70130f74a 100644
--- a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bb
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bb
@@ -1,41 +1,86 @@
-SUMMARY = "Startup script and systemd unit file for the Weston Wayland compositor"
+SUMMARY = "Configuration file for the Weston and AGL Wayland compositors"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
-SRC_URI = "file://core.cfg \
- file://shell.cfg \
- file://hdmi-a-1-270.cfg \
- "
-
-# cluster and html5-landscape
-# core, shell, hdmi-a-1-180.cfg, virtual-landscape.cfg
-SRC_URI_remove_landscape = " \
- file://hdmi-a-1-270.cfg \
+SRC_URI = " \
+ file://core.cfg \
+ file://shell.cfg \
file://hdmi-a-1-90.cfg \
- file://virtual.cfg \
-"
-SRC_URI_append_landscape = " \
file://hdmi-a-1-180.cfg \
- file://virtual-landscape.cfg \
+ file://hdmi-a-1-270.cfg \
+ file://remote-output.cfg \
+ file://virtual-270.cfg \
+ file://virtual-0.cfg \
"
-
S = "${WORKDIR}"
-PACKAGE_ARCH = "${MACHINE_ARCH}"
+inherit update-alternatives
+
+# Default primary display/orientation fragment
+WESTON_DISPLAYS ?= "hdmi-a-1-270"
+
+# Configuration fragments to use in weston.ini.*
+# Note that some may be replaced/removed when building the landscape
+# configuration.
+WESTON_FRAGMENTS = "core shell ${WESTON_DISPLAYS}"
+
+# On-target weston.ini directory
+weston_ini_dir = "${sysconfdir}/xdg/weston"
do_compile() {
- # Put all of our cfg files together.
- rm -f ${WORKDIR}/weston.ini
- for F in ${WORKDIR}/*.cfg; do
- cat $F >> ${WORKDIR}/weston.ini
- echo >> ${WORKDIR}/weston.ini
+ # Put all of our cfg files together for a default portrait
+ # orientation configuration
+ rm -f ${WORKDIR}/weston.ini.default
+ for F in ${WESTON_FRAGMENTS}; do
+ cat ${WORKDIR}/${F}.cfg >> ${WORKDIR}/weston.ini.default
+ echo >> ${WORKDIR}/weston.ini.default
done
- sed -i -e '$ d' ${WORKDIR}/weston.ini
+ sed -i -e '$ d' ${WORKDIR}/weston.ini.default
+
+ # Do it again, but filter fragments to configure for landscape
+ rm -f ${WORKDIR}/weston.ini.landscape
+ for F in ${WESTON_FRAGMENTS}; do
+ if echo $F | grep '^hdmi-a-1-\(90\|270\)$'; then
+ F="hdmi-a-1-180"
+ elif echo $F | grep '^virtual-270$'; then
+ F="virtual-0"
+ fi
+ cat ${WORKDIR}/${F}.cfg >> ${WORKDIR}/weston.ini.landscape
+ echo >> ${WORKDIR}/weston.ini.landscape
+ done
+ sed -i -e '$ d' ${WORKDIR}/weston.ini.landscape
}
do_install_append() {
- WESTON_INI_CONFIG=${sysconfdir}/xdg/weston
- install -d ${D}${WESTON_INI_CONFIG}
- install -m 0644 ${WORKDIR}/weston.ini ${D}${WESTON_INI_CONFIG}/weston.ini
+ install -d ${D}${weston_ini_dir}
+ install -m 0644 ${WORKDIR}/weston.ini.default ${D}${weston_ini_dir}/
+ install -m 0644 ${WORKDIR}/weston.ini.landscape ${D}${weston_ini_dir}/
}
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+# Use the alternative mechanism to handle multiple packages providing
+# weston.ini. This seems simpler than other possible approaches.
+# Note that for now the generated packages are being marked as
+# incompatible with each other for simplicity, that can be changed if
+# a usecase where switching between alternatives at runtime is desirable
+# appears.
+
+ALTERNATIVE_LINK_NAME[weston.ini] = "${weston_ini_dir}/weston.ini"
+
+RDEPENDS_${PN} = "weston-init"
+RPROVIDES_${PN} = "weston-ini"
+RCONFLICTS_${PN} = "${PN}-landscape"
+ALTERNATIVE_${PN} = "weston.ini"
+ALTERNATIVE_TARGET_${PN} = "${weston_ini_dir}/weston.ini.default"
+
+PACKAGE_BEFORE_PN += "${PN}-landscape"
+
+FILES_${PN}-landscape = "${weston_ini_dir}/weston.ini.landscape"
+
+RDEPENDS_${PN}-landscape = "weston-init"
+RPROVIDES_${PN}-landscape = "weston-ini"
+RCONFLICTS_${PN}-landscape = "${PN}"
+ALTERNATIVE_${PN}-landscape = "weston.ini"
+ALTERNATIVE_TARGET_${PN}-landscape = "${weston_ini_dir}/weston.ini.landscape"
diff --git a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bbappend b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bbappend
index 179004094..0f51d5971 100644
--- a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bbappend
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf.bbappend
@@ -2,11 +2,10 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
PACKAGE_ARCH = "${MACHINE_ARCH}"
-SRC_URI += "${@bb.utils.contains("DISTRO_FEATURES", "weston-remoting", "file://remote-output.cfg", "",d)}"
-
+WESTON_DISPLAYS_append = "${@bb.utils.contains("DISTRO_FEATURES", "weston-remoting", " remote-output", "", d)}"
# For virtual machines and intel-corei7-64 we want to support both the HDMI-A-1
# and Virtual-1 outputs. This allows us to run virtual images on real hardware
# and vice versa.
-SRC_URI_append_qemuall = " file://virtual.cfg"
-SRC_URI_append_intel-corei7-64 = " file://virtual.cfg"
+WESTON_DISPLAYS_append_qemuall = " virtual-270"
+WESTON_DISPLAYS_append_intel-corei7-64 = " virtual-270"
diff --git a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-180.cfg b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-180.cfg
new file mode 100644
index 000000000..7648c779b
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/hdmi-a-1-180.cfg
@@ -0,0 +1,4 @@
+# A display is connected to HDMI-A-1
+[output]
+name=HDMI-A-1
+transform=180
diff --git a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/virtual-0.cfg b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/virtual-0.cfg
new file mode 100644
index 000000000..d69253639
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/virtual-0.cfg
@@ -0,0 +1,3 @@
+[output]
+name=Virtual-1
+mode=1920x1080
diff --git a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/virtual-270.cfg b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/virtual-270.cfg
new file mode 100644
index 000000000..0e5b536a6
--- /dev/null
+++ b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/virtual-270.cfg
@@ -0,0 +1,4 @@
+[output]
+name=Virtual-1
+mode=1920x1080
+transform=270
diff --git a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/virtual.cfg b/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/virtual.cfg
deleted file mode 100644
index 25a8fae94..000000000
--- a/meta-agl-core/recipes-graphics/wayland/weston-ini-conf/virtual.cfg
+++ /dev/null
@@ -1,18 +0,0 @@
-[output]
-name=Virtual-1
-transform=270
-mode=1920x1080
-#mode=1600x1200
-#mode=1680x1050
-#mode=1400x1050
-#mode=1600x900
-#mode=1280x1024
-#mode=1440x900
-#mode=1280x960
-#mode=1360x768
-#mode=1280x800
-#mode=1280x768
-#mode=1280x720
-#mode=800x600
-#mode=848x480
-#mode=640x480
diff --git a/meta-agl-core/recipes-graphics/wayland/weston-init_aglcore.inc b/meta-agl-core/recipes-graphics/wayland/weston-init_aglcore.inc
index 51c59ae4d..fc6ab5d97 100644
--- a/meta-agl-core/recipes-graphics/wayland/weston-init_aglcore.inc
+++ b/meta-agl-core/recipes-graphics/wayland/weston-init_aglcore.inc
@@ -1,6 +1,8 @@
+SYSTEMD_AUTO_ENABLE = "enable"
+
do_install_append() {
# Remove upstream weston.ini to avoid conflict with weston-ini-conf package
rm -f ${D}${sysconfdir}/xdg/weston/weston.ini
}
-SYSTEMD_AUTO_ENABLE = "enable"
+RDEPENDS_${PN} += "weston-ini"