@@ -89,28 +89,30 @@ func (b *Builder) compileCore() (*paths.Path, paths.PathList, error) {
89
89
b .buildProperties .Get ("compiler.optimization_flags" ),
90
90
realCoreFolder ,
91
91
)
92
- targetArchivedCore = b .coreBuildCachePath .Join (archivedCoreName , "core.a" )
93
92
94
- if _ , err := buildcache .New (b .coreBuildCachePath ).GetOrCreate (archivedCoreName ); errors .Is (err , buildcache .CreateDirErr ) {
95
- return nil , nil , errors .New (i18n .Tr ("creating core cache folder: %s" , err ))
93
+ canUseArchivedCore := func (archivedCore * paths.Path ) bool {
94
+ if b .onlyUpdateCompilationDatabase || b .clean {
95
+ return false
96
+ }
97
+ if isOlder , err := utils .DirContentIsOlderThan (realCoreFolder , archivedCore ); err != nil || ! isOlder {
98
+ // Recreate the archive if ANY of the core files (including platform.txt) has changed
99
+ return false
100
+ }
101
+ if targetCoreFolder == nil || realCoreFolder .EquivalentTo (targetCoreFolder ) {
102
+ return true
103
+ }
104
+ if isOlder , err := utils .DirContentIsOlderThan (targetCoreFolder , archivedCore ); err != nil || ! isOlder {
105
+ // Recreate the archive if ANY of the build core files (including platform.txt) has changed
106
+ return false
107
+ }
108
+ return true
96
109
}
97
110
98
- var canUseArchivedCore bool
99
- if b .onlyUpdateCompilationDatabase || b .clean {
100
- canUseArchivedCore = false
101
- } else if isOlder , err := utils .DirContentIsOlderThan (realCoreFolder , targetArchivedCore ); err != nil || ! isOlder {
102
- // Recreate the archive if ANY of the core files (including platform.txt) has changed
103
- canUseArchivedCore = false
104
- } else if targetCoreFolder == nil || realCoreFolder .EquivalentTo (targetCoreFolder ) {
105
- canUseArchivedCore = true
106
- } else if isOlder , err := utils .DirContentIsOlderThan (targetCoreFolder , targetArchivedCore ); err != nil || ! isOlder {
107
- // Recreate the archive if ANY of the build core files (including platform.txt) has changed
108
- canUseArchivedCore = false
109
- } else {
110
- canUseArchivedCore = true
111
+ if _ , err := buildcache .New (b .coreBuildCachePath ).GetOrCreate (archivedCoreName ); errors .Is (err , buildcache .CreateDirErr ) {
112
+ return nil , nil , errors .New (i18n .Tr ("creating core cache folder: %s" , err ))
111
113
}
112
-
113
- if canUseArchivedCore {
114
+ targetArchivedCore = b . coreBuildCachePath . Join ( archivedCoreName , "core.a" )
115
+ if canUseArchivedCore ( targetArchivedCore ) {
114
116
// use archived core
115
117
if b .logger .Verbose () {
116
118
b .logger .Info (i18n .Tr ("Using precompiled core: %[1]s" , targetArchivedCore ))
0 commit comments