protected override Task <BuildResult> OnBuild(ProgressMonitor monitor, ConfigurationSelector configuration, OperationContext operationContext) { return(Task.Factory.StartNew(() => { BuildResult results; if (!CheckCMake()) { results = new BuildResult(); results.AddError("CMake cannot be found."); return results; } FileService.CreateDirectory(file.ParentDirectory.Combine(outputDirectory)); monitor.BeginStep("Generating build files."); Stream generationResult = ExecuteCommand("cmake", "../", outputDirectory, monitor); results = ParseGenerationResult(generationResult, monitor); monitor.EndStep(); monitor.BeginStep("Building..."); Stream buildResult = ExecuteCommand("cmake", "--build ./ --clean-first", outputDirectory, monitor); //TODO: Parse results. monitor.EndStep(); return results; })); }
protected override Task <BuildResult> OnBuild(ProgressMonitor monitor, ConfigurationSelector configuration, OperationContext operationContext) { return(Task.Factory.StartNew(() => { BuildResult results; if (!CheckCMake()) { results = new BuildResult(); results.AddError("CMake cannot be found."); return results; } FileService.CreateDirectory(file.ParentDirectory.Combine(outputDirectory)); Stream generationResult; int buildFlag = 0; monitor.BeginStep("Generating build files."); if (guiOptions.default_c_compiler.Name == "msvc") { generationResult = ExecuteCommand("cmake", "../ -G \"Visual Studio 15 2017\"", outputDirectory, monitor); buildFlag = 1; } else { generationResult = ExecuteCommand("cmake", "../ -G \"MinGW Makefiles\"", outputDirectory, monitor); //Default is gcc. } results = ParseGenerationResult(generationResult, monitor); monitor.EndStep(); string projectMsvc = string.Format("{0}.{1}", fileFormat.ProjectName, "sln"); monitor.BeginStep("Building..."); if (buildFlag == 1) { Stream buildResult = ExecuteCommand("msbuild", projectMsvc, outputDirectory, monitor); buildFlag = 0; } else { Stream buildResult = ExecuteCommand("mingw32-make", "", outputDirectory, monitor); } //TODO: Parse results. monitor.EndStep(); return results; })); }