X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=meta-agl-core%2Frecipes-graphics%2Fwayland%2Fweston-ini-conf.bb;fp=meta-agl-core%2Frecipes-graphics%2Fwayland%2Fweston-ini-conf.bb;h=70130f74a5c837dda3b33e1048c07805edc7c271;hb=dd6777dfdacc691402cde0e349e9987a481efe3a;hp=16c0f046d52cc3a61d320cb9811f528205527765;hpb=cf15d1c197b2afdd4641b2415b12c011a8f1a432;p=AGL%2Fmeta-agl.git 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"