Skip to content

Commit 1fb7d60

Browse files
committed
build: create test_addons function
test/addons/.buildstamp and test/addons-napi/.buildstamp targets are very similar except that they operate on different directories. This commit extracts the common parts into a function to avoid the duplication.
1 parent 1f74b9f commit 1fb7d60

File tree

1 file changed

+14
-22
lines changed

1 file changed

+14
-22
lines changed

Makefile

Lines changed: 14 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,18 @@ ADDONS_BINDING_SOURCES := \
234234
$(filter-out test/addons/??_*/*.cc, $(wildcard test/addons/*/*.cc)) \
235235
$(filter-out test/addons/??_*/*.h, $(wildcard test/addons/*/*.h))
236236

237+
define test_addons
238+
@for dirname in $(1)/*/; do \
239+
printf "\nBuilding addon $$PWD/$$dirname\n" ; \
240+
env MAKEFLAGS="-j1" $(NODE) deps/npm/node_modules/node-gyp/bin/node-gyp \
241+
--loglevel=$(LOGLEVEL) rebuild \
242+
--python="$(PYTHON)" \
243+
--directory="$$PWD/$$dirname" \
244+
--nodedir="$$PWD" || exit 1 ; \
245+
done
246+
touch $(2)
247+
endef
248+
237249
# Implicitly depends on $(NODE_EXE), see the build-addons rule for rationale.
238250
# Depends on node-gyp package.json so that build-addons is (re)executed when
239251
# node-gyp is updated as part of an npm update.
@@ -243,17 +255,7 @@ test/addons/.buildstamp: config.gypi \
243255
deps/uv/include/*.h deps/v8/include/*.h \
244256
src/node.h src/node_buffer.h src/node_object_wrap.h src/node_version.h \
245257
test/addons/.docbuildstamp
246-
# Cannot use $(wildcard test/addons/*/) here, it's evaluated before
247-
# embedded addons have been generated from the documentation.
248-
@for dirname in test/addons/*/; do \
249-
printf "\nBuilding addon $$PWD/$$dirname\n" ; \
250-
env MAKEFLAGS="-j1" $(NODE) deps/npm/node_modules/node-gyp/bin/node-gyp \
251-
--loglevel=$(LOGLEVEL) rebuild \
252-
--python="$(PYTHON)" \
253-
--directory="$$PWD/$$dirname" \
254-
--nodedir="$$PWD" || exit 1 ; \
255-
done
256-
touch $@
258+
$(call test_addons, $(@D), $@)
257259

258260
# .buildstamp and .docbuildstamp need $(NODE_EXE) but cannot depend on it
259261
# directly because it calls make recursively. The parent make cannot know
@@ -278,17 +280,7 @@ test/addons-napi/.buildstamp: config.gypi \
278280
deps/uv/include/*.h deps/v8/include/*.h \
279281
src/node.h src/node_buffer.h src/node_object_wrap.h src/node_version.h \
280282
src/node_api.h src/node_api_types.h
281-
# Cannot use $(wildcard test/addons-napi/*/) here, it's evaluated before
282-
# embedded addons have been generated from the documentation.
283-
@for dirname in test/addons-napi/*/; do \
284-
printf "\nBuilding addon $$PWD/$$dirname\n" ; \
285-
env MAKEFLAGS="-j1" $(NODE) deps/npm/node_modules/node-gyp/bin/node-gyp \
286-
--loglevel=$(LOGLEVEL) rebuild \
287-
--python="$(PYTHON)" \
288-
--directory="$$PWD/$$dirname" \
289-
--nodedir="$$PWD" || exit 1 ; \
290-
done
291-
touch $@
283+
$(call test_addons, $(@D), $@)
292284

293285
# .buildstamp and .docbuildstamp need $(NODE_EXE) but cannot depend on it
294286
# directly because it calls make recursively. The parent make cannot know

0 commit comments

Comments
 (0)