xref: /aosp_15_r20/build/soong/snapshot/snapshot_base.go (revision 333d2b3687b3a337dbcca9d65000bca186795e39)
1*333d2b36SAndroid Build Coastguard Worker// Copyright 2021 The Android Open Source Project
2*333d2b36SAndroid Build Coastguard Worker//
3*333d2b36SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*333d2b36SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*333d2b36SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*333d2b36SAndroid Build Coastguard Worker//
7*333d2b36SAndroid Build Coastguard Worker//	http://www.apache.org/licenses/LICENSE-2.0
8*333d2b36SAndroid Build Coastguard Worker//
9*333d2b36SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*333d2b36SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*333d2b36SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*333d2b36SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*333d2b36SAndroid Build Coastguard Worker// limitations under the License.
14*333d2b36SAndroid Build Coastguard Workerpackage snapshot
15*333d2b36SAndroid Build Coastguard Worker
16*333d2b36SAndroid Build Coastguard Workerimport (
17*333d2b36SAndroid Build Coastguard Worker	"android/soong/android"
18*333d2b36SAndroid Build Coastguard Worker)
19*333d2b36SAndroid Build Coastguard Worker
20*333d2b36SAndroid Build Coastguard Workervar pctx = android.NewPackageContext("android/soong/snapshot")
21*333d2b36SAndroid Build Coastguard Worker
22*333d2b36SAndroid Build Coastguard Workerfunc init() {
23*333d2b36SAndroid Build Coastguard Worker	pctx.Import("android/soong/android")
24*333d2b36SAndroid Build Coastguard Worker}
25*333d2b36SAndroid Build Coastguard Worker
26*333d2b36SAndroid Build Coastguard Worker// This is to be saved as .json files, which is for development/vendor_snapshot/update.py.
27*333d2b36SAndroid Build Coastguard Worker// These flags become Android.bp snapshot module properties.
28*333d2b36SAndroid Build Coastguard Worker//
29*333d2b36SAndroid Build Coastguard Worker// Attributes are optional and will be populated based on each module's need.
30*333d2b36SAndroid Build Coastguard Worker// Common attributes are defined here, languages may extend this struct to add
31*333d2b36SAndroid Build Coastguard Worker// additional attributes.
32*333d2b36SAndroid Build Coastguard Workertype SnapshotJsonFlags struct {
33*333d2b36SAndroid Build Coastguard Worker	ModuleName          string `json:",omitempty"`
34*333d2b36SAndroid Build Coastguard Worker	RelativeInstallPath string `json:",omitempty"`
35*333d2b36SAndroid Build Coastguard Worker	Filename            string `json:",omitempty"`
36*333d2b36SAndroid Build Coastguard Worker	ModuleStemName      string `json:",omitempty"`
37*333d2b36SAndroid Build Coastguard Worker	RustProcMacro       bool   `json:",omitempty"`
38*333d2b36SAndroid Build Coastguard Worker	CrateName           string `json:",omitempty"`
39*333d2b36SAndroid Build Coastguard Worker
40*333d2b36SAndroid Build Coastguard Worker	// dependencies
41*333d2b36SAndroid Build Coastguard Worker	Required  []string `json:",omitempty"`
42*333d2b36SAndroid Build Coastguard Worker	Overrides []string `json:",omitempty"`
43*333d2b36SAndroid Build Coastguard Worker
44*333d2b36SAndroid Build Coastguard Worker	// license information
45*333d2b36SAndroid Build Coastguard Worker	LicenseKinds []string `json:",omitempty"`
46*333d2b36SAndroid Build Coastguard Worker	LicenseTexts []string `json:",omitempty"`
47*333d2b36SAndroid Build Coastguard Worker}
48*333d2b36SAndroid Build Coastguard Worker
49*333d2b36SAndroid Build Coastguard Workerfunc (prop *SnapshotJsonFlags) InitBaseSnapshotPropsWithName(m android.Module, name string) {
50*333d2b36SAndroid Build Coastguard Worker	prop.ModuleName = name
51*333d2b36SAndroid Build Coastguard Worker
52*333d2b36SAndroid Build Coastguard Worker	prop.LicenseKinds = m.EffectiveLicenseKinds()
53*333d2b36SAndroid Build Coastguard Worker	prop.LicenseTexts = m.EffectiveLicenseFiles().Strings()
54*333d2b36SAndroid Build Coastguard Worker}
55*333d2b36SAndroid Build Coastguard Worker
56*333d2b36SAndroid Build Coastguard Workerfunc (prop *SnapshotJsonFlags) InitBaseSnapshotProps(m android.Module) {
57*333d2b36SAndroid Build Coastguard Worker	prop.InitBaseSnapshotPropsWithName(m, m.Name())
58*333d2b36SAndroid Build Coastguard Worker}
59