Implement bp2build for the license_kind
module
Bug: 190817312 Test: treehugger Change-Id: Id5bc9c1b7c5386d26ce0ebc33f63bc2665de7d54
This commit is contained in:
parent
9d2f1743d2
commit
a93c62b375
3 changed files with 100 additions and 1 deletions
|
@ -14,6 +14,8 @@
|
||||||
|
|
||||||
package android
|
package android
|
||||||
|
|
||||||
|
import "android/soong/bazel"
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
RegisterLicenseKindBuildComponents(InitRegistrationContext)
|
RegisterLicenseKindBuildComponents(InitRegistrationContext)
|
||||||
}
|
}
|
||||||
|
@ -32,13 +34,39 @@ type licenseKindProperties struct {
|
||||||
Visibility []string
|
Visibility []string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var _ Bazelable = &licenseKindModule{}
|
||||||
|
|
||||||
type licenseKindModule struct {
|
type licenseKindModule struct {
|
||||||
ModuleBase
|
ModuleBase
|
||||||
DefaultableModuleBase
|
DefaultableModuleBase
|
||||||
|
BazelModuleBase
|
||||||
|
|
||||||
properties licenseKindProperties
|
properties licenseKindProperties
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type bazelLicenseKindAttributes struct {
|
||||||
|
Conditions []string
|
||||||
|
Url string
|
||||||
|
Visibility []string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (m *licenseKindModule) ConvertWithBp2build(ctx TopDownMutatorContext) {
|
||||||
|
attrs := &bazelLicenseKindAttributes{
|
||||||
|
Conditions: m.properties.Conditions,
|
||||||
|
Url: m.properties.Url,
|
||||||
|
Visibility: m.properties.Visibility,
|
||||||
|
}
|
||||||
|
ctx.CreateBazelTargetModule(
|
||||||
|
bazel.BazelTargetModuleProperties{
|
||||||
|
Rule_class: "license_kind",
|
||||||
|
Bzl_load_location: "@rules_license//rules:license_kind.bzl",
|
||||||
|
},
|
||||||
|
CommonAttributes{
|
||||||
|
Name: m.Name(),
|
||||||
|
},
|
||||||
|
attrs)
|
||||||
|
}
|
||||||
|
|
||||||
func (m *licenseKindModule) DepsMutator(ctx BottomUpMutatorContext) {
|
func (m *licenseKindModule) DepsMutator(ctx BottomUpMutatorContext) {
|
||||||
// Nothing to do.
|
// Nothing to do.
|
||||||
}
|
}
|
||||||
|
@ -51,13 +79,14 @@ func LicenseKindFactory() Module {
|
||||||
module := &licenseKindModule{}
|
module := &licenseKindModule{}
|
||||||
|
|
||||||
base := module.base()
|
base := module.base()
|
||||||
module.AddProperties(&base.nameProperties, &module.properties)
|
module.AddProperties(&base.nameProperties, &module.properties, &base.commonProperties.BazelConversionStatus)
|
||||||
|
|
||||||
// The visibility property needs to be checked and parsed by the visibility module.
|
// The visibility property needs to be checked and parsed by the visibility module.
|
||||||
setPrimaryVisibilityProperty(module, "visibility", &module.properties.Visibility)
|
setPrimaryVisibilityProperty(module, "visibility", &module.properties.Visibility)
|
||||||
|
|
||||||
initAndroidModuleBase(module)
|
initAndroidModuleBase(module)
|
||||||
InitDefaultableModule(module)
|
InitDefaultableModule(module)
|
||||||
|
InitBazelModule(module)
|
||||||
|
|
||||||
return module
|
return module
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,6 +64,7 @@ bootstrap_go_package {
|
||||||
"java_plugin_conversion_test.go",
|
"java_plugin_conversion_test.go",
|
||||||
"java_proto_conversion_test.go",
|
"java_proto_conversion_test.go",
|
||||||
"license_conversion_test.go",
|
"license_conversion_test.go",
|
||||||
|
"license_kind_conversion_test.go",
|
||||||
"linker_config_conversion_test.go",
|
"linker_config_conversion_test.go",
|
||||||
"ndk_headers_conversion_test.go",
|
"ndk_headers_conversion_test.go",
|
||||||
"performance_test.go",
|
"performance_test.go",
|
||||||
|
|
69
bp2build/license_kind_conversion_test.go
Normal file
69
bp2build/license_kind_conversion_test.go
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
// Copyright 2022 Google Inc. All rights reserved.
|
||||||
|
//
|
||||||
|
// 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
|
||||||
|
//
|
||||||
|
// http://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.
|
||||||
|
|
||||||
|
package bp2build
|
||||||
|
|
||||||
|
import (
|
||||||
|
"android/soong/android"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func registerLicenseKindModuleTypes(_ android.RegistrationContext) {}
|
||||||
|
|
||||||
|
func TestLicenseKindBp2Build(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
description string
|
||||||
|
module string
|
||||||
|
expected ExpectedRuleTarget
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
description: "license_kind",
|
||||||
|
module: `
|
||||||
|
license_kind {
|
||||||
|
name: "my_license",
|
||||||
|
conditions: [
|
||||||
|
"by_exception_only",
|
||||||
|
"not_allowed",
|
||||||
|
],
|
||||||
|
url: "https://spdx.org/licenses/0BSD",
|
||||||
|
visibility: ["//visibility:public"],
|
||||||
|
}`,
|
||||||
|
expected: ExpectedRuleTarget{
|
||||||
|
"license_kind",
|
||||||
|
"my_license",
|
||||||
|
AttrNameToString{
|
||||||
|
"conditions": `[
|
||||||
|
"by_exception_only",
|
||||||
|
"not_allowed",
|
||||||
|
]`,
|
||||||
|
"url": `"https://spdx.org/licenses/0BSD"`,
|
||||||
|
"visibility": `["//visibility:public"]`,
|
||||||
|
},
|
||||||
|
android.HostAndDeviceDefault,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, test := range tests {
|
||||||
|
RunBp2BuildTestCase(t,
|
||||||
|
registerLicenseKindModuleTypes,
|
||||||
|
Bp2buildTestCase{
|
||||||
|
Description: test.description,
|
||||||
|
ModuleTypeUnderTest: "license_kind",
|
||||||
|
ModuleTypeUnderTestFactory: android.LicenseKindFactory,
|
||||||
|
Blueprint: test.module,
|
||||||
|
ExpectedBazelTargets: []string{test.expected.String()},
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue