###############################################################################1#2# IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.3#4# By downloading, copying, installing or using the software you agree to this license.5# If you do not agree to this license, do not download, install,6# copy or use the software.7#8#9# License Agreement10# For Open Source Computer Vision Library11#12# Copyright (C) 2013, OpenCV Foundation, all rights reserved.13# Third party copyrights are property of their respective owners.14#15# Redistribution and use in source and binary forms, with or without modification,16# are permitted provided that the following conditions are met:17#18# * Redistribution's of source code must retain the above copyright notice,19# this list of conditions and the following disclaimer.20#21# * Redistribution's in binary form must reproduce the above copyright notice,22# this list of conditions and the following disclaimer in the documentation23# and/or other materials provided with the distribution.24#25# * The name of the copyright holders may not be used to endorse or promote products26# derived from this software without specific prior written permission.27#28# This software is provided by the copyright holders and contributors "as is" and29# any express or implied warranties, including, but not limited to, the implied30# warranties of merchantability and fitness for a particular purpose are disclaimed.31# In no event shall the Intel Corporation or contributors be liable for any direct,32# indirect, incidental, special, exemplary, or consequential damages33# (including, but not limited to, procurement of substitute goods or services;34# loss of use, data, or profits; or business interruption) however caused35# and on any theory of liability, whether in contract, strict liability,36# or tort (including negligence or otherwise) arising in any way out of37# the use of this software, even if advised of the possibility of such damage.38#3940###############################################################################41# AUTHOR: Sajjad Taheri, University of California, Irvine. sajjadt[at]uci[dot]edu42#43# LICENSE AGREEMENT44# Copyright (c) 2015, 2015 The Regents of the University of California (Regents)45#46# Redistribution and use in source and binary forms, with or without47# modification, are permitted provided that the following conditions are met:48# 1. Redistributions of source code must retain the above copyright49# notice, this list of conditions and the following disclaimer.50# 2. Redistributions in binary form must reproduce the above copyright51# notice, this list of conditions and the following disclaimer in the52# documentation and/or other materials provided with the distribution.53# 3. Neither the name of the University nor the54# names of its contributors may be used to endorse or promote products55# derived from this software without specific prior written permission.56#57# THIS SOFTWARE IS PROVIDED BY COPYRIGHT HOLDERS AND CONTRIBUTORS ''AS IS'' AND ANY58# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED59# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE60# DISCLAIMED. IN NO EVENT SHALL COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY61# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES62# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;63# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND64# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT65# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS66# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.67###############################################################################68import os, sys, re, json, shutil69from subprocess import Popen, PIPE, STDOUT7071def make_umd(opencvjs, cvjs):72src = open(opencvjs, 'r+b')73dst = open(cvjs, 'w+b')74content = src.read()75dst.seek(0)76# inspired by https://github.com/umdjs/umd/blob/95563fd6b46f06bda0af143ff67292e7f6ede6b7/templates/returnExportsGlobal.js77dst.write(("""78(function (root, factory) {79if (typeof define === 'function' && define.amd) {80// AMD. Register as an anonymous module.81define(function () {82return (root.cv = factory());83});84} else if (typeof module === 'object' && module.exports) {85// Node. Does not work with strict CommonJS, but86// only CommonJS-like environments that support module.exports,87// like Node.88module.exports = factory();89} else {90// Browser globals91root.cv = factory();92}93}(this, function () {94%s95if (typeof Module === 'undefined')96Module = {};97return cv(Module);98}));99""" % (content)).lstrip())100101if __name__ == "__main__":102if len(sys.argv) > 2:103opencvjs = sys.argv[1]104cvjs = sys.argv[2]105if not os.path.isfile(opencvjs):106print('opencv.js file not found! Have you compiled the opencv_js module?')107exit()108make_umd(opencvjs, cvjs);109110111