From 3c19395217351be9e2c2f6eb4230fd6ce1a20858 Mon Sep 17 00:00:00 2001 From: Paul Gschwendtner Date: Thu, 15 Nov 2018 18:41:03 +0100 Subject: [PATCH 1/3] build: dev-app with bazel --- src/a11y-demo/BUILD.bazel | 2 +- src/dev-app/BUILD.bazel | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 src/dev-app/BUILD.bazel diff --git a/src/a11y-demo/BUILD.bazel b/src/a11y-demo/BUILD.bazel index 43f68fced0d8..3da17cce2691 100644 --- a/src/a11y-demo/BUILD.bazel +++ b/src/a11y-demo/BUILD.bazel @@ -9,7 +9,7 @@ sass_generate_binaries("a11y_demo_scss", glob(["**/*.scss"])) ng_module( name = "a11y-demo", - srcs = glob(["**/*.ts"], exclude=["**/*.spec.ts"]), + srcs = glob(["**/*.ts"]), assets = glob(["**/*.html"]) + [":a11y_demo_scss"], deps = [ "@angular//packages/core", diff --git a/src/dev-app/BUILD.bazel b/src/dev-app/BUILD.bazel new file mode 100644 index 000000000000..499412f4c7ec --- /dev/null +++ b/src/dev-app/BUILD.bazel @@ -0,0 +1,29 @@ +package(default_visibility=["//visibility:public"]) + +load("//:packages.bzl", "MATERIAL_TARGETS", "CDK_TARGETS") +load("//tools:defaults.bzl", "ng_module") +load("//tools:sass_generate_binaries.bzl", "sass_generate_binaries") + +# Generate sass binaries for all nested SCSS files. +sass_generate_binaries("dev_app_scss", glob(["**/*.scss"])) + +ng_module( + name = "dev-app", + srcs = glob(["**/*.ts"], exclude = ["system-config.ts"]), + assets = glob(["**/*.html"]) + [":dev_app_scss"], + deps = [ + "@angular//packages/common", + "@angular//packages/common/http", + "@angular//packages/core", + "@angular//packages/elements", + "@angular//packages/forms", + "@angular//packages/platform-browser", + "@angular//packages/platform-browser-dynamic", + "@angular//packages/platform-browser/animations", + "@angular//packages/router", + "@rxjs", + "@rxjs//operators", + "//src/cdk-experimental", + "//src/material-examples:examples", + ] + CDK_TARGETS + MATERIAL_TARGETS +) From facce7b487445f26619f3823cddd38924a073848 Mon Sep 17 00:00:00 2001 From: Paul Gschwendtner Date: Fri, 16 Nov 2018 19:12:25 +0100 Subject: [PATCH 2/3] Ensure cdk-textfield mixins are available --- src/dev-app/BUILD.bazel | 5 ++++- src/dev-app/ripple/ripple-demo.scss | 2 -- tools/sass_generate_binaries.bzl | 3 ++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/dev-app/BUILD.bazel b/src/dev-app/BUILD.bazel index 499412f4c7ec..6b24d08b6a90 100644 --- a/src/dev-app/BUILD.bazel +++ b/src/dev-app/BUILD.bazel @@ -5,7 +5,10 @@ load("//tools:defaults.bzl", "ng_module") load("//tools:sass_generate_binaries.bzl", "sass_generate_binaries") # Generate sass binaries for all nested SCSS files. -sass_generate_binaries("dev_app_scss", glob(["**/*.scss"])) +sass_generate_binaries("dev_app_scss", glob(["**/*.scss"]), [ + # Needed for the input-demo sass file that uses CDK text-field mixins. + "//src/cdk/text-field:text_field_scss_lib" +]) ng_module( name = "dev-app", diff --git a/src/dev-app/ripple/ripple-demo.scss b/src/dev-app/ripple/ripple-demo.scss index 07808e242078..9bfd3a185cbb 100644 --- a/src/dev-app/ripple/ripple-demo.scss +++ b/src/dev-app/ripple/ripple-demo.scss @@ -1,5 +1,3 @@ -@import '../../lib/core/style/vendor-prefixes'; - .demo-ripple { button, a { margin: 8px; diff --git a/tools/sass_generate_binaries.bzl b/tools/sass_generate_binaries.bzl index d6cfca657ac9..55f72cc096e9 100644 --- a/tools/sass_generate_binaries.bzl +++ b/tools/sass_generate_binaries.bzl @@ -3,11 +3,12 @@ load("@io_bazel_rules_sass//:defs.bzl", "sass_binary") # Generates multiple sass binaries based on a specified list of source files. # All generated sass binaries will be exposed as a filegroup that has all the # CSS outputs from the specified source files. -def sass_generate_binaries(filegroup_name, source_files): +def sass_generate_binaries(filegroup_name, source_files, sass_deps = []): for source_file in source_files: sass_binary( name = source_file.replace('.scss', '_scss'), src = source_file, + deps = sass_deps, ) native.filegroup( From 93ee3bbe50da53aa91b064be0232eee1cf1ada28 Mon Sep 17 00:00:00 2001 From: Paul Gschwendtner Date: Fri, 16 Nov 2018 19:29:47 +0100 Subject: [PATCH 3/3] Build theme separately (because it depends on the theming mixins) --- src/dev-app/BUILD.bazel | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/dev-app/BUILD.bazel b/src/dev-app/BUILD.bazel index 6b24d08b6a90..8dca57b42f71 100644 --- a/src/dev-app/BUILD.bazel +++ b/src/dev-app/BUILD.bazel @@ -1,11 +1,12 @@ package(default_visibility=["//visibility:public"]) +load("@io_bazel_rules_sass//:defs.bzl", "sass_binary") load("//:packages.bzl", "MATERIAL_TARGETS", "CDK_TARGETS") load("//tools:defaults.bzl", "ng_module") load("//tools:sass_generate_binaries.bzl", "sass_generate_binaries") # Generate sass binaries for all nested SCSS files. -sass_generate_binaries("dev_app_scss", glob(["**/*.scss"]), [ +sass_generate_binaries("dev_app_scss", glob(["**/*.scss"], exclude = ["theme.scss"]), [ # Needed for the input-demo sass file that uses CDK text-field mixins. "//src/cdk/text-field:text_field_scss_lib" ]) @@ -13,7 +14,7 @@ sass_generate_binaries("dev_app_scss", glob(["**/*.scss"]), [ ng_module( name = "dev-app", srcs = glob(["**/*.ts"], exclude = ["system-config.ts"]), - assets = glob(["**/*.html"]) + [":dev_app_scss"], + assets = glob(["**/*.html"]) + [":dev_app_scss", ":theme"], deps = [ "@angular//packages/common", "@angular//packages/common/http", @@ -30,3 +31,11 @@ ng_module( "//src/material-examples:examples", ] + CDK_TARGETS + MATERIAL_TARGETS ) + +sass_binary( + name = "theme", + src = "theme.scss", + deps = [ + "//src/lib/core:all_themes" + ] +)