@@ -92,7 +92,7 @@ func (r *SketchRebuilder) rebuilderLoop() {
9292 r .cancel = cancel
9393 r .mutex .Unlock ()
9494
95- if err := r .doRebuild (ctx , logger ); err != nil {
95+ if err := r .doRebuild (ctx , false , logger ); err != nil {
9696 logger .Logf ("Error: %s" , err )
9797 }
9898
@@ -104,10 +104,16 @@ func (r *SketchRebuilder) rebuilderLoop() {
104104 }
105105}
106106
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 {
108108 ls := r .ls
109+ var buildPath * paths.Path
110+ if fullRebuild {
111+ buildPath = ls .fullBuildPath
112+ } else {
113+ buildPath = ls .buildPath
114+ }
109115
110- if success , err := ls .generateBuildEnvironment (ctx , logger ); err != nil {
116+ if success , err := ls .generateBuildEnvironment (ctx , fullRebuild , buildPath , logger ); err != nil {
111117 return err
112118 } else if ! success {
113119 return fmt .Errorf ("build failed" )
@@ -123,9 +129,7 @@ func (r *SketchRebuilder) doRebuild(ctx context.Context, logger jsonrpc.Function
123129 default :
124130 }
125131
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 )
129133
130134 if cppContent , err := ls .buildSketchCpp .ReadFile (); err == nil {
131135 oldVesrion := ls .sketchMapper .CppText .Version
@@ -166,11 +170,10 @@ func (r *SketchRebuilder) doRebuild(ctx context.Context, logger jsonrpc.Function
166170 return nil
167171}
168172
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 ) {
170174 // Extract all build information from language server status
171175 ls .readLock (logger , false )
172176 sketchRoot := ls .sketchRoot
173- buildPath := ls .buildPath
174177 config := ls .config
175178 type overridesFile struct {
176179 Overrides map [string ]string `json:"overrides"`
@@ -204,6 +207,7 @@ func (ls *INOLanguageServer) generateBuildEnvironment(ctx context.Context, logge
204207 BuildPath : buildPath .String (),
205208 CreateCompilationDatabaseOnly : true ,
206209 Verbose : true ,
210+ SkipLibrariesDiscovery : ! fullBuild ,
207211 }
208212 compileReqJson , _ := json .MarshalIndent (compileReq , "" , " " )
209213 logger .Logf ("Running build with: %s" , string (compileReqJson ))
@@ -264,9 +268,12 @@ func (ls *INOLanguageServer) generateBuildEnvironment(ctx context.Context, logge
264268 "--source-override" , overridesJSON .String (),
265269 "--build-path" , buildPath .String (),
266270 "--format" , "json" ,
267- //"--clean",
268- sketchRoot .String (),
269271 }
272+ if ! fullBuild {
273+ args = append (args , "--skip-libraries-discovery" )
274+ }
275+ args = append (args , sketchRoot .String ())
276+
270277 cmd , err := executils .NewProcess (nil , args ... )
271278 if err != nil {
272279 return false , errors .Errorf ("running %s: %s" , strings .Join (args , " " ), err )
0 commit comments