1# allarch is required because the files this recipe produces (html and
2# javascript) are valid for any target, regardless of architecture.  The allarch
3# class removes your compiler definitions, as it assumes that anything that
4# requires a compiler is platform specific.  Unfortunately, one of the build
5# tools uses libsass for compiling the css templates, and it needs a compiler to
6# build the library that it then uses to compress the scss into normal css.
7# Enabling allarch, then re-adding the compiler flags was the best of the bad
8# options
9LICENSE = "Apache-2.0"
10LIC_FILES_CHKSUM = "file://LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
11DEPENDS:prepend = "nodejs-native "
12SRCREV = "1ff8e89fd2397c468ab0237158e5aeeff2692413"
13PV = "1.0+git${SRCPV}"
14# This recipe requires online access to build, as it uses NPM for dependency
15# management and resolution.
16PR = "r1"
17
18SRC_URI = "git://github.com/openbmc/webui-vue.git;branch=master;protocol=https"
19
20S = "${WORKDIR}/git"
21
22inherit allarch
23
24# Ideally this recipe would use npm.bbclass, but it doesn't.  Since npm uses
25# python3, we need to inherit this to get the Yocto version of python3 instead
26# of the hosttools one.
27inherit python3native
28
29RDEPENDS:${PN}:append = " bmcweb"
30
31EXTRA_OENPM ?= ""
32
33export CXX = "${BUILD_CXX}"
34export CC = "${BUILD_CC}"
35export CFLAGS = "${BUILD_CFLAGS}"
36export CPPFLAGS = "${BUILD_CPPFLAGS}"
37export CXXFLAGS = "${BUILD_CXXFLAGS}"
38
39# Workaround
40# Network access from task are disabled by default on Yocto 3.5
41# https://git.yoctoproject.org/poky/tree/documentation/migration-guides/migration-3.5.rst#n25
42do_compile[network] = "1"
43do_compile () {
44    cd ${S}
45    rm -rf node_modules
46    npm --loglevel info --proxy=${http_proxy} --https-proxy=${https_proxy} install
47    npm run build ${EXTRA_OENPM}
48}
49do_install () {
50   # create directory structure
51   install -d ${D}${datadir}/www
52   cp -r ${S}/dist/** ${D}${datadir}/www
53   find ${D}${datadir}/www -type f -exec chmod a=r,u+w '{}' +
54   find ${D}${datadir}/www -type d -exec chmod a=rx,u+w '{}' +
55}
56
57FILES:${PN} += "${datadir}/www/*"
58