<td> <input type="text" style="width:99%;" formControlName="subpath"> </td>
</tr>
<tr>
- <th>Command arguments</th>
- <td> <input type="text" style="width:99%;" formControlName="cmdArgs"> </td>
- </tr>
- <tr>
- <th>Env variables</th>
- <td> <input type="text" style="width:99%;" formControlName="envVars"> </td>
+ <td colspan="2">
+ <accordion>
+ <accordion-group #group>
+ <div accordion-heading>
+ Advanced Settings
+ <i class="pull-right float-xs-right fa" [ngClass]="{'fa-chevron-down': group.isOpen, 'fa-chevron-right': !group.isOpen}"></i>
+ </div>
+
+ <table class="table table-borderless table-in-accordion">
+ <tbody>
+ <tr>
+ <th>Clean Command</th>
+ <td> <input type="text" style="width:99%;" formControlName="cmdClean"> </td>
+ </tr>
+ <tr>
+ <th>Pre-Build Command</th>
+ <td> <input type="text" style="width:99%;" formControlName="cmdPrebuild"> </td>
+ </tr>
+ <tr>
+ <th>Build Command</th>
+ <td> <input type="text" style="width:99%;" formControlName="cmdBuild"> </td>
+ </tr>
+ <tr>
+ <th>Populate Command</th>
+ <td> <input type="text" style="width:99%;" formControlName="cmdPopulate"> </td>
+ </tr>
+ <tr>
+ <th>Env variables</th>
+ <td> <input type="text" style="width:99%;" formControlName="envVars"> </td>
+ </tr>
+ <tr *ngIf="debugEnable">
+ <th>Args variables</th>
+ <td> <input type="text" style="width:99%;" formControlName="cmdArgs"> </td>
+ </tr>
+ </tbody>
+ </table>
+ </accordion-group>
+ </accordion>
+ </td>
</tr>
</tbody>
</table>
<div class="row">
<div class="col-xs-12 text-center">
<div class="btn-group blocks">
+ <button class="btn btn-primary btn-large" (click)="clean()" [disabled]="!curProject ">Clean</button>
<button class="btn btn-primary btn-large" (click)="preBuild()" [disabled]="!curProject">Pre-Build</button>
<button class="btn btn-primary btn-large" (click)="build()" [disabled]="!curProject">Build</button>
<button class="btn btn-primary btn-large" (click)="populate()" [disabled]="!curProject ">Populate</button>
this.cmdInfo = ""; // TODO: to be remove (only for debug)
this.buildForm = fb.group({
subpath: this.subpathCtrl,
+ cmdClean: ["", Validators.nullValidator],
+ cmdPrebuild: ["", Validators.nullValidator],
+ cmdBuild: ["", Validators.nullValidator],
+ cmdPopulate: ["", Validators.nullValidator],
cmdArgs: ["", Validators.nullValidator],
envVars: ["", Validators.nullValidator],
});
}
ngOnInit() {
+ // Set default settings
+ // TODO save & restore values from cookies
+ this.buildForm.patchValue({
+ subpath: "",
+ cmdClean: "rm -rf build",
+ cmdPrebuild: "mkdir -p build && cd build && cmake ..",
+ cmdBuild: "cd build && make",
+ cmdPopulate: "cd build && make remote-target-populate",
+ cmdArgs: "",
+ envVars: "",
+ });
+
// Command output data tunneling
this.xdsSvr.CmdOutput$.subscribe(data => {
this.cmdOutput += data.stdout + "\n";
this._scrollToBottom();
// only use for debug
- this.debugEnable = (this.cookie.get("debug_build") !== "");
+ this.debugEnable = (this.cookie.get("debug_build") === "1");
}
ngAfterViewChecked() {
this.cmdOutput = '';
}
+ clean() {
+ this._exec(
+ this.buildForm.value.cmdClean,
+ this.buildForm.value.subpath,
+ [],
+ this.buildForm.value.envVars);
+ }
+
preBuild() {
this._exec(
- "mkdir -p build && cd build && cmake ..",
+ this.buildForm.value.cmdPrebuild,
this.buildForm.value.subpath,
[],
this.buildForm.value.envVars);
build() {
this._exec(
- "cd build && make",
+ this.buildForm.value.cmdBuild,
this.buildForm.value.subpath,
- this.buildForm.value.cmdArgs,
+ [],
this.buildForm.value.envVars
);
}
populate() {
this._exec(
- "SEB_TODO_script_populate",
+ this.buildForm.value.cmdPopulate,
this.buildForm.value.subpath,
[], // args
this.buildForm.value.envVars