forked from crossbario/autobahn-js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
SConstruct
81 lines (61 loc) · 2.32 KB
/
SConstruct
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
import os
import json
import pkg_resources
taschenmesser = pkg_resources.resource_filename('taschenmesser', '..')
#taschenmesser = "../../infrequent/taschenmesser"
ENV=os.environ
ENV['JS_COMPILER'] = '/usr/local/lib/node_modules/google-closure-compiler/compiler.jar'
env = Environment(tools = ['default', 'taschenmesser'],
toolpath = [taschenmesser],
ENV = ENV)
# Get package version
version = json.load(open('package.json'))['version']
print("Building AutobahnJS {}".format(version))
env['JS_DEFINES'] = {
# 'AUTOBAHNJS_VERSION': "'%s'" % version
}
# Source for Autobahn package
sourcedir = 'lib'
sources = [os.path.join(sourcedir, d) for d in os.listdir(sourcedir)]
# browserified
ab = env.Command("build/autobahn.js",
"lib/autobahn.js",
"./node_modules/browserify/bin/cmd.js $SOURCE --ignore-missing --standalone autobahn -o $TARGET")
Depends(ab, sources)
# minimized (with Google Closure)
ab_min = env.JavaScript("build/autobahn.min.js",
ab,
#JS_COMPILATION_LEVEL = "ADVANCED_OPTIMIZATIONS")
JS_COMPILATION_LEVEL = "SIMPLE_OPTIMIZATIONS",
JS_OUTPUT_LANG = "ES5")
# minimized & compressed
ab_min_gz = env.GZip("build/autobahn.min.jgz",
ab_min)
# list of generated artifacts
artifacts = [ab,
ab_min,
ab_min_gz]
# generate checksum files
checksums = []
checksums.append(env.MD5("build/CHECKSUM.MD5", artifacts))
checksums.append(env.SHA1("build/CHECKSUM.SHA1", artifacts))
checksums.append(env.SHA256("build/CHECKSUM.SHA256", artifacts))
# fixed static files to be included
statics = []
for f in ["LICENSE"]:
statics.append(Command("build/{}".format(f), [], Copy("$TARGET", f)))
# The default target consists of all artifacts that
# would get published
uploads = artifacts + checksums + statics
Default(uploads)
#Default(ab)
# Upload to Amazon S3
env['S3_BUCKET'] = 'autobahn'
env['S3_OBJECT_ACL'] = 'public-read'
published = []
for s in ['latest', version]:
e = env.Clone(S3_BUCKET_PREFIX = 'autobahnjs/{}/'.format(s)) # note the trailing slash!
published.append(AlwaysBuild(e.S3("build/.S3UploadDone_{}".format(s), uploads)))
# The uploaded stuff is always considered stale
Depends(published, uploads)
Alias("publish", published)