addon-sdk/copy_source.py

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/addon-sdk/copy_source.py	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,63 @@
     1.4 +# This Source Code Form is subject to the terms of the Mozilla Public
     1.5 +# License, v. 2.0. If a copy of the MPL was not distributed with this
     1.6 +# file, You can obtain one at http://mozilla.org/MPL/2.0/.
     1.7 +
     1.8 +import os
     1.9 +import sys
    1.10 +
    1.11 +if len(sys.argv) != 5:
    1.12 +    print >> sys.stderr, "Usage: copy_source.py " \
    1.13 +                         "<topsrcdir> <source directory> <target directory> <isb2g>"
    1.14 +    sys.exit(1)
    1.15 +
    1.16 +topsrcdir = sys.argv[1]
    1.17 +source_dir = sys.argv[2]
    1.18 +target_dir = sys.argv[3]
    1.19 +isB2G = int(sys.argv[4])
    1.20 +
    1.21 +print """
    1.22 +DEPTH     = ..
    1.23 +topsrcdir = %(topsrcdir)s
    1.24 +srcdir    = %(topsrcdir)s/addon-sdk
    1.25 +VPATH     = %(topsrcdir)s/addon-sdk
    1.26 +
    1.27 +include $(topsrcdir)/config/config.mk
    1.28 +""" % {'topsrcdir': topsrcdir}
    1.29 +
    1.30 +real_source = source_dir.replace('/', os.sep)
    1.31 +if not os.path.exists(real_source):
    1.32 +    print >> sys.stderr, "Error: Missing source file %s" % real_source
    1.33 +    sys.exit(1)
    1.34 +elif not os.path.isdir(real_source):
    1.35 +    print >> sys.stderr, "Error: Source %s is not a directory" % real_source
    1.36 +    sys.exit(1)
    1.37 +for dirpath, dirnames, filenames in os.walk(real_source):
    1.38 +    if not filenames:
    1.39 +        continue
    1.40 +    dirpath = dirpath.replace(os.sep, '/')
    1.41 +    relative = dirpath[len(source_dir):]
    1.42 +    if isB2G and relative in [
    1.43 +        '/method/test',
    1.44 +        '/sdk/ui',
    1.45 +        '/sdk/ui/button',
    1.46 +        '/sdk/ui/sidebar',
    1.47 +        '/sdk/places',
    1.48 +        '/sdk/places/host',
    1.49 +        '/sdk/tabs',
    1.50 +        '/sdk/panel',
    1.51 +        '/sdk/frame',
    1.52 +        '/sdk/test',
    1.53 +        '/sdk/window',
    1.54 +        '/sdk/windows',
    1.55 +        '/sdk/deprecated',
    1.56 +        ]:
    1.57 +        continue
    1.58 +    varname = "COMMONJS%s" % relative.replace('/', '_')
    1.59 +    print "%s_FILES = \\" % varname
    1.60 +    for name in filenames:
    1.61 +        print "  %s/%s \\" % (dirpath, name)
    1.62 +    print "  $(NULL)"
    1.63 +    print "%s_DEST = %s%s" % (varname, target_dir, relative)
    1.64 +    print "INSTALL_TARGETS += %s\n" % varname
    1.65 +
    1.66 +print "include $(topsrcdir)/config/rules.mk"

mercurial