From: Atanas Gegov <atanas.ge...@bmw-carit.de>

The job executes the configure step of the project
using the "cmake" command. The output is
presented in a new console.
---
 .../managedbuilder/job/ExecuteConfigureJob.java    |   25 ++++++++++
 .../cmake/managedbuilder/util/ConsoleUtility.java  |   49 ++++++++++++++++++++
 2 files changed, 74 insertions(+)
 create mode 100644 
plugins/org.yocto.cmake.managedbuilder/src/org/yocto/cmake/managedbuilder/util/ConsoleUtility.java

diff --git 
a/plugins/org.yocto.cmake.managedbuilder/src/org/yocto/cmake/managedbuilder/job/ExecuteConfigureJob.java
 
b/plugins/org.yocto.cmake.managedbuilder/src/org/yocto/cmake/managedbuilder/job/ExecuteConfigureJob.java
index ebed4bb..29e708e 100644
--- 
a/plugins/org.yocto.cmake.managedbuilder/src/org/yocto/cmake/managedbuilder/job/ExecuteConfigureJob.java
+++ 
b/plugins/org.yocto.cmake.managedbuilder/src/org/yocto/cmake/managedbuilder/job/ExecuteConfigureJob.java
@@ -92,6 +92,31 @@ public class ExecuteConfigureJob extends Job {
         */
        @Override
        protected IStatus run(IProgressMonitor monitor) {
+               monitor.beginTask(
+                               
YoctoCMakeMessages.getString("ExecuteConfigureJob.runConfigure"), 20); 
//$NON-NLS-1$
+
+               IOConsoleOutputStream cos =
+                               
ConsoleUtility.getConsoleOutput(YoctoCMakeMessages.getFormattedString("ExecuteConfigureJob.consoleName",
 //$NON-NLS-1$
+                                               project.getName()));
+               monitor.worked(1);
+
+               try {
+                       return buildProject(monitor, cos);
+               } catch (IOException e) {
+                       return new Status(Status.ERROR,
+                                       Activator.PLUGIN_ID, Status.OK,
+                                       
YoctoCMakeMessages.getString("ExecuteConfigureJob.error.couldNotStart"), e); 
//$NON-NLS-1$
+               } catch (InterruptedException e) {
+                       return new Status(Status.WARNING,
+                                       Activator.PLUGIN_ID,
+                                       
YoctoCMakeMessages.getString("ExecuteConfigureJob.warning.aborted")); 
//$NON-NLS-1$
+               } finally {
+                       try {
+                               cos.close();
+                       } catch (IOException e) {
+                               cos = null;
+                       }
+               }
        }
 
        private IStatus buildProject(IProgressMonitor monitor,
diff --git 
a/plugins/org.yocto.cmake.managedbuilder/src/org/yocto/cmake/managedbuilder/util/ConsoleUtility.java
 
b/plugins/org.yocto.cmake.managedbuilder/src/org/yocto/cmake/managedbuilder/util/ConsoleUtility.java
new file mode 100644
index 0000000..9fb31e5
--- /dev/null
+++ 
b/plugins/org.yocto.cmake.managedbuilder/src/org/yocto/cmake/managedbuilder/util/ConsoleUtility.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2013 BMW Car IT GmbH.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * BMW Car IT - initial API and implementation
+ 
*******************************************************************************/
+package org.yocto.cmake.managedbuilder.util;
+
+import org.eclipse.ui.console.ConsolePlugin;
+import org.eclipse.ui.console.IConsole;
+import org.eclipse.ui.console.IOConsoleOutputStream;
+import org.eclipse.ui.console.MessageConsole;
+
+
+public class ConsoleUtility {
+
+       public static IOConsoleOutputStream getConsoleOutput(String 
consoleName) {
+               return getConsole(consoleName).newOutputStream();
+       }
+
+       public static MessageConsole getConsole(String consoleName) {
+               MessageConsole foundConsole = findConsole(consoleName);
+               if (foundConsole != null) {
+                       foundConsole.clearConsole();
+               } else {
+                       foundConsole = new MessageConsole(consoleName, null);
+                       ConsolePlugin.getDefault().
+                       getConsoleManager().addConsoles(new IConsole[] { 
foundConsole });
+               }
+
+               return foundConsole;
+       }
+
+       public static MessageConsole findConsole(String consoleName) {
+               IConsole[] consoles =
+                               
ConsolePlugin.getDefault().getConsoleManager().getConsoles();
+               for (IConsole console : consoles) {
+                       if (console.getName().equals(consoleName)) {
+                               return (MessageConsole) console;
+                       }
+               }
+
+               return null;
+       }
+}
-- 
1.7.9.5

_______________________________________________
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto

Reply via email to