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
|
||||
|
||||
import "android/soong/bazel"
|
||||
|
||||
func init() {
|
||||
RegisterLicenseKindBuildComponents(InitRegistrationContext)
|
||||
}
|
||||
|
@ -32,13 +34,39 @@ type licenseKindProperties struct {
|
|||
Visibility []string
|
||||
}
|
||||
|
||||
var _ Bazelable = &licenseKindModule{}
|
||||
|
||||
type licenseKindModule struct {
|
||||
ModuleBase
|
||||
DefaultableModuleBase
|
||||
BazelModuleBase
|
||||
|
||||
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) {
|
||||
// Nothing to do.
|
||||
}
|
||||
|
@ -51,13 +79,14 @@ func LicenseKindFactory() Module {
|
|||
module := &licenseKindModule{}
|
||||
|
||||
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.
|
||||
setPrimaryVisibilityProperty(module, "visibility", &module.properties.Visibility)
|
||||
|
||||
initAndroidModuleBase(module)
|
||||
InitDefaultableModule(module)
|
||||
InitBazelModule(module)
|
||||
|
||||
return module
|
||||
}
|
||||
|
|
|
@ -64,6 +64,7 @@ bootstrap_go_package {
|
|||
"java_plugin_conversion_test.go",
|
||||
"java_proto_conversion_test.go",
|
||||
"license_conversion_test.go",
|
||||
"license_kind_conversion_test.go",
|
||||
"linker_config_conversion_test.go",
|
||||
"ndk_headers_conversion_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