blob: a54da64026c7251e98deb738288a569bdf050857 [file] [log] [blame]
Sean Condondfc6dba2019-11-09 11:50:23 +00001package(default_visibility = ["//visibility:public"])
2
3load("//tools/build/bazel:jdk_genrule.bzl", "jdk_genrule")
4load("@npm_angular_bazel//:index.bzl", "ng_module", "ng_package")
5load("@npm_bazel_karma//:index.bzl", "ts_web_test_suite")
6load("@npm_bazel_typescript//:index.bzl", "ts_devserver", "ts_library")
7
8ng_module(
9 name = "gui2-fw-lib",
10 srcs = glob(
11 include = [
12 "src/lib/**/*.ts",
13 "src/environments/environment*ts",
14 "src/public_api.ts",
15 ],
16 exclude = [
17 "**/*.spec.ts",
18 "src/test.ts",
19 "initialize_testbed.ts",
20 ],
21 ),
22 assets = glob([
23 "src/lib/**/*.css",
24 "src/lib/**/*.html",
25 ]),
26 data = [
27 ":tsconfig.lib.json",
28 ],
29 entry_point = ":src/public_api.ts",
30 module_name = "gui2-fw-lib",
31 tsconfig = "tsconfig.json",
32 deps = [
33 "@npm//@angular/animations",
34 "@npm//@angular/core",
35 "@npm//@angular/platform-browser-dynamic",
36 "@npm//@angular/router",
37 "@npm//@types",
38 "@npm//d3",
39 "@npm//rxjs",
40 ],
41)
42
43filegroup(
44 name = "rxjs_umd_modules",
45 srcs = [
46 # do not sort
47 "@npm//:node_modules/rxjs/bundles/rxjs.umd.js",
48 ":rxjs_shims.js",
49 ],
50)
51
52ts_library(
53 name = "test_lib",
54 testonly = 1,
55 srcs = glob(["**/*.spec.ts"]),
56 deps = [
57 ":gui2-fw-lib",
58 "@npm//@angular/common",
59 "@npm//@angular/core",
60 "@npm//@angular/platform-browser",
61 "@npm//@angular/router",
62 "@npm//@types",
63 "@npm//rxjs",
64 ],
65)
66
67ts_library(
68 name = "initialize_testbed",
69 testonly = 1,
70 srcs = [
71 "initialize_testbed.ts",
72 ],
73 deps = [
74 "@npm//@angular/core",
75 "@npm//@angular/platform-browser-dynamic",
76 "@npm//@types",
77 ],
78)
79
80ng_package(
81 name = "gui2-fw-lib-pkg",
82 srcs = [
83 "package.json",
84 ],
85 data = glob(
86 include = [
87 "src/assets/**",
88 ],
89 exclude = [
90 "**/*.spec.ts",
91 ],
92 ),
93 entry_point = ":src/public-api.ts", # In reality this is ignored and index.ts is used
94 # include_devmode_srcs = False,
95 readme_md = "README.md",
96 deps = [
97 ":gui2-fw-lib",
98 "@npm//@angular/animations",
99 "@npm//@angular/common",
100 "@npm//@angular/core",
101 "@npm//@angular/platform-browser-dynamic",
102 "@npm//@angular/router",
103 "@npm//@types",
104 "@npm//d3",
105 "@npm//rxjs",
106 ],
107)
108
109genrule(
110 name = "onos-gui2-fw-ng-build",
111 srcs = [
112 ":gui2-fw-lib-pkg",
113 ],
114 outs = [
115 "gui2-fw-ng-build-prod.log",
116 "gui2-fw-lib-ver.tgz",
117 ],
118 cmd = "ROOT=`pwd` &&" +
119 " mkdir -p package &&" +
120 " cp -r bazel-out/k8-fastbuild/bin/web/gui2-fw-lib/projects/gui2-fw-lib/gui2-fw-lib-pkg/* package &&" +
121 " tar -czhf $$ROOT/$(location gui2-fw-lib-ver.tgz) package &&" +
122 " touch $$ROOT/$(location gui2-fw-ng-build-prod.log)", # to get the log always as the 2nd file
123 message = "GUI FW Lib build",
124 visibility = ["//visibility:public"],
125)
126
127ts_web_test_suite(
128 name = "gui2-fw-lib-test",
129 srcs = [
130 "@npm//:node_modules/tslib/tslib.js",
131 ],
132 # do not sort
133 bootstrap = [
134 "@npm//:node_modules/zone.js/dist/zone-testing-bundle.js",
135 "@npm//:node_modules/reflect-metadata/Reflect.js",
136 ],
137 browsers = [
138 "@io_bazel_rules_webtesting//browsers:chromium-local",
139 ],
140 runtime_deps = [
141 ":initialize_testbed",
142 ],
143 deps = [
144 ":rxjs_umd_modules",
145 ":test_lib",
146 "@npm//karma-jasmine",
147 ],
148)
149
150jdk_genrule(
151 name = "gui2_fw_lib_ext_css",
152 srcs = glob(
153 [
154 "src/lib/widget/panel.css",
155 "src/lib/widget/panel-theme.css",
156 "src/lib/widget/table.css",
157 "src/lib/widget/table.theme.css",
158 "src/lib/widget/table.theme.css",
159 "src/lib/layer/loading.service.css",
160 ],
161 ),
162 outs = ["gui2_fw_lib_css.jar"],
163 cmd = " ROOT=`pwd` &&" +
164 " cd web/gui2-fw-lib/projects/gui2-fw-lib/src/lib &&" +
165 " jar Mcf $$ROOT/$@ .",
166 visibility = ["//visibility:public"],
167)