From 52ee46a69b9178d37506bf81f11f08b938da759f Mon Sep 17 00:00:00 2001 From: lhauch Date: Tue, 29 Aug 2006 20:49:49 +0000 Subject: [PATCH] Added the ToolChainId class which will read the target.txt and tool definition files with various return values. Updated the ToolTipText in FpdPlatformDefs.java as well as changed the Build Targets from freeform to ComboBox (with the ability to add a new Target name.) git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1403 6f19259b-4bc3-4df7-8a09-765794883524 --- .../platform/ui/FpdPlatformDefs.java | 133 ++++++-- .../toolchain/Preferences.java | 4 +- .../toolchain/ToolChainId.java | 305 ++++++++++++++++++ 3 files changed, 412 insertions(+), 30 deletions(-) create mode 100644 Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/toolchain/ToolChainId.java diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdPlatformDefs.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdPlatformDefs.java index 2881045d61..64201b5aa5 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdPlatformDefs.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/platform/ui/FpdPlatformDefs.java @@ -23,6 +23,7 @@ import javax.swing.ListSelectionModel; import org.tianocore.PlatformSurfaceAreaDocument; import org.tianocore.frameworkwizard.common.Identifications.OpeningPlatformType; import org.tianocore.frameworkwizard.common.ui.IInternalFrame; +import org.tianocore.frameworkwizard.toolchain.ToolChainId; import javax.swing.JCheckBox; import javax.swing.JOptionPane; @@ -44,31 +45,33 @@ import java.util.Vector; public class FpdPlatformDefs extends IInternalFrame { + private static boolean Debug = false; + private final int dialogWidth = 600; private final int oneRowHeight = 20; private final int twoRowHeight = 40; -// private final int threeRowHeight = 60; + // private final int threeRowHeight = 60; private final int fourRowHeight = 80; private final int sepHeight = 6; -// private final int sepWidth = 10; + // private final int sepWidth = 10; private final int buttonWidth = 90; private final int rowOne = 12; - private final int rowTwo = rowOne + oneRowHeight + sepHeight; + private final int rowTwo = rowOne + oneRowHeight + sepHeight * 3; private final int rowThree = rowTwo + oneRowHeight + sepHeight; private final int rowFour = rowThree + oneRowHeight + sepHeight; - private final int rowFive = rowFour + fourRowHeight + sepHeight; + private final int rowFive = rowFour + fourRowHeight + sepHeight * 3; private final int rowSix = rowFive + oneRowHeight + sepHeight; @@ -78,7 +81,7 @@ public class FpdPlatformDefs extends IInternalFrame { private final int rowNine = rowEight + oneRowHeight + sepHeight; - private final int rowTen = rowNine + fourRowHeight + sepHeight + sepHeight; + private final int rowTen = rowNine + fourRowHeight + sepHeight + sepHeight * 3; private final int rowEleven = rowTen + oneRowHeight + sepHeight; @@ -100,11 +103,6 @@ public class FpdPlatformDefs extends IInternalFrame { private final int tableWidth = valueWidth; - /** - * - */ - private static final long serialVersionUID = 1L; - static JFrame frame; private JPanel jContentPane = null; @@ -133,13 +131,15 @@ public class FpdPlatformDefs extends IInternalFrame { private JComboBox jComboBoxInterDir = null; + private JComboBox jBuildTargetComboBox = null; + private JTable jTableBuildTargets = null; private JPanel jArchitectureSelections = null; private JLabel jLabelBuildTargets = null; - private JTextField jTextFieldBuildTarget = null; + // private JTextField jTextFieldBuildTarget = null; private JButton jButtonAddBuildTarget = null; @@ -181,6 +181,13 @@ public class FpdPlatformDefs extends IInternalFrame { private int selectedRow = -1; + /** + * The following are not used by the UI + */ + private static final long serialVersionUID = 1L; + + private ToolChainId tid = new ToolChainId(); + public FpdPlatformDefs() { super(); initialize(); @@ -399,7 +406,9 @@ public class FpdPlatformDefs extends IInternalFrame { jPanelGeneralContainer.add(getArchitectureSelections(), null); jPanelGeneralContainer.add(jLabelBuildTargets, null); - jPanelGeneralContainer.add(getJTextFieldBuildTarget(), null); + // jPanelGeneralContainer.add(getJTextFieldBuildTarget(), null); + jPanelGeneralContainer.add(getJBuildTargetComboBox(), null); + jPanelGeneralContainer.add(getJButtonAddBuildTarget(), null); jPanelGeneralContainer.add(getJButtonDelBuildTarget(), null); jPanelGeneralContainer.add(getJScrollPaneBuildTargets(), null); @@ -441,6 +450,8 @@ public class FpdPlatformDefs extends IInternalFrame { jArchitectureSelections.setBounds(new java.awt.Rectangle(valueColumn, rowOne, valueWidth, oneRowHeight)); jArchitectureSelections.setPreferredSize(new java.awt.Dimension(valueWidth, oneRowHeight)); jArchitectureSelections.setLocation(new java.awt.Point(valueColumn, rowOne)); + jArchitectureSelections.setToolTipText("A Platform may support one or more architectures," + + "
at least one architecture must be selected!"); } return jArchitectureSelections; } @@ -602,20 +613,58 @@ public class FpdPlatformDefs extends IInternalFrame { } /** - * This method initializes jTextField1 - * - * @return javax.swing.JTextField + * Use a ComboBox for BuildTargets + * + * @return javax.swing.JComboBox jBuildTargetComboBox */ - private JTextField getJTextFieldBuildTarget() { - if (jTextFieldBuildTarget == null) { - jTextFieldBuildTarget = new JTextField(); - jTextFieldBuildTarget.setPreferredSize(new Dimension(valueWidth, oneRowHeight)); - jTextFieldBuildTarget.setBounds(new java.awt.Rectangle(valueColumn, rowTwo, valueWidth, oneRowHeight)); - jTextFieldBuildTarget.setLocation(new java.awt.Point(valueColumn, rowTwo)); + private JComboBox getJBuildTargetComboBox() { + if (jBuildTargetComboBox == null) { + String toolBt = null; + if (tid.getToolsDefTargetNames() == null) + toolBt = "DEBUG RELEASE"; + else + toolBt = tid.getToolsDefTargetNames().trim(); + + if ((toolBt.contains("*")) || (toolBt.length() < 1)) { + toolBt = "DEBUG RELEASE"; + } + if (Debug) + System.out.println("Using Build Targets: " + toolBt.trim()); + + toolBt = toolBt.replaceAll(" ", ":"); + toolBt = " :" + toolBt; + if (Debug) + System.out.println("Using Build Targets: " + toolBt.trim()); + String[] buildTargets = toolBt.trim().split(":"); + + jBuildTargetComboBox = new JComboBox(buildTargets); + jBuildTargetComboBox.setEditable(true); + jBuildTargetComboBox.setPreferredSize(new Dimension(valueWidth, oneRowHeight)); + jBuildTargetComboBox.setBounds(new java.awt.Rectangle(valueColumn, rowTwo, valueWidth, oneRowHeight)); + jBuildTargetComboBox.setLocation(new java.awt.Point(valueColumn, rowTwo)); + jBuildTargetComboBox.setToolTipText("Select a defined Target and then click Add,
" + + "or enter a new, one word TargetName and then click Add.
" + + "Remember to define the Targetname in the tool defintion file." + + ""); + } - return jTextFieldBuildTarget; + return jBuildTargetComboBox; } + /** + * This method initializes jTextField1 + * + * @return javax.swing.JTextField + */ + // private JTextField getJTextFieldBuildTarget() { + // if (jTextFieldBuildTarget == null) { + // jTextFieldBuildTarget = new JTextField(); + // jTextFieldBuildTarget.setPreferredSize(new Dimension(valueWidth, oneRowHeight)); + // jTextFieldBuildTarget.setBounds(new java.awt.Rectangle(valueColumn, rowTwo, valueWidth, oneRowHeight)); + // jTextFieldBuildTarget.setLocation(new java.awt.Point(valueColumn, rowTwo)); + // } + // return jTextFieldBuildTarget; + // } /** * This method initializes jButton2 * @@ -633,16 +682,26 @@ public class FpdPlatformDefs extends IInternalFrame { jButtonAddBuildTarget.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { - if (jTextFieldBuildTarget.getText().length() > 0) { - String[] row = { jTextFieldBuildTarget.getText() }; - jTextFieldBuildTarget.setText(""); + // Used with Text Field + // if (jTextFieldBuildTarget.getText().length() > 0) { + // String[] row = { jTextFieldBuildTarget.getText() }; + // jTextFieldBuildTarget.setText(""); + // buildTargetTableModel.addRow(row); + // Vector v = new Vector(); + // for (int i = 0; i < jTableBuildTargets.getRowCount(); ++i) { + // v.add(buildTargetTableModel.getValueAt(i, 0)); + // } + // docConsole.setSaved(false); + // ffc.setPlatformDefsBuildTargets(v); + // } + // Use with ComboBox + if (jBuildTargetComboBox.getSelectedItem().toString().length() > 0) { + String[] row = { jBuildTargetComboBox.getSelectedItem().toString() }; buildTargetTableModel.addRow(row); Vector v = new Vector(); for (int i = 0; i < jTableBuildTargets.getRowCount(); ++i) { v.add(buildTargetTableModel.getValueAt(i, 0)); } - docConsole.setSaved(false); - ffc.setPlatformDefsBuildTargets(v); } } }); @@ -716,6 +775,8 @@ public class FpdPlatformDefs extends IInternalFrame { jTableBuildTargets = new JTable(buildTargetTableModel); jTableBuildTargets.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); jTableBuildTargets.setRowHeight(oneRowHeight); + jTableBuildTargets.setToolTipText("Select one of the Targets from the table and
" + + "click Delete to remove the target from the platform."); buildTargetTableModel.addColumn("Build Target"); jTableBuildTargets.getModel().addTableModelListener(new TableModelListener() { @@ -753,6 +814,7 @@ public class FpdPlatformDefs extends IInternalFrame { jTextFieldSkuId.setPreferredSize(new Dimension(40, oneRowHeight)); jTextFieldSkuId.setBounds(new java.awt.Rectangle(valueColumn, rowSix, 40, oneRowHeight)); jTextFieldSkuId.setLocation(new java.awt.Point(valueColumn, rowSix)); + jTextFieldSkuId.setToolTipText("Enter a unique integer value."); } return jTextFieldSkuId; } @@ -768,6 +830,9 @@ public class FpdPlatformDefs extends IInternalFrame { jTextFieldSkuName.setPreferredSize(new Dimension(valueWidth, oneRowHeight)); jTextFieldSkuName.setBounds(new java.awt.Rectangle(valueColumn, rowSeven, valueWidth, oneRowHeight)); jTextFieldSkuName.setLocation(new java.awt.Point(valueColumn, rowSeven)); + jTextFieldSkuName.setToolTipText("Enter a name to help identify this SKU.
" + + "This entry is not used by the build system, it is
" + + "used only by this user interface."); } return jTextFieldSkuName; } @@ -843,7 +908,10 @@ public class FpdPlatformDefs extends IInternalFrame { jScrollPaneSkuInfo.setPreferredSize(new Dimension(tableWidth - 20, tableHeight - 20)); jScrollPaneSkuInfo.setBounds(new java.awt.Rectangle(valueColumn, rowNine, tableWidth - 5, tableHeight - 5)); jScrollPaneSkuInfo.setLocation(new java.awt.Point(valueColumn, rowNine)); - jScrollPaneSkuInfo.setBorder(null); + + jScrollPaneSkuInfo + .setBorder(javax.swing.BorderFactory + .createEtchedBorder(javax.swing.border.EtchedBorder.RAISED)); jScrollPaneSkuInfo.setViewportView(getJTableSkuInfo()); } @@ -861,6 +929,10 @@ public class FpdPlatformDefs extends IInternalFrame { skuInfoTableModel.addColumn("SKU ID"); skuInfoTableModel.addColumn("Name"); jTableSkuInfo = new JTable(skuInfoTableModel); + jTableSkuInfo.setToolTipText("SKU ID 0 must always be defined as the default.
" + + "0 can mean either SKU disabled, or it can be the
" + + "default value if more than one SKU is defined, and the
" + + "platform is not jumpered to use one of the other SKU values."); jTableSkuInfo.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); @@ -896,6 +968,10 @@ public class FpdPlatformDefs extends IInternalFrame { jComboBoxInterDir.addItem("UNIFIED"); jComboBoxInterDir.addItem("MODULE"); jComboBoxInterDir.setSelectedIndex(0); + jComboBoxInterDir.setToolTipText("Select UNIFIED to generate intermediate directories under
" + + "under platform directory tree.
" + + "Select MODULE to generate intermediate directories under the
" + + "individual module directories."); jComboBoxInterDir.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent e) { if (docConsole != null) { @@ -920,6 +996,7 @@ public class FpdPlatformDefs extends IInternalFrame { jTextFieldOutputDir.setBounds(new java.awt.Rectangle(valueColumn + 30, rowTwelve, valueWidth - 30, oneRowHeight)); jTextFieldOutputDir.setLocation(new java.awt.Point(valueColumn + 30, rowTwelve)); + jTextFieldOutputDir.setToolTipText("Select the name or URL for the output directory tree."); jTextFieldOutputDir.addFocusListener(new java.awt.event.FocusAdapter() { public void focusLost(java.awt.event.FocusEvent e) { docConsole.setSaved(false); diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/toolchain/Preferences.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/toolchain/Preferences.java index d7edcf99db..0c417c53a2 100644 --- a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/toolchain/Preferences.java +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/toolchain/Preferences.java @@ -42,6 +42,7 @@ import org.tianocore.frameworkwizard.workspace.Workspace; import org.tianocore.frameworkwizard.workspace.WorkspaceTools; import org.tianocore.frameworkwizard.platform.PlatformIdentification; import org.tianocore.PlatformSurfaceAreaDocument; +import org.tianocore.frameworkwizard.toolchain.ToolChainId; /** * The class is used to update the target.txt file. @@ -224,7 +225,7 @@ public class Preferences extends IFrame { private Vector vArchList = null; private Vector vDisableArchList = null; - + // // Not used by UI // @@ -574,7 +575,6 @@ public class Preferences extends IFrame { * Read Current target.txt file first * Read TOOL_CHAIN_CONF file if specified, otherwise use tools_def.txt */ - readTargetTxtFile(); boolean haveBuildTargets = readToolDefinitionFile(); if (!haveBuildTargets) { diff --git a/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/toolchain/ToolChainId.java b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/toolchain/ToolChainId.java new file mode 100644 index 0000000000..992bd2f753 --- /dev/null +++ b/Tools/Source/FrameworkWizard/src/org/tianocore/frameworkwizard/toolchain/ToolChainId.java @@ -0,0 +1,305 @@ +/** @file + + This file is used to init tool chain and tool preference data + Copyright (c) 2006, Intel Corporation + All rights reserved. This program and the accompanying materials + are licensed and made available under the terms and conditions of the BSD License + which accompanies this distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + + **/ + +package org.tianocore.frameworkwizard.toolchain; + +import java.io.*; +import java.io.File; +import java.lang.Integer; +import java.util.ArrayList; + +import javax.swing.JOptionPane; + +import org.tianocore.frameworkwizard.common.DataType; +import org.tianocore.frameworkwizard.common.Tools; +import org.tianocore.frameworkwizard.common.Log; +import org.tianocore.frameworkwizard.workspace.Workspace; + +public class ToolChainId { + // + // Define class members + // + + private final boolean Debug = false; + + private String toolDefinitionFile = null; + + private final int toolDefFieldCount = 5; + + private String toolsDefIdentifier = null; + + private String toolsDefTargetNames = null; + + private final int toolsDefTargetNameField = 0; + + private String toolsDefTagNames = null; + + private final int toolsDefTagNameField = 1; + + private String toolsDefArchNames = null; + + private final int toolsDefArchNameField = 2; + + private final int toolsDefToolArgumentField = 4; + + private String toolCommandCodes = null; + + private final int toolsDefCmdCodeArgumentField = 3; + + + private String activePlatform = null; + + private String targetArchs = null; + + private String tagNames = null; + + private String buildTargets = null; + + private String toolFamilies = null; + + private ArrayList toolDefinitionContents = new ArrayList(50); + + private static boolean threadEnabled = false; + + private static int maxThreadCount = 0; + + private String toolsDir = Workspace.getCurrentWorkspace() + System.getProperty("file.separator") + "Tools" + + System.getProperty("file.separator") + "Conf"; + + private String strTargetFile = toolsDir + DataType.FILE_SEPARATOR + "target.txt"; + + private String defaultToolsConf = toolsDir + DataType.FILE_SEPARATOR + "tools_def.txt"; + + public void init() { + readTargetTxtFile(); + readToolDefinitionFile(); + } + + public ToolChainId() { + super(); + init(); + } + + public String getToolDefinitionFile() { + return toolDefinitionFile; + } + + public String getActivePlatform() { + return activePlatform; + } + + public String getBuildTargets() { + return buildTargets; + } + + public String getTagNames() { + return tagNames; + } + + public String getTargetArchitectures() { + return targetArchs; + } + + public boolean getThreadEnabled() { + return threadEnabled; + } + + public int getMaxThreadCount() { + return maxThreadCount; + } + + public String getToolFamilies() { + return toolFamilies; + } + + public String getToolDefinitionIdentifier() { + return toolsDefIdentifier; + } + + public ArrayList getToolDefinitionStatements() { + return toolDefinitionContents; + } + + public String getToolsDefTagNames() { + return toolsDefTagNames; + } + + public String getToolsDefTargetNames() { + return toolsDefTargetNames; + } + + public String getToolsDefCommandCodes() { + return toolCommandCodes; + } + + private void readTargetTxtFile() { + File tFile = new File(strTargetFile); + + if (tFile.exists()) { + try { + FileReader fileReader = new FileReader(strTargetFile); + BufferedReader reader = new BufferedReader(fileReader); + String rLine = null; + String inLine[] = new String[2]; + while ((rLine = reader.readLine()) != null) { + if ((rLine.startsWith("ACTIVE_PLATFORM")) && (activePlatform == null)) { + // Only one active platform is permitted! + inLine = rLine.trim().split("="); + activePlatform = inLine[1].trim(); + } + if ((rLine.startsWith("TARGET" + " ")) || (rLine.startsWith("TARGET" + "\t")) + || (rLine.startsWith("TARGET="))) { + // Handle multiple Target Names + if (rLine.contains(",")) { + inLine = rLine.trim().split("="); + buildTargets = inLine[1].trim().replaceAll(",", " "); + } else { + inLine = rLine.trim().split("="); + buildTargets = inLine[1].trim(); + } + } + if (rLine.startsWith("TARGET_ARCH")) { + // Handle multiple Target Architectures + if (rLine.contains(",")) { + inLine = rLine.trim().split("="); + targetArchs = inLine[1].trim().replaceAll(",", " "); + } else { + inLine = rLine.trim().split("="); + targetArchs = inLine[1].trim(); + } + } + if (rLine.startsWith("TOOL_CHAIN_CONF")) { + // Only one file is permitted + inLine = rLine.trim().split("="); + toolDefinitionFile = inLine[1].trim(); + } + + if (rLine.startsWith("TOOL_CHAIN_TAG")) { + // Handle multiple Tool TagNames + if (rLine.contains(",")) { + inLine = rLine.trim().split("="); + tagNames = inLine[1].trim().replaceAll(",", " "); + } else { + inLine = rLine.trim().split("="); + tagNames = inLine[1].trim(); + } + } + + if (rLine.startsWith("MULTIPLE_THREAD")) { + // Handle Thread Enable flag + if ((rLine.trim().toLowerCase().contains("enabled")) + || (rLine.trim().toLowerCase().contains("true"))) { + threadEnabled = true; + } else { + threadEnabled = false; + } + } + + if (rLine.startsWith("MAX_CONCURRENT_THREAD_NUMBER")) { + // Handle Thread Enable flag + inLine = rLine.trim().split("="); + maxThreadCount = Integer.valueOf(inLine[1].trim()); + } + } + reader.close(); + } catch (IOException e) { + Log.log(this.strTargetFile + " Read Error ", e.getMessage()); + e.printStackTrace(); + } + } else { + JOptionPane.showMessageDialog(null, "" + "Tool Preferences file:
" + strTargetFile + + "
does not exist!"); + } + } + + private void readToolDefinitionFile() { + + // Parse the tool definition file looking for targets and architectures + String toolsConfFile = null; + if (toolDefinitionFile != null) { + String resString = (Tools.convertPathToCurrentOsType(toolDefinitionFile)).trim(); + toolsConfFile = Workspace.getCurrentWorkspace() + System.getProperty("file.separator") + resString.trim(); + File toolsDefFile = new File(toolsConfFile); + if (!toolsDefFile.exists()) { + JOptionPane.showMessageDialog(null, "" + "Tool Definition file, " + toolDefinitionFile + + "
specified in the target.txt file does not exist!" + + "
Using the default Tool Definition File:
" + + defaultToolsConf); + toolsConfFile = defaultToolsConf; + } + } else { + toolsConfFile = defaultToolsConf; + } + String[] toolsDefFields = new String[toolDefFieldCount]; + for (int i = 0; i < toolDefFieldCount; i++) + toolsDefFields[i] = null; + File toolDefFile = new File(toolsConfFile); + if (toolDefFile.exists()) { + try { + FileReader fileReader = new FileReader(toolDefFile); + BufferedReader reader = new BufferedReader(fileReader); + String rLine = null; + String result[]; + while ((rLine = reader.readLine()) != null) { + if ((rLine.startsWith("IDENTIFIER")) && (toolsDefIdentifier == null)) { + result = rLine.split("="); + toolsDefIdentifier = (result[1]).trim(); + } else if ((!rLine.startsWith("#")) && (rLine.contains("="))) { + result = rLine.split("="); + toolsDefFields = ((result[0]).trim()).split("_"); + if (toolsDefTargetNames == null) { + toolsDefTargetNames = (toolsDefFields[toolsDefTargetNameField]).toUpperCase().trim() + " "; + } else if (!toolsDefTargetNames.contains((toolsDefFields[toolsDefTargetNameField]).toUpperCase().trim())) { + toolsDefTargetNames += (toolsDefFields[toolsDefTargetNameField]).toUpperCase().trim() + " "; + } + if (toolsDefTagNames == null) { + toolsDefTagNames = (toolsDefFields[toolsDefTagNameField]).toUpperCase().toUpperCase().trim() + " "; + } else if (!toolsDefTagNames.contains((toolsDefFields[toolsDefTagNameField]).toUpperCase().trim())) { + toolsDefTagNames += (toolsDefFields[toolsDefTagNameField]).toUpperCase().trim() + " "; + } + if (toolsDefArchNames == null) { + toolsDefArchNames = (toolsDefFields[toolsDefArchNameField]).toUpperCase().trim() + " "; + } else if (!toolsDefArchNames.contains((toolsDefFields[toolsDefArchNameField]).toUpperCase().trim())) { + toolsDefArchNames += (toolsDefFields[toolsDefArchNameField]).toUpperCase().trim() + " "; + } + if ((toolFamilies == null) && (rLine.trim().contains("FAMILY"))) { + toolFamilies = (toolsDefFields[toolsDefToolArgumentField]).toUpperCase().trim() + " "; + } else if ((rLine.trim().contains("FAMILY")) + && (!toolFamilies.contains((toolsDefFields[toolsDefToolArgumentField]).toUpperCase().trim()))) { + toolFamilies += (toolsDefFields[toolsDefToolArgumentField]).toUpperCase().trim() + " "; + } + if ((toolCommandCodes == null)) { + toolCommandCodes = (toolsDefFields[toolsDefCmdCodeArgumentField]).toUpperCase().trim() + " "; + } else if ((!toolCommandCodes.contains((toolsDefFields[toolsDefCmdCodeArgumentField]).toUpperCase().trim()))) { + toolCommandCodes += (toolsDefFields[toolsDefCmdCodeArgumentField].toUpperCase().trim()) + " "; + } + + toolDefinitionContents.add(rLine.trim().replaceAll(" ", "")); + } + } + reader.close(); + if (!toolsDefTargetNames.matches("[A-Z]+")) { + toolsDefTargetNames = toolsDefTargetNames.replace("* ", "").trim(); + if (Debug) + System.out.println("tools_def file does not define build targets: '" + toolsDefTargetNames + + "'"); + } + } catch (IOException e) { + Log.log(toolsConfFile + " Read Error ", e.getMessage()); + e.printStackTrace(); + } + } + } + +} -- 2.39.2