diff --git a/examples/demo_app/MODULE.bazel b/examples/demo_app/MODULE.bazel index 83222b9..0038b68 100644 --- a/examples/demo_app/MODULE.bazel +++ b/examples/demo_app/MODULE.bazel @@ -4,7 +4,7 @@ module( ) # Uses the local checkout because rules_flutter is not published. -bazel_dep(name = "sameri11_rules_flutter", repo_name = "rules_flutter", version = "0.1.0") +bazel_dep(name = "sameri11_rules_flutter", version = "0.1.0", repo_name = "rules_flutter") local_path_override( module_name = "sameri11_rules_flutter", path = "../..", diff --git a/examples/local_plugin/MODULE.bazel b/examples/local_plugin/MODULE.bazel index cb409ab..3f31b76 100644 --- a/examples/local_plugin/MODULE.bazel +++ b/examples/local_plugin/MODULE.bazel @@ -5,7 +5,7 @@ module( # Monorepo app with a local path plugin. It exercises non-root metadata and # plugin paths outside the pub cache. -bazel_dep(name = "sameri11_rules_flutter", repo_name = "rules_flutter", version = "0.1.0") +bazel_dep(name = "sameri11_rules_flutter", version = "0.1.0", repo_name = "rules_flutter") local_path_override( module_name = "sameri11_rules_flutter", path = "../..", diff --git a/examples/no_plugins/MODULE.bazel b/examples/no_plugins/MODULE.bazel index 5cd6127..262ca56 100644 --- a/examples/no_plugins/MODULE.bazel +++ b/examples/no_plugins/MODULE.bazel @@ -5,7 +5,7 @@ module( # Minimal plugin-free module: no plugins.project(), generated segment, or # @flutter_plugins repository. -bazel_dep(name = "sameri11_rules_flutter", repo_name = "rules_flutter", version = "0.1.0") +bazel_dep(name = "sameri11_rules_flutter", version = "0.1.0", repo_name = "rules_flutter") local_path_override( module_name = "sameri11_rules_flutter", path = "../..", diff --git a/examples/pub_plugins/MODULE.bazel b/examples/pub_plugins/MODULE.bazel index 33e5991..bd09c70 100644 --- a/examples/pub_plugins/MODULE.bazel +++ b/examples/pub_plugins/MODULE.bazel @@ -4,7 +4,7 @@ module( ) # Copyable flat app: pub plugins, one ABI, no recipes or path dependencies. -bazel_dep(name = "sameri11_rules_flutter", repo_name = "rules_flutter", version = "0.1.0") +bazel_dep(name = "sameri11_rules_flutter", version = "0.1.0", repo_name = "rules_flutter") local_path_override( module_name = "sameri11_rules_flutter", path = "../..", diff --git a/flutter/BUILD.bazel b/flutter/BUILD.bazel new file mode 100644 index 0000000..0ca983a --- /dev/null +++ b/flutter/BUILD.bazel @@ -0,0 +1,3 @@ +package(default_visibility = ["//visibility:public"]) + +exports_files(["defs.bzl"]) diff --git a/flutter/defs.bzl b/flutter/defs.bzl new file mode 100644 index 0000000..39e73b2 --- /dev/null +++ b/flutter/defs.bzl @@ -0,0 +1,53 @@ +"""Supported BUILD-file API for Flutter Consumer Modules. + +Consumer BUILD files load this entrypoint, not ``//tools/flutter``. These +exports are the complete consumer contract; implementation may move without a +consumer migration. +""" + +load("//tools/flutter:abis.bzl", _ABIS = "ABIS") +load( + "//tools/flutter:android.bzl", + _android_native_lib_jar = "android_native_lib_jar", + _flutter_android_binary = "flutter_android_binary", + _flutter_android_libs = "flutter_android_libs", + _jni_lib_jar = "jni_lib_jar", + _strip_native_libs = "strip_native_libs", +) +load( + "//tools/flutter:defs.bzl", + _dart_kernel = "dart_kernel", + _flutter_aot_library = "flutter_aot_library", + _flutter_app = "flutter_app", + _flutter_assets = "flutter_assets", + _pub_path_deps_check = "pub_path_deps_check", + _pub_plugins_check = "pub_plugins_check", +) +load( + "//tools/flutter:embedding.bzl", + _flutter_embedding_library = "flutter_embedding_library", +) +load("//tools/flutter:pubspec.bzl", _flutter_pubspec = "flutter_pubspec") +load( + "//tools/flutter:recipe.bzl", + _flutter_native_contribution = "flutter_native_contribution", + _flutter_native_libs = "flutter_native_libs", +) + +# Assigning these names re-exports them to downstream BUILD files. +ABIS = _ABIS +android_native_lib_jar = _android_native_lib_jar +dart_kernel = _dart_kernel +flutter_android_binary = _flutter_android_binary +flutter_android_libs = _flutter_android_libs +flutter_aot_library = _flutter_aot_library +flutter_app = _flutter_app +flutter_assets = _flutter_assets +flutter_embedding_library = _flutter_embedding_library +flutter_native_contribution = _flutter_native_contribution +flutter_native_libs = _flutter_native_libs +flutter_pubspec = _flutter_pubspec +jni_lib_jar = _jni_lib_jar +pub_path_deps_check = _pub_path_deps_check +pub_plugins_check = _pub_plugins_check +strip_native_libs = _strip_native_libs diff --git a/tests/consumer/BUILD.bazel b/tests/consumer/BUILD.bazel index 645d911..88f10fe 100644 --- a/tests/consumer/BUILD.bazel +++ b/tests/consumer/BUILD.bazel @@ -1,16 +1,44 @@ -"""Every public symbol, instantiated the way a consumer would. +"""Supported BUILD API, including macro-internal coverage. -This is an API test, not a behaviour test. +Public symbols load from @rules_flutter//flutter:defs.bzl. Specialist loads +cover private helpers, not Consumer Module API. """ load("@bazel_skylib//rules:build_test.bzl", "build_test") -load("@rules_flutter//tools/flutter:abis.bzl", "ABIS", "aot_gen_snapshot", "aot_target_compatible_with", "plugin_repo_target") -load("@rules_flutter//tools/flutter:android.bzl", "android_native_lib_jar", "flutter_android_binary", "flutter_android_libs", "flutter_assets_dir", "jni_lib_jar", "strip_native_libs") -load("@rules_flutter//tools/flutter:bundle.bzl", "CLASSES", "NATIVE_LIB", "flutter_bundle_contribution") -load("@rules_flutter//tools/flutter:defs.bzl", "dart_aot_elf", "dart_kernel", "flutter_aot_library", "flutter_assets", "pub_path_deps_check", "pub_plugins_check") -load("@rules_flutter//tools/flutter:embedding.bzl", "flutter_embedding_library") -load("@rules_flutter//tools/flutter:pubspec.bzl", "flutter_pubspec") -load("@rules_flutter//tools/flutter:recipe.bzl", "flutter_native_contribution", "flutter_native_libs") +load( + "@rules_flutter//flutter:defs.bzl", + "ABIS", + "android_native_lib_jar", + "dart_kernel", + "flutter_android_binary", + "flutter_android_libs", + "flutter_aot_library", + "flutter_assets", + "flutter_embedding_library", + "flutter_native_contribution", + "flutter_native_libs", + "flutter_pubspec", + "jni_lib_jar", + "pub_path_deps_check", + "pub_plugins_check", + "strip_native_libs", +) +load( + "@rules_flutter//tools/flutter:abis.bzl", + "aot_gen_snapshot", + "aot_target_compatible_with", + "plugin_repo_target", +) +load("@rules_flutter//tools/flutter:android.bzl", "flutter_assets_dir") +load( + "@rules_flutter//tools/flutter:bundle.bzl", + "CLASSES", + "NATIVE_LIB", + "flutter_bundle_contribution", +) + +# Macro-internal coverage only; not Consumer Module API. +load("@rules_flutter//tools/flutter:defs.bzl", "dart_aot_elf") load("@rules_java//java:defs.bzl", "java_import") load(":assertions.bzl", "expect_equal", "expect_label_equal") diff --git a/tests/consumer/MODULE.bazel b/tests/consumer/MODULE.bazel index 67fc758..44bed83 100644 --- a/tests/consumer/MODULE.bazel +++ b/tests/consumer/MODULE.bazel @@ -3,7 +3,7 @@ module( version = "0.0.1", ) -bazel_dep(name = "sameri11_rules_flutter", repo_name = "rules_flutter", version = "0.1.0") +bazel_dep(name = "sameri11_rules_flutter", version = "0.1.0", repo_name = "rules_flutter") bazel_dep(name = "bazel_skylib", version = "1.8.2") local_path_override( diff --git a/tests/consumer/external_app/MODULE.bazel b/tests/consumer/external_app/MODULE.bazel index e2e6961..2220e7a 100644 --- a/tests/consumer/external_app/MODULE.bazel +++ b/tests/consumer/external_app/MODULE.bazel @@ -3,7 +3,7 @@ module( version = "0.0.1", ) -bazel_dep(name = "sameri11_rules_flutter", repo_name = "rules_flutter", version = "0.1.0") +bazel_dep(name = "sameri11_rules_flutter", version = "0.1.0", repo_name = "rules_flutter") # Report and ignore unmatched dependency recipes. plugins = use_extension("@rules_flutter//tools/flutter:plugins.bzl", "flutter_plugins_ext") diff --git a/tests/consumer/external_app/app/BUILD.bazel b/tests/consumer/external_app/app/BUILD.bazel index 58a5ce2..fd43baf 100644 --- a/tests/consumer/external_app/app/BUILD.bazel +++ b/tests/consumer/external_app/app/BUILD.bazel @@ -1,4 +1,4 @@ -load("@rules_flutter//tools/flutter:defs.bzl", "flutter_app") +load("@rules_flutter//flutter:defs.bzl", "flutter_app") package(default_visibility = ["//visibility:public"]) diff --git a/tests/consumer/standard_layout/BUILD.bazel b/tests/consumer/standard_layout/BUILD.bazel index f2feebf..4b774a0 100644 --- a/tests/consumer/standard_layout/BUILD.bazel +++ b/tests/consumer/standard_layout/BUILD.bazel @@ -13,7 +13,7 @@ # package pairs that with `plugins = None`, proving the complete shape creates no # @flutter_plugins label and defaults to no federated Dart registrant. -load("@rules_flutter//tools/flutter:defs.bzl", "flutter_app") +load("@rules_flutter//flutter:defs.bzl", "flutter_app") package(default_visibility = ["//visibility:public"]) diff --git a/tests/core_consumer/MODULE.bazel b/tests/core_consumer/MODULE.bazel index bc7e573..8809683 100644 --- a/tests/core_consumer/MODULE.bazel +++ b/tests/core_consumer/MODULE.bazel @@ -3,7 +3,7 @@ module( version = "0.0.1", ) -bazel_dep(name = "sameri11_rules_flutter", repo_name = "rules_flutter", version = "0.1.0") +bazel_dep(name = "sameri11_rules_flutter", version = "0.1.0", repo_name = "rules_flutter") local_path_override( module_name = "sameri11_rules_flutter", path = "../..",