From: Stefan Herbrechtsmeier <stefan.herbrechtsme...@weidmueller.com>
Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsme...@weidmueller.com> --- meta/classes/npm_build.bbclass | 77 ++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 meta/classes/npm_build.bbclass diff --git a/meta/classes/npm_build.bbclass b/meta/classes/npm_build.bbclass new file mode 100644 index 0000000000..388eef9519 --- /dev/null +++ b/meta/classes/npm_build.bbclass @@ -0,0 +1,77 @@ +# Copyright (C) 2021 Weidmüller Interface GmbH & Co. KG +# Author: Stefan Herbrechtsmeier <stefan.herbrechtsme...@weidmueller.com> +# +# A bbclass to build and install an npm package and its dependencies. +# +# Usage: +# inherit npm_build +# +# Optional variables: +# EXTRA_OENPM_BUILD: +# Extra arguments for the npm build script. +# +# NPM_BUILD_ARCH: +# Override the auto generated npm architecture for host build +# +# NPM_BUILD_SCRIPT: +# Override the default `build` script + +inherit npm + +EXTRA_OENPM_BUILD ?= "" + +NPM_BUILD_ARCH ?= "${@npm_target_arch_map(d.getVar("BUILD_ARCH"))}" + +NPM_BUILD_SCRIPT ?= "build" + +# Override npm package source path with build package folder +NPM_BUILD_SOURCEPATH = "${S}" +NPM_SOURCEPATH = "${B}/src" + +oe_runnpm_run_script() { + script=$1 + shift + + oe_runnpm run-script \ + ${script} \ + -- \ + "$@" +} + +oe_npm_setup_host_env () { + export CC="${BUILD_CC}" + export CXX="${BUILD_CXX}" + + export CPP="${BUILD_CPP}" + export LD="${BUILD_LD}" + + export AR="${BUILD_AR}" + export STRIP="${BUILD_STRIP}" + export NM="${BUILD_NM}" + export READELF="${BUILD_READELF}" + + export CPPFLAGS="${BUILD_CPPFLAGS}" + export CFLAGS="${BUILD_CFLAGS}" + export CXXFLAGS="${BUILD_CXXFLAGS}" + export LDFLAGS="${BUILD_LDFLAGS}" +} + +do_compile_host() { + oe_npm_setup_host_env + + # Copy sources without preserve mode and ownership + # to prevent ugly file permissions + cp -a --no-preserve=mode,ownership ${NPM_BUILD_SOURCEPATH}/. ${NPM_SOURCEPATH}/ + + # Rebuild dependencies + cd ${NPM_SOURCEPATH} + oe_runnpm_rebuild ${NPM_BUILD_ARCH} ${EXTRA_OENPM} + + # Run Build script to build main npm package + if [ -n "${NPM_BUILD_SCRIPT}" ] ; then + cd ${NPM_SOURCEPATH} + oe_runnpm_run_script ${NPM_BUILD_SCRIPT} ${EXTRA_OENPM_BUILD} + fi +} +do_compile_host[cleandirs] = "${NPM_SOURCEPATH}" +addtask compile_host after do_patch do_prepare_recipe_sysroot before do_compile do_install -- 2.20.1
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#158699): https://lists.openembedded.org/g/openembedded-core/message/158699 Mute This Topic: https://lists.openembedded.org/mt/87282277/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-