From: Stefan Herbrechtsmeier <stefan.herbrechtsme...@weidmueller.com>
Add a vendor class for npm to build a npm package from source. Signed-off-by: Stefan Herbrechtsmeier <stefan.herbrechtsme...@weidmueller.com> --- meta/classes-recipe/vendor_npm_build.bbclass | 50 ++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 meta/classes-recipe/vendor_npm_build.bbclass diff --git a/meta/classes-recipe/vendor_npm_build.bbclass b/meta/classes-recipe/vendor_npm_build.bbclass new file mode 100644 index 0000000000..1cef316e01 --- /dev/null +++ b/meta/classes-recipe/vendor_npm_build.bbclass @@ -0,0 +1,50 @@ +# Copyright (C) 2025 Weidmueller Interface GmbH & Co. KG +# Stefan Herbrechtsmeier <stefan.herbrechtsme...@weidmueller.com> +# +# SPDX-License-Identifier: MIT +# + +NPM_BUILD_TARGET ?= "build" +EXTRA_OENPM_BUILD ?= "" +NPM_REBUILD ?= "1" + +inherit vendor_npm + +NPM_INSTALL_DEV = "1" +NPM_PRUNE_DEV = "1" + +NPM_NATIVE_ARCH ?= "${@map_nodejs_arch(d.getVar("BUILD_ARCH"), d)}" + +NPM_BUILD_NATIVE_FLAGS = "\ + ${NPM_COMMON_FLAGS} \ + --arch=${NPM_NATIVE_ARCH} \ + --target_arch=${NPM_NATIVE_ARCH} \ +" + +NPM_BUILD_NATIVE_ENVS = "\ + CC="${BUILD_CC}" \ + CXX="${BUILD_CXX}" \ + LINK="${BUILD_CC}" \ + AR="${BUILD_AR}" \ + CPPFLAGS="${BUILD_CPPFLAGS}" \ + CFLAGS="${BUILD_CFLAGS}" \ + CXXFLAGS="${BUILD_CXXFLAGS}" \ + LDFLAGS="${BUILD_LDFLAGS}" \ +" + +oe_run_npm_native() { + bbnote "${NPM_BUILD_NATIVE_ENVS} ${NPM} $@" + ${NPM_BUILD_NATIVE_ENVS} ${NPM} "$@" +} + +vendor_npm_build_do_compile() { + oe_run_npm_native rebuild ${NPM_BUILD_NATIVE_FLAGS} + + oe_run_npm_native run ${NPM_BUILD_TARGET} ${NPM_BUILD_NATIVE_FLAGS} ${EXTRA_OENPM_BUILD} + + if "${@['false', 'true'][oe.types.boolean(d.getVar('NPM_REBUILD'))]}"; then + vendor_npm_do_compile + fi +} + +EXPORT_FUNCTIONS do_compile -- 2.39.5
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#211145): https://lists.openembedded.org/g/openembedded-core/message/211145 Mute This Topic: https://lists.openembedded.org/mt/111123543/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-