83 lines
2.3 KiB
Python
83 lines
2.3 KiB
Python
# Copyright 2022 Google LLC
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# https://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
# An example of a code generator with a distinct license for the generated code.
|
|
|
|
load("@rules_license//rules:compliance.bzl", "licenses_used")
|
|
load("@rules_license//rules:license.bzl", "license")
|
|
load(":defs.bzl", "constant_gen")
|
|
|
|
package(
|
|
default_applicable_licenses = [":license"],
|
|
default_visibility = ["//examples:__subpackages__"],
|
|
)
|
|
|
|
# The default license for an entire package is typically named "license".
|
|
license(
|
|
name = "license",
|
|
package_name = "Trivial Code Generator",
|
|
license_kinds = [
|
|
"@rules_license//examples/my_org/licenses:generic_restricted",
|
|
],
|
|
license_text = "LICENSE",
|
|
)
|
|
|
|
license(
|
|
name = "license_for_emitted_code",
|
|
package_name = "Trivial Code Generator Output",
|
|
license_kinds = [
|
|
"@rules_license//examples/my_org/licenses:unencumbered",
|
|
],
|
|
license_text = "LICENSE.on_output",
|
|
)
|
|
|
|
# The generator itself will be licensed under :license
|
|
py_binary(
|
|
name = "constant_generator",
|
|
srcs = ["constant_generator.py"],
|
|
python_version = "PY3",
|
|
)
|
|
|
|
# Sample: This target will be licensed under :license_for_emitted_code
|
|
constant_gen(
|
|
name = "libhello",
|
|
text = "Hello, world.",
|
|
var = "hello_world",
|
|
)
|
|
|
|
# Verify the licenses are what we expect
|
|
licenses_used(
|
|
name = "generator_licenses",
|
|
out = "generator_licenses.json",
|
|
deps = [":constant_generator"],
|
|
)
|
|
|
|
licenses_used(
|
|
name = "generated_code_licenses",
|
|
# Note: using default output file name
|
|
deps = [":libhello"],
|
|
)
|
|
|
|
py_test(
|
|
name = "verify_licenses_test",
|
|
srcs = ["verify_licenses_test.py"],
|
|
data = [
|
|
":generator_licenses.json",
|
|
":generated_code_licenses.json",
|
|
],
|
|
python_version = "PY3",
|
|
deps = [
|
|
"//tests:license_test_utils",
|
|
],
|
|
)
|