Merge "Add tempPathForRestat to improve consistency"
This commit is contained in:
@@ -206,7 +206,7 @@ var hiddenAPIFlagFileInfoProvider = blueprint.NewProvider(hiddenAPIFlagFileInfo{
|
|||||||
// augmentationInfo is a struct containing paths to files that augment the information provided by
|
// augmentationInfo is a struct containing paths to files that augment the information provided by
|
||||||
// the moduleSpecificFlagsPaths.
|
// the moduleSpecificFlagsPaths.
|
||||||
func ruleToGenerateHiddenApiFlags(ctx android.BuilderContext, outputPath android.WritablePath, baseFlagsPath android.Path, moduleSpecificFlagsPaths android.Paths, augmentationInfo hiddenAPIFlagFileInfo) {
|
func ruleToGenerateHiddenApiFlags(ctx android.BuilderContext, outputPath android.WritablePath, baseFlagsPath android.Path, moduleSpecificFlagsPaths android.Paths, augmentationInfo hiddenAPIFlagFileInfo) {
|
||||||
tempPath := android.PathForOutput(ctx, outputPath.Rel()+".tmp")
|
tempPath := tempPathForRestat(ctx, outputPath)
|
||||||
rule := android.NewRuleBuilder(pctx, ctx)
|
rule := android.NewRuleBuilder(pctx, ctx)
|
||||||
command := rule.Command().
|
command := rule.Command().
|
||||||
BuiltTool("generate_hiddenapi_lists").
|
BuiltTool("generate_hiddenapi_lists").
|
||||||
|
@@ -15,6 +15,8 @@
|
|||||||
package java
|
package java
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"strings"
|
||||||
|
|
||||||
"android/soong/android"
|
"android/soong/android"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -242,7 +244,7 @@ func stubFlagsRule(ctx android.SingletonContext) {
|
|||||||
rule := android.NewRuleBuilder(pctx, ctx)
|
rule := android.NewRuleBuilder(pctx, ctx)
|
||||||
|
|
||||||
outputPath := hiddenAPISingletonPaths(ctx).stubFlags
|
outputPath := hiddenAPISingletonPaths(ctx).stubFlags
|
||||||
tempPath := android.PathForOutput(ctx, outputPath.Rel()+".tmp")
|
tempPath := tempPathForRestat(ctx, outputPath)
|
||||||
|
|
||||||
rule.MissingDeps(missingDeps)
|
rule.MissingDeps(missingDeps)
|
||||||
|
|
||||||
@@ -348,6 +350,16 @@ func emptyFlagsRule(ctx android.SingletonContext) android.Path {
|
|||||||
return outputPath
|
return outputPath
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// tempPathForRestat creates a path of the same type as the supplied type but with a name of
|
||||||
|
// <path>.tmp.
|
||||||
|
//
|
||||||
|
// e.g. If path is an OutputPath for out/soong/hiddenapi/hiddenapi-flags.csv then this will return
|
||||||
|
// an OutputPath for out/soong/hiddenapi/hiddenapi-flags.csv.tmp
|
||||||
|
func tempPathForRestat(ctx android.PathContext, path android.WritablePath) android.WritablePath {
|
||||||
|
extWithoutLeadingDot := strings.TrimPrefix(path.Ext(), ".")
|
||||||
|
return path.ReplaceExtension(ctx, extWithoutLeadingDot+".tmp")
|
||||||
|
}
|
||||||
|
|
||||||
// commitChangeForRestat adds a command to a rule that updates outputPath from tempPath if they are different. It
|
// commitChangeForRestat adds a command to a rule that updates outputPath from tempPath if they are different. It
|
||||||
// also marks the rule as restat and marks the tempPath as a temporary file that should not be considered an output of
|
// also marks the rule as restat and marks the tempPath as a temporary file that should not be considered an output of
|
||||||
// the rule.
|
// the rule.
|
||||||
|
@@ -247,7 +247,7 @@ func createSdkFrameworkAidl(ctx android.SingletonContext) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
combinedAidl := sdkFrameworkAidlPath(ctx)
|
combinedAidl := sdkFrameworkAidlPath(ctx)
|
||||||
tempPath := combinedAidl.ReplaceExtension(ctx, "aidl.tmp")
|
tempPath := tempPathForRestat(ctx, combinedAidl)
|
||||||
|
|
||||||
rule := createFrameworkAidl(stubsModules, tempPath, ctx)
|
rule := createFrameworkAidl(stubsModules, tempPath, ctx)
|
||||||
|
|
||||||
@@ -261,7 +261,7 @@ func createNonUpdatableFrameworkAidl(ctx android.SingletonContext) {
|
|||||||
stubsModules := []string{"android_module_lib_stubs_current"}
|
stubsModules := []string{"android_module_lib_stubs_current"}
|
||||||
|
|
||||||
combinedAidl := nonUpdatableFrameworkAidlPath(ctx)
|
combinedAidl := nonUpdatableFrameworkAidlPath(ctx)
|
||||||
tempPath := combinedAidl.ReplaceExtension(ctx, "aidl.tmp")
|
tempPath := tempPathForRestat(ctx, combinedAidl)
|
||||||
|
|
||||||
rule := createFrameworkAidl(stubsModules, tempPath, ctx)
|
rule := createFrameworkAidl(stubsModules, tempPath, ctx)
|
||||||
|
|
||||||
@@ -270,7 +270,7 @@ func createNonUpdatableFrameworkAidl(ctx android.SingletonContext) {
|
|||||||
rule.Build("framework_non_updatable_aidl", "generate framework_non_updatable.aidl")
|
rule.Build("framework_non_updatable_aidl", "generate framework_non_updatable.aidl")
|
||||||
}
|
}
|
||||||
|
|
||||||
func createFrameworkAidl(stubsModules []string, path android.OutputPath, ctx android.SingletonContext) *android.RuleBuilder {
|
func createFrameworkAidl(stubsModules []string, path android.WritablePath, ctx android.SingletonContext) *android.RuleBuilder {
|
||||||
stubsJars := make([]android.Paths, len(stubsModules))
|
stubsJars := make([]android.Paths, len(stubsModules))
|
||||||
|
|
||||||
ctx.VisitAllModules(func(module android.Module) {
|
ctx.VisitAllModules(func(module android.Module) {
|
||||||
|
Reference in New Issue
Block a user