Mercurial > hg > piper-vamp-js
changeset 150:fcdba48b774e
Create a UMD module as well as the existing JS module
author | Chris Cannam <cannam@all-day-breakfast.com> |
---|---|
date | Tue, 14 Mar 2017 14:40:24 +0000 |
parents | bc181392fc7f |
children | 9a0947545d37 |
files | Makefile.inc |
diffstat | 1 files changed, 10 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/Makefile.inc Wed Feb 22 11:04:32 2017 +0000 +++ b/Makefile.inc Tue Mar 14 14:40:24 2017 +0000 @@ -49,7 +49,9 @@ $(PIPERCPP_DIR)/ext/json11/json11.cpp EM_MODULE_EXT := .js +EM_MODULE_U_EXT := .umd.js EM_MODULE := $(MODULE_NAME)$(EM_MODULE_EXT) +EM_MODULE_U := $(MODULE_NAME)$(EM_MODULE_U_EXT) EM_MODULE_SYMBOL := $(MODULE_NAME)Module SO_MODULE_EXT := .so @@ -73,7 +75,7 @@ DEFINES := $(DEFINES) INCLUDES := -I$(SRC_DIR) -I$(SDK_DIR) -I$(PIPERCPP_DIR) -I$(PIPERCPP_DIR)/ext $(INCLUDES) -em: $(EM_MODULE) +em: $(EM_MODULE) $(EM_MODULE_U) em: CXX := em++ em: CC := emcc em: CXXFLAGS := -std=c++11 -fPIC -Wall -Wextra $(DEFINES) $(OPTFLAGS) $(EMFLAGS) $(INCLUDES) @@ -102,13 +104,18 @@ $(EM_MODULE): $(OBJECTS) $(CXX) $(OPTFLAGS) -o $@ $^ $(LDFLAGS) && \ - ( echo "if (typeof process === 'object') module.exports=$(EM_MODULE_SYMBOL);" >> $(EM_MODULE) ) + ( echo "if (typeof process === 'object') module.exports=$(EM_MODULE_SYMBOL);" >> $(EM_MODULE) ) + +$(EM_MODULE_U): $(EM_MODULE) + ( echo "(function (factory) { if (typeof module === 'object' && typeof module.exports === 'object') { factory(module.exports); } else if (typeof define === 'function' && define.amd) { define([\"exports\"], factory); } } ) (function (exports) { \"use strict\"; exports.createLibrary = function(Module) { Module = Module || {};" > $(EM_MODULE_U) ) && \ + tail -n +4 $(EM_MODULE) | head -n -4 >> $(EM_MODULE_U) && \ + ( echo ; echo "return Module; }; }); " >> $(EM_MODULE_U) ) $(SO_MODULE): $(OBJECTS) $(CXX) -o $@ $^ $(LDFLAGS) test: em - node $(MY_DIR)/test/node-load-test.js $(shell pwd)/$(EM_MODULE) + node $(MY_DIR)/test/node-load-test.js $(shell pwd)/$(EM_MODULE_U) clean: rm -f $(OBJECTS)