xref: /aosp_15_r20/build/blueprint/incremental.go (revision 1fa6dee971e1612fa5cc0aa5ca2d35a22e2c34a3)
1*1fa6dee9SAndroid Build Coastguard Worker// Copyright 2024 Google Inc. All rights reserved.
2*1fa6dee9SAndroid Build Coastguard Worker//
3*1fa6dee9SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*1fa6dee9SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*1fa6dee9SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*1fa6dee9SAndroid Build Coastguard Worker//
7*1fa6dee9SAndroid Build Coastguard Worker//     http://www.apache.org/licenses/LICENSE-2.0
8*1fa6dee9SAndroid Build Coastguard Worker//
9*1fa6dee9SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*1fa6dee9SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*1fa6dee9SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*1fa6dee9SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*1fa6dee9SAndroid Build Coastguard Worker// limitations under the License.
14*1fa6dee9SAndroid Build Coastguard Worker
15*1fa6dee9SAndroid Build Coastguard Workerpackage blueprint
16*1fa6dee9SAndroid Build Coastguard Worker
17*1fa6dee9SAndroid Build Coastguard Workerimport (
18*1fa6dee9SAndroid Build Coastguard Worker	"text/scanner"
19*1fa6dee9SAndroid Build Coastguard Worker)
20*1fa6dee9SAndroid Build Coastguard Worker
21*1fa6dee9SAndroid Build Coastguard Workertype BuildActionCacheKey struct {
22*1fa6dee9SAndroid Build Coastguard Worker	Id        string
23*1fa6dee9SAndroid Build Coastguard Worker	InputHash uint64
24*1fa6dee9SAndroid Build Coastguard Worker}
25*1fa6dee9SAndroid Build Coastguard Worker
26*1fa6dee9SAndroid Build Coastguard Workertype CachedProvider struct {
27*1fa6dee9SAndroid Build Coastguard Worker	Id    *providerKey
28*1fa6dee9SAndroid Build Coastguard Worker	Value *any
29*1fa6dee9SAndroid Build Coastguard Worker}
30*1fa6dee9SAndroid Build Coastguard Worker
31*1fa6dee9SAndroid Build Coastguard Workertype BuildActionCachedData struct {
32*1fa6dee9SAndroid Build Coastguard Worker	Providers        []CachedProvider
33*1fa6dee9SAndroid Build Coastguard Worker	Pos              *scanner.Position
34*1fa6dee9SAndroid Build Coastguard Worker	OrderOnlyStrings []string
35*1fa6dee9SAndroid Build Coastguard Worker}
36*1fa6dee9SAndroid Build Coastguard Worker
37*1fa6dee9SAndroid Build Coastguard Workertype BuildActionCache = map[BuildActionCacheKey]*BuildActionCachedData
38*1fa6dee9SAndroid Build Coastguard Worker
39*1fa6dee9SAndroid Build Coastguard Workertype OrderOnlyStringsCache map[string][]string
40*1fa6dee9SAndroid Build Coastguard Worker
41*1fa6dee9SAndroid Build Coastguard Workertype BuildActionCacheInput struct {
42*1fa6dee9SAndroid Build Coastguard Worker	PropertiesHash uint64
43*1fa6dee9SAndroid Build Coastguard Worker	ProvidersHash  [][]uint64
44*1fa6dee9SAndroid Build Coastguard Worker}
45*1fa6dee9SAndroid Build Coastguard Worker
46*1fa6dee9SAndroid Build Coastguard Workertype Incremental interface {
47*1fa6dee9SAndroid Build Coastguard Worker	IncrementalSupported() bool
48*1fa6dee9SAndroid Build Coastguard Worker}
49*1fa6dee9SAndroid Build Coastguard Worker
50*1fa6dee9SAndroid Build Coastguard Workertype IncrementalModule struct{}
51*1fa6dee9SAndroid Build Coastguard Worker
52*1fa6dee9SAndroid Build Coastguard Workerfunc (m *IncrementalModule) IncrementalSupported() bool {
53*1fa6dee9SAndroid Build Coastguard Worker	return true
54*1fa6dee9SAndroid Build Coastguard Worker}
55