Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: com/port80/eclipse/builder/MakeBuilder.java


1   /*
2    * Created on Apr 25, 2003
3    */
4   package com.port80.eclipse.builder;
5   
6   import java.util.ArrayList;
7   import java.util.Iterator;
8   import java.util.List;
9   import java.util.Map;
10  
11  import org.eclipse.core.resources.IProject;
12  import org.eclipse.core.runtime.CoreException;
13  import org.eclipse.swt.widgets.Shell;
14  
15  /**
16   * A builder that invoke make on any specified target.
17   * 
18   * @author chrisl
19   */
20  public class MakeBuilder extends AbstractBuilder {
21  
22    private static final String NAME = "MakeBuilder";
23  
24    String fFilename, fTarget;
25  
26    public MakeBuilder() {
27      super();
28    }
29  
30    public String getBuilderName() {
31      return MakeBuilder.class.getName();
32    }
33  
34    public String[] getCommand(Map args) {
35      List a = new ArrayList();
36      a.add("make");
37      a.add("-f");
38      a.add(fFilename);
39      if (args != null) {
40        String key, value;
41        for (Iterator it = args.keySet().iterator(); it.hasNext();) {
42          key = (String) it.next();
43          value = (String) args.get(key);
44          a.add(key + '=' + value);
45        }
46      }
47      a.add(fTarget);
48      return (String[]) a.toArray(new String[a.size()]);
49    }
50  
51    public void build(
52      final IProject project,
53      final String work_dir,
54      final String filename,
55      final String target,
56      final Map args,
57      final Shell shell) {
58      //
59      fTarget = target;
60      fFilename = filename;
61      Thread t = new Thread(new Runnable() {
62        public void run() {
63          try {
64            build(project, work_dir, args);
65          } catch (CoreException e) {
66            System.err.println(
67              NAME
68                + ".build(): "
69                + ": builder="
70                + getBuilderName()
71                + ", target="
72                + target
73                + ", "
74                + e.toString());
75          }
76        }
77      });
78      t.start();
79    }
80  
81  }