Add JVM compiler support.
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
4 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
6 * The contents of this file are subject to the terms of either the GNU
7 * General Public License Version 2 only ("GPL") or the Common
8 * Development and Distribution License("CDDL") (collectively, the
9 * "License"). You may not use this file except in compliance with the
10 * License. You can obtain a copy of the License at
11 * http://www.netbeans.org/cddl-gplv2.html
12 * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
13 * specific language governing permissions and limitations under the
14 * License. When distributing the software, include this License Header
15 * Notice in each file and include the License file at
16 * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
17 * particular file as subject to the "Classpath" exception as provided
18 * by Sun in the GPL Version 2 section of the License file that
19 * accompanied this code. If applicable, add the following below the
20 * License Header, with the fields enclosed by brackets [] replaced by
21 * your own identifying information:
22 * "Portions Copyrighted [year] [name of copyright owner]"
24 * If you wish your version of this file to be governed by only the CDDL
25 * or only the GPL Version 2, indicate your decision by adding
26 * "[Contributor] elects to include this software in this distribution
27 * under the [CDDL or GPL Version 2] license." If you do not indicate a
28 * single choice of license, a recipient has the option to distribute
29 * your version of this file under either the CDDL, the GPL Version 2 or
30 * to extend the choice of license to its licensees as provided above.
31 * However, if you add GPL Version 2 code and therefore, elected the GPL
32 * Version 2 license, then the option applies only if the new code is
33 * made subject to such option by the copyright holder.
37 * Portions Copyrighted 2009 Sun Microsystems, Inc.
39 package org.netbeans.modules.ada.project.ui.actions;
41 import java.util.ArrayList;
42 import org.netbeans.api.ada.platform.AdaPlatform;
43 import org.netbeans.modules.ada.platform.compiler.gnat.GnatCompiler;
44 import org.netbeans.modules.ada.platform.compiler.jgnat.JGnatCompiler;
45 import org.netbeans.modules.ada.project.AdaProject;
46 import org.netbeans.modules.ada.project.AdaProjectUtil;
47 import org.netbeans.modules.ada.project.options.AdaOptions;
48 import org.netbeans.modules.ada.project.ui.properties.AdaProjectProperties;
49 import org.openide.filesystems.FileObject;
50 import org.openide.filesystems.FileUtil;
56 public class ActionsUtil {
58 public static org.netbeans.spi.ada.platform.Compiler getCompilerFactory(AdaProject project, String displayTitle) {
59 org.netbeans.spi.ada.platform.Compiler compiler = null;
61 // Retrieve project and platform
62 AdaPlatform platform = AdaProjectUtil.getActivePlatform(project);
63 assert platform != null;
65 ArrayList<String> sources = new ArrayList<String>();
69 String mainFile = project.getEvaluator().getProperty(AdaProjectProperties.MAIN_FILE);
70 assert mainFile != null;
72 files = project.getSourcesDirectory();
73 for (int index = 0; index < files.length; index++) {
74 sources.add(FileUtil.toFile(files[index]).getAbsolutePath());
77 // Init compiler factory
78 if (project.getEvaluator().getProperty(AdaProjectProperties.OUTPUT_BUILD_FORMAT).equalsIgnoreCase(AdaProjectProperties.NATIVE_FORMAT)) {
79 compiler = new GnatCompiler(
81 project.getName(), // project name
82 FileUtil.toFile(project.getProjectDirectory()).getAbsolutePath(), // project location
83 sources, // sources location
84 mainFile, // main file
85 project.getName(), // executable file
86 displayTitle, // display name
87 project.getEvaluator().getProperty(AdaOptions.PKG_SPEC_POSTFIX),
88 project.getEvaluator().getProperty(AdaOptions.PKG_BODY_POSTFIX),
89 project.getEvaluator().getProperty(AdaOptions.SEPARATE_POSTFIX),
90 project.getEvaluator().getProperty(AdaOptions.PKG_SPEC_EXT),
91 project.getEvaluator().getProperty(AdaOptions.PKG_BODY_EXT),
92 project.getEvaluator().getProperty(AdaOptions.SEPARATE_EXT));
93 } else if (project.getEvaluator().getProperty(AdaProjectProperties.OUTPUT_BUILD_FORMAT).equalsIgnoreCase(AdaProjectProperties.JVM_FORMAT)) {
94 compiler = new JGnatCompiler(
96 project.getName(), // project name
97 FileUtil.toFile(project.getProjectDirectory()).getAbsolutePath(), // project location
98 sources, // sources location
99 mainFile, // main file
100 project.getName(), // executable file
101 displayTitle, // display name
102 project.getEvaluator().getProperty(AdaOptions.PKG_SPEC_POSTFIX),
103 project.getEvaluator().getProperty(AdaOptions.PKG_BODY_POSTFIX),
104 project.getEvaluator().getProperty(AdaOptions.SEPARATE_POSTFIX),
105 project.getEvaluator().getProperty(AdaOptions.PKG_SPEC_EXT),
106 project.getEvaluator().getProperty(AdaOptions.PKG_BODY_EXT),
107 project.getEvaluator().getProperty(AdaOptions.SEPARATE_EXT));