@@ -92,7 +92,7 @@ func (r *SketchRebuilder) rebuilderLoop() {
92
92
r .cancel = cancel
93
93
r .mutex .Unlock ()
94
94
95
- if err := r .doRebuild (ctx , logger ); err != nil {
95
+ if err := r .doRebuild (ctx , false , logger ); err != nil {
96
96
logger .Logf ("Error: %s" , err )
97
97
}
98
98
@@ -104,10 +104,16 @@ func (r *SketchRebuilder) rebuilderLoop() {
104
104
}
105
105
}
106
106
107
- func (r * SketchRebuilder ) doRebuild (ctx context.Context , logger jsonrpc.FunctionLogger ) error {
107
+ func (r * SketchRebuilder ) doRebuild (ctx context.Context , fullRebuild bool , logger jsonrpc.FunctionLogger ) error {
108
108
ls := r .ls
109
+ var buildPath * paths.Path
110
+ if fullRebuild {
111
+ buildPath = ls .fullBuildPath
112
+ } else {
113
+ buildPath = ls .buildPath
114
+ }
109
115
110
- if success , err := ls .generateBuildEnvironment (ctx , logger ); err != nil {
116
+ if success , err := ls .generateBuildEnvironment (ctx , fullRebuild , buildPath , logger ); err != nil {
111
117
return err
112
118
} else if ! success {
113
119
return fmt .Errorf ("build failed" )
@@ -123,9 +129,7 @@ func (r *SketchRebuilder) doRebuild(ctx context.Context, logger jsonrpc.Function
123
129
default :
124
130
}
125
131
126
- if err := ls .buildPath .Join ("compile_commands.json" ).CopyTo (ls .compileCommandsDir .Join ("compile_commands.json" )); err != nil {
127
- logger .Logf ("ERROR: updating compile_commands: %s" , err )
128
- }
132
+ ls .CopyBuildResults (logger , buildPath , fullRebuild )
129
133
130
134
if cppContent , err := ls .buildSketchCpp .ReadFile (); err == nil {
131
135
oldVesrion := ls .sketchMapper .CppText .Version
@@ -166,11 +170,10 @@ func (r *SketchRebuilder) doRebuild(ctx context.Context, logger jsonrpc.Function
166
170
return nil
167
171
}
168
172
169
- func (ls * INOLanguageServer ) generateBuildEnvironment (ctx context.Context , logger jsonrpc.FunctionLogger ) (bool , error ) {
173
+ func (ls * INOLanguageServer ) generateBuildEnvironment (ctx context.Context , fullBuild bool , buildPath * paths. Path , logger jsonrpc.FunctionLogger ) (bool , error ) {
170
174
// Extract all build information from language server status
171
175
ls .readLock (logger , false )
172
176
sketchRoot := ls .sketchRoot
173
- buildPath := ls .buildPath
174
177
config := ls .config
175
178
type overridesFile struct {
176
179
Overrides map [string ]string `json:"overrides"`
@@ -204,6 +207,7 @@ func (ls *INOLanguageServer) generateBuildEnvironment(ctx context.Context, logge
204
207
BuildPath : buildPath .String (),
205
208
CreateCompilationDatabaseOnly : true ,
206
209
Verbose : true ,
210
+ SkipLibrariesDiscovery : ! fullBuild ,
207
211
}
208
212
compileReqJson , _ := json .MarshalIndent (compileReq , "" , " " )
209
213
logger .Logf ("Running build with: %s" , string (compileReqJson ))
@@ -264,9 +268,12 @@ func (ls *INOLanguageServer) generateBuildEnvironment(ctx context.Context, logge
264
268
"--source-override" , overridesJSON .String (),
265
269
"--build-path" , buildPath .String (),
266
270
"--format" , "json" ,
267
- //"--clean",
268
- sketchRoot .String (),
269
271
}
272
+ if ! fullBuild {
273
+ args = append (args , "--skip-libraries-discovery" )
274
+ }
275
+ args = append (args , sketchRoot .String ())
276
+
270
277
cmd , err := executils .NewProcess (nil , args ... )
271
278
if err != nil {
272
279
return false , errors .Errorf ("running %s: %s" , strings .Join (args , " " ), err )
0 commit comments