1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Bug 115601 Add -include option to built-in MBS GNU toolchain. Add Paths & Symbols property page for editing paths of kind ICSettingEntry#INCLUDE_FILE (hidden by default)

This commit is contained in:
James Blackburn 2010-04-28 13:23:39 +00:00
parent cacd81cb7e
commit f6da41c466
10 changed files with 195 additions and 1 deletions

View file

@ -100,7 +100,7 @@ ToolName.compiler.solaris.cpp = Solaris C++ Compiler
# Generic Category Names
OptionCategory.Symbols = Symbols
OptionCategory.Preproc = Preprocessor
OptionCategory.Dirs = Directories
OptionCategory.Dirs = Includes
OptionCategory.General = General
OptionCategory.Optimize=Optimization
OptionCategory.Debug=Debugging
@ -117,6 +117,7 @@ Option.Posix.DefSym=Defined symbols (-D)
Option.Posix.UndefSym=Undefined symbols (-U)
Option.Posix.InclPaths=Include paths (-I)
Option.Posix.InclFiles=Include files (-include)
Option.Posix.OptLevel=Optimization Level
Option.Posix.Optimize.None=None (-O0)

View file

@ -1011,6 +1011,14 @@
valueType="includePath"
browseType="directory">
</option>
<option
browseType="file"
category="gnu.c.compiler.category.dirs"
command="-include"
id="gnu.c.compiler.option.include.files"
name="%Option.Posix.InclFiles"
valueType="includeFiles">
</option>
<optionCategory
owner="cdt.managedbuild.tool.gnu.c.compiler"
name="%OptionCategory.Optimize"

Binary file not shown.

After

Width:  |  Height:  |  Size: 353 B

View file

@ -79,6 +79,8 @@ Builder.settings=Builder Settings
WBB.settings=Behaviour
Includes=Includes
Includes.tooltip=Includes list
IncludeFiles=Include Files
IncludeFiles.tooltip=Include Files list
Symbols=Symbols
Symbols.tooltip=Macros list
Libraries=Libraries

View file

@ -251,6 +251,14 @@
helpId="cdt_u_prop_pns_inc"
parent="org.eclipse.cdt.managedbuilder.ui.properties.Page_PathAndSymb"
tooltip="%Includes.tooltip"/>
<tab
class="org.eclipse.cdt.ui.newui.IncludeFileTab"
icon="icons/obj16/h_file_obj.gif"
name="%IncludeFiles"
weight="015"
helpId="cdt_u_prop_pns_inc"
parent="org.eclipse.cdt.managedbuilder.ui.properties.Page_PathAndSymb"
tooltip="%IncludeFiles.tooltip"/>
<tab
class="org.eclipse.cdt.ui.newui.SymbolTab"
icon="icons/obj16/define_obj.gif"
@ -333,6 +341,14 @@
helpId="cdt_u_prop_exp"
parent="org.eclipse.cdt.managedbuilder.ui.properties.Page_ExpPathAndSymb"
tooltip="%Includes.tooltip"/>
<tab
class="org.eclipse.cdt.ui.newui.ExpIncludeFileTab"
icon="icons/obj16/h_file_obj.gif"
name="%IncludeFiles"
weight="015"
helpId="cdt_u_prop_exp"
parent="org.eclipse.cdt.managedbuilder.ui.properties.Page_ExpPathAndSymb"
tooltip="%IncludeFiles.tooltip"/>
<tab
class="org.eclipse.cdt.ui.newui.ExpSymbolTab"
icon="icons/obj16/define_obj.gif"

View file

@ -34,6 +34,7 @@ public class PropertyPageDefsTab extends AbstractCPropertyTab {
private static final int SPACING = 5; // for radio buttons layout
private Button show_tree;
private Button show_inc_files;
private Button show_mng;
private Button show_tool;
private Button show_exp;
@ -57,6 +58,10 @@ public class PropertyPageDefsTab extends AbstractCPropertyTab {
show_mng.setText(UIMessages.getString("PropertyPageDefsTab.0")); //$NON-NLS-1$
show_mng.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
show_inc_files = new Button(usercomp, SWT.CHECK);
show_inc_files.setText(UIMessages.getString("PropertyPageDefsTab.showIncludeFileTab")); //$NON-NLS-1$
show_inc_files.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
show_tree = new Button(usercomp, SWT.CHECK);
show_tree.setText(UIMessages.getString("PropertyPageDefsTab.1")); //$NON-NLS-1$
show_tree.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
@ -107,6 +112,7 @@ public class PropertyPageDefsTab extends AbstractCPropertyTab {
b_3 = new Button(discGrp, SWT.RADIO);
b_3.setText(UIMessages.getString("PropertyPageDefsTab.9")); //$NON-NLS-1$
show_inc_files.setSelection(CDTPrefUtil.getBool(CDTPrefUtil.KEY_SHOW_INC_FILES));
show_tree.setSelection(CDTPrefUtil.getBool(CDTPrefUtil.KEY_DTREE));
show_mng.setSelection(!CDTPrefUtil.getBool(CDTPrefUtil.KEY_NOMNG));
show_tool.setSelection(!CDTPrefUtil.getBool(CDTPrefUtil.KEY_NOTOOLM));
@ -129,6 +135,7 @@ public class PropertyPageDefsTab extends AbstractCPropertyTab {
@Override
protected void performOK() {
CDTPrefUtil.setBool(CDTPrefUtil.KEY_SHOW_INC_FILES, show_inc_files.getSelection());
CDTPrefUtil.setBool(CDTPrefUtil.KEY_DTREE, show_tree.getSelection());
CDTPrefUtil.setBool(CDTPrefUtil.KEY_NOMNG, !show_mng.getSelection());
CDTPrefUtil.setBool(CDTPrefUtil.KEY_NOTOOLM, !show_tool.getSelection());
@ -149,6 +156,7 @@ public class PropertyPageDefsTab extends AbstractCPropertyTab {
@Override
protected void performDefaults() {
show_tree.setSelection(false);
show_inc_files.setSelection(false);
show_mng.setSelection(true);
show_tool.setSelection(true);
show_exp.setSelection(false);

View file

@ -37,6 +37,8 @@ public class CDTPrefUtil {
public static final String KEY_DTREE = "properties.data.hierarchy.enable"; //$NON-NLS-1$
public static final String KEY_NOTOOLM = "properties.toolchain.modification.disable"; //$NON-NLS-1$
public static final String KEY_EXPORT = "properties.export.page.enable"; //$NON-NLS-1$
/** @since 5.2 Show the "Include Files" settings entry tab */
public static final String KEY_SHOW_INC_FILES = "properties.includefiles.page.enable"; //$NON-NLS-1$
/** @since 5.2 */
public static final String KEY_TIPBOX = "properties.option.tipbox.enable"; //$NON-NLS-1$
// string keys

View file

@ -0,0 +1,52 @@
/*******************************************************************************
* Copyright (c) 2007, 2010 Intel Corporation and others.
* 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:
* Intel Corporation - initial API and implementation
* Broadcom Corporation
*******************************************************************************/
package org.eclipse.cdt.ui.newui;
import org.eclipse.cdt.core.settings.model.CIncludeFileEntry;
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
import org.eclipse.cdt.core.settings.model.ICSettingEntry;
/**
* @noextend This class is not intended to be subclassed by clients.
* @noinstantiate This class is not intended to be instantiated by clients.
* @since 5.2
*/
public class ExpIncludeFileTab extends AbstractExportTab {
@Override
public ICLanguageSettingEntry doAdd(String s1, String s2, boolean isWsp) {
int flags = isWsp ? ICSettingEntry.VALUE_WORKSPACE_PATH : 0;
return new CIncludeFileEntry(s2, flags);
}
@Override
public ICLanguageSettingEntry doEdit(String s1, String s2, boolean isWsp) {
return doAdd(s1, s2, isWsp);
}
@Override
public int getKind() {
return ICSettingEntry.INCLUDE_FILE;
}
@Override
public boolean canBeVisible() {
if (!CDTPrefUtil.getBool(CDTPrefUtil.KEY_SHOW_INC_FILES))
return false;
return super.canBeVisible();
}
@Override
public boolean hasValues() {
return false;
}
}

View file

@ -0,0 +1,101 @@
/*******************************************************************************
* Copyright (c) 2007, 2010 Intel Corporation and others.
* 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:
* Intel Corporation - initial API and implementation
* IBM Corporation
* Broadcom Corporation
*******************************************************************************/
package org.eclipse.cdt.ui.newui;
import org.eclipse.swt.SWT;
import org.eclipse.swt.accessibility.AccessibleAdapter;
import org.eclipse.swt.accessibility.AccessibleEvent;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.cdt.core.settings.model.CIncludeFileEntry;
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
import org.eclipse.cdt.core.settings.model.ICSettingEntry;
/**
* This class provides UI for the {@link ICSettingEntry#INCLUDE_FILE}
* option type.
*<p>
* This tab is hidden by default and can be shown under: <br/>
* Window > Preferences > C/C++ > Property Page Settings > Show "Include Files" Tab
*
* @noextend This class is not intended to be subclassed by clients.
* @noinstantiate This class is not intended to be instantiated by clients.
* @since 5.2
*/
public class IncludeFileTab extends AbstractLangsListTab {
@Override
public void additionalTableSet() {
columnToFit = new TableColumn(table, SWT.NONE);
columnToFit.setText(UIMessages.getString("IncludeFileTab.0")); //$NON-NLS-1$
columnToFit.setToolTipText(UIMessages.getString("IncludeFileTab.0")); //$NON-NLS-1$
showBIButton.setSelection(true);
table.getAccessible().addAccessibleListener(new AccessibleAdapter() {
@Override
public void getName(AccessibleEvent e) {
e.result = UIMessages.getString("IncludeFileTab.0"); //$NON-NLS-1$
}
});
}
@Override
public ICLanguageSettingEntry doAdd() {
IncludeDialog dlg = new IncludeDialog(usercomp.getShell(), IncludeDialog.NEW_FILE, UIMessages
.getString("IncludeFileTab.1"), //$NON-NLS-1$
EMPTY_STR, getResDesc().getConfiguration(), 0);
if (dlg.open() && dlg.text1.trim().length() > 0) {
toAllCfgs = dlg.check1;
toAllLang = dlg.check3;
int flags = 0;
if (dlg.check2) { // isWsp
flags = ICSettingEntry.VALUE_WORKSPACE_PATH;
}
return new CIncludeFileEntry(dlg.text1, flags);
}
return null;
}
@Override
public ICLanguageSettingEntry doEdit(ICLanguageSettingEntry ent) {
IncludeDialog dlg = new IncludeDialog(usercomp.getShell(), IncludeDialog.OLD_FILE,
UIMessages.getString("IncludeFileTab.2"), //$NON-NLS-1$
ent.getValue(), getResDesc().getConfiguration(),
(ent.getFlags() & ICSettingEntry.VALUE_WORKSPACE_PATH));
if (dlg.open()) {
int flags = 0;
if (dlg.check2)
flags = ICSettingEntry.VALUE_WORKSPACE_PATH;
return new CIncludeFileEntry(dlg.text1, flags);
}
return null;
}
@Override
public int getKind() {
return ICSettingEntry.INCLUDE_FILE;
}
@Override
public boolean canBeVisible() {
if (!CDTPrefUtil.getBool(CDTPrefUtil.KEY_SHOW_INC_FILES))
return false;
return super.canBeVisible();
}
@Override
public void createControls(final Composite parent) {
super.createControls(parent);
ImportExportWizardButtons.addWizardLaunchButtons(usercomp, page.getElement());
}
}

View file

@ -296,6 +296,7 @@ PropertyPageDefsTab.6=Show disc. page names if they are unique. Else names + pro
PropertyPageDefsTab.7=Show disc. page names if they are unique. Else show profile IDs.
PropertyPageDefsTab.8=Always show names + profile IDs
PropertyPageDefsTab.9=Always show profile IDs only
PropertyPageDefsTab.showIncludeFileTab=Display "Include Files" tab
ProjectConvert.convertersList=Converters List
ScannerConfigOptionsDialog.title=Discovery Options
@ -409,6 +410,9 @@ EnvironmentTab.9=Undefine
IncludeTab.0=Include directories
IncludeTab.1=Add directory path
IncludeTab.2=Change directory path
IncludeFileTab.0=Include files
IncludeFileTab.1=Add include file
IncludeFileTab.2=Change include file
IncludeDialog.0=Directory:
IncludeDialog.1=File:
IncludeDialog.2=Add to all configurations