bazel: bower support
* npm_binary (download tarball packaged npm apps)
* bower_archive (download a zip file, to be put in WORKSPACE)
* bower_component (defining a bower library, with dependency )
* bower_component_bundle (zipping up libraries together)
* js_component (insert plain js file into bower component bundle)
* bower2bazel.py: run bower to find dependencies, generate a .bzl to
define archives and define components
Tested:
python tools/js/bower2bazel.py -w lib/js/bower_archives.bzl -b \
lib/js/bower_components.bzl
bazel build polygerrit-ui:components
unzip -v bazel-bin/polygerrit-ui/components.zip > /tmp/baz
buck build polygerrit-ui:polygerrit_components
unzip -v buck-out/gen/polygerrit-ui/polygerrit_components/polygerrit_components.bower_components.zip > /tmp/buck
diff /tmp/buck /tmp/baz
The diff corresponds to newer file versions pinned through bower2bazel.
Change-Id: I4f33914d4853bcf8afe78b4719d0e0e83b139031
This commit is contained in:
40
lib/BUILD
40
lib/BUILD
@@ -1,40 +1,6 @@
|
||||
exports_files([
|
||||
"LICENSE-antlr",
|
||||
"LICENSE-Apache1.1",
|
||||
"LICENSE-Apache2.0",
|
||||
"LICENSE-args4j",
|
||||
"LICENSE-asciidoctor",
|
||||
"LICENSE-automaton",
|
||||
"LICENSE-bouncycastle",
|
||||
"LICENSE-CC-BY3.0-unported",
|
||||
"LICENSE-clippy",
|
||||
"LICENSE-codemirror-minified",
|
||||
"LICENSE-codemirror-original",
|
||||
"LICENSE-diffy",
|
||||
"LICENSE-es6-promise",
|
||||
"LICENSE-fetch",
|
||||
"LICENSE-h2",
|
||||
"LICENSE-highlightjs",
|
||||
"LICENSE-icu4j",
|
||||
"LICENSE-jgit",
|
||||
"LICENSE-jsch",
|
||||
"LICENSE-MPL1.1",
|
||||
"LICENSE-moment",
|
||||
"LICENSE-OFL1.1",
|
||||
"LICENSE-ow2",
|
||||
"LICENSE-page.js",
|
||||
"LICENSE-polymer",
|
||||
"LICENSE-postgresql",
|
||||
"LICENSE-prologcafe",
|
||||
"LICENSE-promise-polyfill",
|
||||
"LICENSE-protobuf",
|
||||
"LICENSE-PublicDomain",
|
||||
"LICENSE-silk_icons",
|
||||
"LICENSE-slf4j",
|
||||
"LICENSE-xz",
|
||||
|
||||
"LICENSE-DO_NOT_DISTRIBUTE",
|
||||
])
|
||||
exports_files(glob([
|
||||
"LICENSE-*"
|
||||
]))
|
||||
|
||||
filegroup(
|
||||
name = 'all-licenses',
|
||||
|
||||
34
lib/fonts/BUILD
Normal file
34
lib/fonts/BUILD
Normal file
@@ -0,0 +1,34 @@
|
||||
load('//tools/bzl:genrule2.bzl', 'genrule2')
|
||||
|
||||
# Source Code Pro. Version 2.010 Roman / 1.030 Italics
|
||||
# https://github.com/adobe-fonts/source-code-pro/releases/tag/2.010R-ro%2F1.030R-it
|
||||
genrule2(
|
||||
name = 'sourcecodepro',
|
||||
cmd = 'zip -rq $@ $(SRCS)',
|
||||
srcs = [
|
||||
'SourceCodePro-Regular.woff',
|
||||
'SourceCodePro-Regular.woff2'
|
||||
],
|
||||
out = 'sourcecodepro.zip',
|
||||
# TODO(hanwen): fix this
|
||||
# license = 'OFL1.1',
|
||||
visibility = ['//visibility:public'],
|
||||
)
|
||||
|
||||
# Open Sans at Revision 53a5266 and converted using a Google woff file
|
||||
# converter (same one that Google Fonts uses).
|
||||
# https://github.com/google/fonts/tree/master/apache/opensans
|
||||
genrule2(
|
||||
name = 'opensans',
|
||||
cmd = 'zip -rq $@ $(SRCS)',
|
||||
srcs = [
|
||||
'OpenSans-Bold.woff',
|
||||
'OpenSans-Bold.woff2',
|
||||
'OpenSans-Regular.woff',
|
||||
'OpenSans-Regular.woff2'
|
||||
],
|
||||
out = 'opensans.zip',
|
||||
# TODO(hanwen): license.
|
||||
# license = 'Apache2.0',
|
||||
visibility = ['//visibility:public'],
|
||||
)
|
||||
4
lib/highlightjs/BUILD
Normal file
4
lib/highlightjs/BUILD
Normal file
@@ -0,0 +1,4 @@
|
||||
|
||||
exports_files([
|
||||
'highlight.min.js',
|
||||
])
|
||||
@@ -124,7 +124,8 @@ def _combine_components(deps):
|
||||
cmds = ['cd $TMP']
|
||||
for d in deps:
|
||||
cmds.append('unzip -qo $(location %s)' % d)
|
||||
cmds.append('zip -r $OUT bower_components')
|
||||
cmds.append("find bower_components -exec touch -t 198001010000 '{}' ';'")
|
||||
cmds.append('zip -r $OUT bower_components/*')
|
||||
return ' && '.join(cmds)
|
||||
|
||||
|
||||
|
||||
29
lib/js/BUILD
Normal file
29
lib/js/BUILD
Normal file
@@ -0,0 +1,29 @@
|
||||
package(default_visibility = [ "//visibility:public" ])
|
||||
load('//tools/bzl:genrule2.bzl', 'genrule2')
|
||||
load("//tools/bzl:js.bzl", "bower_component", "js_component")
|
||||
|
||||
# For updating the bower versions, run
|
||||
#
|
||||
# python tools/js/bower2bazel.py -w lib/js/bower_archives.bzl -b lib/js/bower_components.bzl
|
||||
#
|
||||
|
||||
# For adding a new component as dependency to a bower_component_bundle
|
||||
#
|
||||
# 1) add a new bower_archive in WORKSPACE
|
||||
#
|
||||
# 2) add bower_component(name="my_new_dependency", seed=True) here
|
||||
#
|
||||
# 3) run bower2bazel (see above.)
|
||||
#
|
||||
# 4) remove bower_component(name="my_new_dependency", .. ) here
|
||||
#
|
||||
|
||||
|
||||
load("//lib/js:bower_components.bzl", "define_bower_components")
|
||||
define_bower_components()
|
||||
|
||||
js_component(
|
||||
name = 'highlightjs',
|
||||
srcs = [ "//lib/highlightjs:highlight.min.js" ],
|
||||
license = '//lib:LICENSE-highlightjs',
|
||||
)
|
||||
68
lib/js/bower_archives.bzl
Normal file
68
lib/js/bower_archives.bzl
Normal file
@@ -0,0 +1,68 @@
|
||||
# DO NOT EDIT
|
||||
# generated with the following command:
|
||||
#
|
||||
# tools/js/bower2bazel.py -w lib/js/bower_archives.bzl -b lib/js/bower_components.bzl
|
||||
#
|
||||
|
||||
load("//tools/bzl:js.bzl", "bower_archive")
|
||||
def load_bower_archives():
|
||||
bower_archive(
|
||||
name = "iron-a11y-announcer",
|
||||
package = "iron-a11y-announcer",
|
||||
version = "1.0.5",
|
||||
sha1 = "007902c041dd8863a1fe893f62450852f4d8c69b")
|
||||
bower_archive(
|
||||
name = "iron-a11y-keys-behavior",
|
||||
package = "iron-a11y-keys-behavior",
|
||||
version = "1.1.9",
|
||||
sha1 = "f58358ee652c67e6e721364ba50fb77a2ece1465")
|
||||
bower_archive(
|
||||
name = "iron-behaviors",
|
||||
package = "iron-behaviors",
|
||||
version = "1.0.17",
|
||||
sha1 = "47df7e1c2b97978dcafa13edb50fbdb702570acd")
|
||||
bower_archive(
|
||||
name = "iron-fit-behavior",
|
||||
package = "iron-fit-behavior",
|
||||
version = "1.2.5",
|
||||
sha1 = "5938815cd227843fc77ebeac480b999600a76157")
|
||||
bower_archive(
|
||||
name = "iron-flex-layout",
|
||||
package = "iron-flex-layout",
|
||||
version = "1.3.1",
|
||||
sha1 = "ba696394abff5e799fc06eb11bff4720129a1b52")
|
||||
bower_archive(
|
||||
name = "iron-form-element-behavior",
|
||||
package = "iron-form-element-behavior",
|
||||
version = "1.0.6",
|
||||
sha1 = "8d9e6530edc1b99bec1a5c34853911fba3701220")
|
||||
bower_archive(
|
||||
name = "iron-meta",
|
||||
package = "iron-meta",
|
||||
version = "1.1.2",
|
||||
sha1 = "dc22fe05e1cb5f94f30a7193d3433ca1808773b8")
|
||||
bower_archive(
|
||||
name = "iron-resizable-behavior",
|
||||
package = "iron-resizable-behavior",
|
||||
version = "1.0.5",
|
||||
sha1 = "2ebe983377dceb3794dd335131050656e23e2beb")
|
||||
bower_archive(
|
||||
name = "iron-validatable-behavior",
|
||||
package = "iron-validatable-behavior",
|
||||
version = "1.1.1",
|
||||
sha1 = "480423380be0536f948735d91bc472f6e7ced5b4")
|
||||
bower_archive(
|
||||
name = "neon-animation",
|
||||
package = "neon-animation",
|
||||
version = "1.2.4",
|
||||
sha1 = "e8ccbb930c4b7ff470b1450baa901618888a7fd3")
|
||||
bower_archive(
|
||||
name = "web-animations-js",
|
||||
package = "web-animations-js",
|
||||
version = "2.2.2",
|
||||
sha1 = "6276a9f227da7d4ccaf77c202b50e174dd11a2c2")
|
||||
bower_archive(
|
||||
name = "webcomponentsjs",
|
||||
package = "webcomponentsjs",
|
||||
version = "0.7.22",
|
||||
sha1 = "8ba97a4a279ec6973a19b171c462a7b5cf454fb9")
|
||||
162
lib/js/bower_components.bzl
Normal file
162
lib/js/bower_components.bzl
Normal file
@@ -0,0 +1,162 @@
|
||||
# DO NOT EDIT
|
||||
# generated with the following command:
|
||||
#
|
||||
# tools/js/bower2bazel.py -w lib/js/bower_archives.bzl -b lib/js/bower_components.bzl
|
||||
#
|
||||
|
||||
load("//tools/bzl:js.bzl", "bower_component")
|
||||
def define_bower_components():
|
||||
bower_component(
|
||||
name = "es6-promise",
|
||||
license = "//lib:LICENSE-polymer",
|
||||
seed = True,
|
||||
)
|
||||
bower_component(
|
||||
name = "fetch",
|
||||
license = "//lib:LICENSE-fetch",
|
||||
seed = True,
|
||||
)
|
||||
bower_component(
|
||||
name = "iron-a11y-announcer",
|
||||
license = "//lib:LICENSE-polymer",
|
||||
deps = [ ":polymer" ],
|
||||
)
|
||||
bower_component(
|
||||
name = "iron-a11y-keys-behavior",
|
||||
license = "//lib:LICENSE-polymer",
|
||||
deps = [ ":polymer" ],
|
||||
)
|
||||
bower_component(
|
||||
name = "iron-autogrow-textarea",
|
||||
license = "//lib:LICENSE-polymer",
|
||||
deps = [
|
||||
":iron-behaviors",
|
||||
":iron-flex-layout",
|
||||
":iron-form-element-behavior",
|
||||
":iron-validatable-behavior",
|
||||
":polymer",
|
||||
],
|
||||
seed = True,
|
||||
)
|
||||
bower_component(
|
||||
name = "iron-behaviors",
|
||||
license = "//lib:LICENSE-polymer",
|
||||
deps = [
|
||||
":iron-a11y-keys-behavior",
|
||||
":polymer",
|
||||
],
|
||||
)
|
||||
bower_component(
|
||||
name = "iron-dropdown",
|
||||
license = "//lib:LICENSE-polymer",
|
||||
deps = [
|
||||
":iron-a11y-keys-behavior",
|
||||
":iron-behaviors",
|
||||
":iron-overlay-behavior",
|
||||
":iron-resizable-behavior",
|
||||
":neon-animation",
|
||||
":polymer",
|
||||
],
|
||||
seed = True,
|
||||
)
|
||||
bower_component(
|
||||
name = "iron-fit-behavior",
|
||||
license = "//lib:LICENSE-polymer",
|
||||
deps = [ ":polymer" ],
|
||||
)
|
||||
bower_component(
|
||||
name = "iron-flex-layout",
|
||||
license = "//lib:LICENSE-polymer",
|
||||
deps = [ ":polymer" ],
|
||||
)
|
||||
bower_component(
|
||||
name = "iron-form-element-behavior",
|
||||
license = "//lib:LICENSE-polymer",
|
||||
deps = [ ":polymer" ],
|
||||
)
|
||||
bower_component(
|
||||
name = "iron-input",
|
||||
license = "//lib:LICENSE-polymer",
|
||||
deps = [
|
||||
":iron-a11y-announcer",
|
||||
":iron-validatable-behavior",
|
||||
":polymer",
|
||||
],
|
||||
seed = True,
|
||||
)
|
||||
bower_component(
|
||||
name = "iron-meta",
|
||||
license = "//lib:LICENSE-polymer",
|
||||
deps = [ ":polymer" ],
|
||||
)
|
||||
bower_component(
|
||||
name = "iron-overlay-behavior",
|
||||
license = "//lib:LICENSE-polymer",
|
||||
deps = [
|
||||
":iron-a11y-keys-behavior",
|
||||
":iron-fit-behavior",
|
||||
":iron-resizable-behavior",
|
||||
":polymer",
|
||||
],
|
||||
seed = True,
|
||||
)
|
||||
bower_component(
|
||||
name = "iron-resizable-behavior",
|
||||
license = "//lib:LICENSE-polymer",
|
||||
deps = [ ":polymer" ],
|
||||
)
|
||||
bower_component(
|
||||
name = "iron-selector",
|
||||
license = "//lib:LICENSE-polymer",
|
||||
deps = [ ":polymer" ],
|
||||
seed = True,
|
||||
)
|
||||
bower_component(
|
||||
name = "iron-validatable-behavior",
|
||||
license = "//lib:LICENSE-polymer",
|
||||
deps = [
|
||||
":iron-meta",
|
||||
":polymer",
|
||||
],
|
||||
)
|
||||
bower_component(
|
||||
name = "moment",
|
||||
license = "//lib:LICENSE-moment",
|
||||
seed = True,
|
||||
)
|
||||
bower_component(
|
||||
name = "neon-animation",
|
||||
license = "//lib:LICENSE-polymer",
|
||||
deps = [
|
||||
":iron-meta",
|
||||
":iron-resizable-behavior",
|
||||
":iron-selector",
|
||||
":polymer",
|
||||
":web-animations-js",
|
||||
],
|
||||
)
|
||||
bower_component(
|
||||
name = "page",
|
||||
license = "//lib:LICENSE-polymer",
|
||||
seed = True,
|
||||
)
|
||||
bower_component(
|
||||
name = "polymer",
|
||||
license = "//lib:LICENSE-polymer",
|
||||
deps = [ ":webcomponentsjs" ],
|
||||
seed = True,
|
||||
)
|
||||
bower_component(
|
||||
name = "promise-polyfill",
|
||||
license = "//lib:LICENSE-polymer",
|
||||
deps = [ ":polymer" ],
|
||||
seed = True,
|
||||
)
|
||||
bower_component(
|
||||
name = "web-animations-js",
|
||||
license = "//lib:LICENSE-Apache2.0",
|
||||
)
|
||||
bower_component(
|
||||
name = "webcomponentsjs",
|
||||
license = "//lib:LICENSE-polymer",
|
||||
)
|
||||
Reference in New Issue
Block a user