Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 11 additions & 2 deletions arduino-ide-extension/src/browser/contributions/upload-sketch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,7 @@ export class UploadSketch extends CoreServiceContribution {
verbose,
sourceOverride,
optimizeForDebug,
compileVerbose,
] = await Promise.all([
this.boardsDataStore.appendConfigToFqbn(
boardsConfig.selectedBoard?.fqbn
Expand All @@ -228,8 +229,13 @@ export class UploadSketch extends CoreServiceContribution {
this.commandService.executeCommand<boolean>(
'arduino-is-optimize-for-debug'
),
this.preferences.get('arduino.compile.verbose'),
]);

const compileStepOptions: Partial<CoreService.Compile.Options> = {
verbose: compileVerbose,
};

const board = {
...boardsConfig.selectedBoard,
name: boardsConfig.selectedBoard?.name || '',
Expand Down Expand Up @@ -277,9 +283,12 @@ export class UploadSketch extends CoreServiceContribution {
}
this.outputChannelManager.getChannel('Arduino').clear();
if (usingProgrammer) {
await this.coreService.uploadUsingProgrammer(options);
await this.coreService.uploadUsingProgrammer(
options,
compileStepOptions
);
} else {
await this.coreService.upload(options);
await this.coreService.upload(options, compileStepOptions);
}
this.messageService.info(
nls.localize('arduino/sketch/doneUploading', 'Done uploading.'),
Expand Down
10 changes: 8 additions & 2 deletions arduino-ide-extension/src/common/protocol/core-service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,14 @@ export interface CoreService {
compilerWarnings?: CompilerWarnings;
}>
): Promise<void>;
upload(options: CoreService.Upload.Options): Promise<void>;
uploadUsingProgrammer(options: CoreService.Upload.Options): Promise<void>;
upload(
options: CoreService.Upload.Options,
additionalCompileOptions: Partial<CoreService.Compile.Options>
): Promise<void>;
uploadUsingProgrammer(
options: CoreService.Upload.Options,
additionalCompileOptions: Partial<CoreService.Compile.Options>
): Promise<void>;
burnBootloader(options: CoreService.Bootloader.Options): Promise<void>;
}

Expand Down
17 changes: 14 additions & 3 deletions arduino-ide-extension/src/node/core-service-impl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -163,9 +163,13 @@ export class CoreServiceImpl extends CoreClientAware implements CoreService {
return request;
}

upload(options: CoreService.Upload.Options): Promise<void> {
upload(
options: CoreService.Upload.Options,
additionalCompileOptions: Partial<CoreService.Compile.Options>
): Promise<void> {
return this.doUpload(
options,
additionalCompileOptions,
() => new UploadRequest(),
(client, req) => client.upload(req),
(message: string, locations: CoreError.ErrorLocation[]) =>
Expand All @@ -175,10 +179,12 @@ export class CoreServiceImpl extends CoreClientAware implements CoreService {
}

async uploadUsingProgrammer(
options: CoreService.Upload.Options
options: CoreService.Upload.Options,
additionalCompileOptions: Partial<CoreService.Compile.Options>
): Promise<void> {
return this.doUpload(
options,
additionalCompileOptions,
() => new UploadUsingProgrammerRequest(),
(client, req) => client.uploadUsingProgrammer(req),
(message: string, locations: CoreError.ErrorLocation[]) =>
Expand All @@ -189,6 +195,7 @@ export class CoreServiceImpl extends CoreClientAware implements CoreService {

protected async doUpload(
options: CoreService.Upload.Options,
additionalCompileOptions: Partial<CoreService.Compile.Options>,
requestFactory: () => UploadRequest | UploadUsingProgrammerRequest,
responseHandler: (
client: ArduinoCoreServiceClient,
Expand All @@ -200,7 +207,11 @@ export class CoreServiceImpl extends CoreClientAware implements CoreService {
) => ApplicationError<number, CoreError.ErrorLocation[]>,
task: string
): Promise<void> {
await this.compile(Object.assign(options, { exportBinaries: false }));
await this.compile({
...options,
...additionalCompileOptions,
exportBinaries: false,
});

const coreClient = await this.coreClient;
const { client, instance } = coreClient;
Expand Down