1*f578df4fSJingwen Chenload(":android_mock.bzl", "android_binary", "android_library") 2*f578df4fSJingwen Chenload("@rules_license//tools:test_helpers.bzl", "golden_cmd_test") 3*f578df4fSJingwen Chen 4*f578df4fSJingwen Chen 5*f578df4fSJingwen Chen# These two rules today capture what an android_binary would look like. 6*f578df4fSJingwen Chen# This rule represents the Android specific code that displays licenses 7*f578df4fSJingwen Chen# on the display. Note that it does not depend on anything to get the 8*f578df4fSJingwen Chen# license contents; the implementation of these rules macros handle that 9*f578df4fSJingwen Chen# detail. 10*f578df4fSJingwen Chenandroid_library( 11*f578df4fSJingwen Chen name = "licenses", 12*f578df4fSJingwen Chen srcs = [ 13*f578df4fSJingwen Chen "license_display.sh", 14*f578df4fSJingwen Chen ], 15*f578df4fSJingwen Chen data = [ 16*f578df4fSJingwen Chen "@rules_license//distro:distro", 17*f578df4fSJingwen Chen ], 18*f578df4fSJingwen Chen) 19*f578df4fSJingwen Chen 20*f578df4fSJingwen Chen# This captures how the application would be built. The dependencies of this 21*f578df4fSJingwen Chen# rule are crawled to identify third-party licenses in use. The macro definition 22*f578df4fSJingwen Chen# of this rule creates a graph to capture that process of identifying licenses, 23*f578df4fSJingwen Chen# building the licenses target, and finally invoking the "real" android_binary 24*f578df4fSJingwen Chen# rule to build the final output with the injected license content. 25*f578df4fSJingwen Chenandroid_binary( 26*f578df4fSJingwen Chen name = "main", 27*f578df4fSJingwen Chen srcs = ["main.sh"], 28*f578df4fSJingwen Chen deps = [ 29*f578df4fSJingwen Chen ], 30*f578df4fSJingwen Chen data = [ 31*f578df4fSJingwen Chen ":licenses", 32*f578df4fSJingwen Chen ], 33*f578df4fSJingwen Chen) 34*f578df4fSJingwen Chen 35*f578df4fSJingwen Chengolden_cmd_test( 36*f578df4fSJingwen Chen name = "main_test", 37*f578df4fSJingwen Chen srcs = [], 38*f578df4fSJingwen Chen cmd = "$(location :main)", 39*f578df4fSJingwen Chen tools = [":main"], 40*f578df4fSJingwen Chen golden = "main_golden.txt", 41*f578df4fSJingwen Chen) 42