1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-22 16:35:25 +02:00

bug 402023: Provide programmatic access for names of CdtMacroSupplier variables ($ProjName, $ConfigName etc.)

This commit is contained in:
Andrew Gvozdev 2013-05-20 11:34:06 -04:00
parent 75e17131c0
commit 2d5584fe98
6 changed files with 111 additions and 67 deletions

View file

@ -48,6 +48,7 @@ import org.eclipse.cdt.managedbuilder.core.IToolChain;
import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager; import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
import org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin; import org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin;
import org.eclipse.cdt.managedbuilder.core.ManagedCProjectNature; import org.eclipse.cdt.managedbuilder.core.ManagedCProjectNature;
import org.eclipse.cdt.utils.cdtvariables.CdtVariableResolver;
import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProject;
@ -519,7 +520,7 @@ public class ManagedBuildTestHelper {
final String INCLUDE_PATTERN = "-include \\$\\(.*\\)"; final String INCLUDE_PATTERN = "-include \\$\\(.*\\)";
final String MACRO_PATTERN = "\\S* [:+]=.*"; final String MACRO_PATTERN = "\\S* [:+]=.*";
final String EMPTY_MACRO_PATTERN = "\\S* :="; final String EMPTY_MACRO_PATTERN = "\\S* :=";
final String WORKSPACE_DIR_STR = "${WorkspaceDirPath}"; final String WORKSPACE_DIR_STR = CdtVariableResolver.createVariableReference(CdtVariableResolver.VAR_WORKSPACE_DIR_PATH);
ArrayList<String> testArray = mergeContinuationLines(getContents(testFile)); ArrayList<String> testArray = mergeContinuationLines(getContents(testFile));
ArrayList<String> benchmarkArray = mergeContinuationLines(getContents(benchmarkFile)); ArrayList<String> benchmarkArray = mergeContinuationLines(getContents(benchmarkFile));

View file

@ -34,6 +34,7 @@ import org.eclipse.cdt.managedbuilder.core.IManagedProject;
import org.eclipse.cdt.managedbuilder.core.IProjectType; import org.eclipse.cdt.managedbuilder.core.IProjectType;
import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager; import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
import org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin; import org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin;
import org.eclipse.cdt.utils.cdtvariables.CdtVariableResolver;
import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.CoreException;
import org.osgi.framework.Version; import org.osgi.framework.Version;
@ -422,7 +423,7 @@ public class ManagedProject extends BuildObject implements IManagedProject, IBui
*/ */
@Override @Override
public String getDefaultArtifactName(){ public String getDefaultArtifactName(){
return "${ProjName}"; //$NON-NLS-1$ return CdtVariableResolver.createVariableReference(CdtVariableResolver.VAR_PROJ_NAME);
} }
/* (non-Javadoc) /* (non-Javadoc)

View file

@ -80,8 +80,8 @@ public class MbsMacroSupplier extends BuildCdtVariablesSupplierBase {
}; };
private static final String fConfigurationMacros[] = new String[]{ private static final String fConfigurationMacros[] = new String[]{
// "ConfigName", //$NON-NLS-1$ // CdtVariableResolver.VAR_CONFIG_NAME,
// "ConfigDescription", //$NON-NLS-1$ // CdtVariableResolver.VAR_CONFIG_DESCRIPTION,
"BuildArtifactFileName", //$NON-NLS-1$ "BuildArtifactFileName", //$NON-NLS-1$
"BuildArtifactFileExt", //$NON-NLS-1$ "BuildArtifactFileExt", //$NON-NLS-1$
"BuildArtifactFileBaseName", //$NON-NLS-1$ "BuildArtifactFileBaseName", //$NON-NLS-1$
@ -93,24 +93,24 @@ public class MbsMacroSupplier extends BuildCdtVariablesSupplierBase {
}; };
private static final String fProjectMacros[] = new String[]{ private static final String fProjectMacros[] = new String[]{
// "ProjName", //$NON-NLS-1$ // CdtVariableResolver.VAR_PROJ_NAME,
// "ProjDirPath", //$NON-NLS-1$ // CdtVariableResolver.VAR_PROJ_DIR_PATH,
}; };
private static final String fWorkspaceMacros[] = new String[]{ private static final String fWorkspaceMacros[] = new String[]{
// "WorkspaceDirPath", //$NON-NLS-1$ // CdtVariableResolver.VAR_WORKSPACE_DIR_PATH,
// "DirectoryDelimiter", //$NON-NLS-1$ // CdtVariableResolver.VAR_DIRECTORY_DELIMITER,
// "PathDelimiter", //$NON-NLS-1$ // CdtVariableResolver.VAR_PATH_DELIMITER,
}; };
private static final String fCDTEclipseMacros[] = new String[]{ private static final String fCDTEclipseMacros[] = new String[]{
// "EclipseVersion", //$NON-NLS-1$ // CdtVariableResolver.VAR_ECLIPSE_VERSION,
// "CDTVersion", //$NON-NLS-1$ // CdtVariableResolver.VAR_CDT_VERSION,
"MBSVersion", //$NON-NLS-1$ "MBSVersion", //$NON-NLS-1$
// "HostOsName", //$NON-NLS-1$ // CdtVariableResolver.VAR_HOST_OS_NAME,
// "HostArchName", //$NON-NLS-1$ // CdtVariableResolver.VAR_HOST_ARCH_NAME,
// "OsType", //$NON-NLS-1$ // CdtVariableResolver.VAR_HOST_OS_TYPE,
// "ArchType", //$NON-NLS-1$ // CdtVariableResolver.VAR_HOST_ARCH_TYPE,
}; };
private class OptionData extends OptionContextData { private class OptionData extends OptionContextData {
@ -419,10 +419,10 @@ public class MbsMacroSupplier extends BuildCdtVariablesSupplierBase {
public IBuildMacro getMacro(String macroName, IBuilder builder, IConfiguration cfg){ public IBuildMacro getMacro(String macroName, IBuilder builder, IConfiguration cfg){
IBuildMacro macro = null; IBuildMacro macro = null;
if("ConfigName".equals(macroName)){ //$NON-NLS-1$ if (CdtVariableResolver.VAR_CONFIG_NAME.equals(macroName)) {
macro = new BuildMacro(macroName,IBuildMacro.VALUE_TEXT,cfg.getName()); macro = new BuildMacro(macroName,IBuildMacro.VALUE_TEXT,cfg.getName());
} }
else if("ConfigDescription".equals(macroName)){ //$NON-NLS-1$ else if (CdtVariableResolver.VAR_CONFIG_DESCRIPTION.equals(macroName)){
macro = new BuildMacro(macroName,IBuildMacro.VALUE_TEXT,cfg.getDescription()); macro = new BuildMacro(macroName,IBuildMacro.VALUE_TEXT,cfg.getDescription());
} }
else if("BuildArtifactFileName".equals(macroName)){ //$NON-NLS-1$ else if("BuildArtifactFileName".equals(macroName)){ //$NON-NLS-1$
@ -604,10 +604,10 @@ public class MbsMacroSupplier extends BuildCdtVariablesSupplierBase {
public IBuildMacro getMacro(String macroName, IManagedProject mngProj){ public IBuildMacro getMacro(String macroName, IManagedProject mngProj){
IBuildMacro macro = null; IBuildMacro macro = null;
if("ProjName".equals(macroName)){ //$NON-NLS-1$ if(CdtVariableResolver.VAR_PROJ_NAME.equals(macroName)){
macro = new BuildMacro(macroName,IBuildMacro.VALUE_TEXT,mngProj.getOwner().getName()); macro = new BuildMacro(macroName,IBuildMacro.VALUE_TEXT,mngProj.getOwner().getName());
} }
else if("ProjDirPath".equals(macroName)){ //$NON-NLS-1$ else if(CdtVariableResolver.VAR_PROJ_DIR_PATH.equals(macroName)){
macro = new BuildMacro(macroName,IBuildMacro.VALUE_PATH_DIR,mngProj.getOwner().getLocation().toOSString()); macro = new BuildMacro(macroName,IBuildMacro.VALUE_PATH_DIR,mngProj.getOwner().getLocation().toOSString());
} }
return macro; return macro;
@ -615,15 +615,15 @@ public class MbsMacroSupplier extends BuildCdtVariablesSupplierBase {
public IBuildMacro getMacro(String macroName, IWorkspace wsp){ public IBuildMacro getMacro(String macroName, IWorkspace wsp){
IBuildMacro macro = null; IBuildMacro macro = null;
if("WorkspaceDirPath".equals(macroName)){ //$NON-NLS-1$ if (CdtVariableResolver.VAR_WORKSPACE_DIR_PATH.equals(macroName)) {
macro = new BuildMacro(macroName,IBuildMacro.VALUE_PATH_DIR,wsp.getRoot().getLocation().toOSString()); macro = new BuildMacro(macroName,IBuildMacro.VALUE_PATH_DIR,wsp.getRoot().getLocation().toOSString());
} else if("DirectoryDelimiter".equals(macroName)){ //$NON-NLS-1$ } else if (CdtVariableResolver.VAR_DIRECTORY_DELIMITER.equals(macroName)) {
if(isWin32()){ if(isWin32()){
macro = new BuildMacro(macroName,IBuildMacro.VALUE_TEXT,"\\"); //$NON-NLS-1$ macro = new BuildMacro(macroName,IBuildMacro.VALUE_TEXT,"\\"); //$NON-NLS-1$
} else { } else {
macro = new BuildMacro(macroName,IBuildMacro.VALUE_TEXT,"/"); //$NON-NLS-1$ macro = new BuildMacro(macroName,IBuildMacro.VALUE_TEXT,"/"); //$NON-NLS-1$
} }
} else if("PathDelimiter".equals(macroName)){ //$NON-NLS-1$ } else if (CdtVariableResolver.VAR_PATH_DELIMITER.equals(macroName)) {
if(isWin32()){ if(isWin32()){
macro = new BuildMacro(macroName,IBuildMacro.VALUE_TEXT,";"); //$NON-NLS-1$ macro = new BuildMacro(macroName,IBuildMacro.VALUE_TEXT,";"); //$NON-NLS-1$
} else { } else {
@ -642,34 +642,34 @@ public class MbsMacroSupplier extends BuildCdtVariablesSupplierBase {
public IBuildMacro getMacro(String macroName){ public IBuildMacro getMacro(String macroName){
IBuildMacro macro = null; IBuildMacro macro = null;
if("EclipseVersion".equals(macroName)){ //$NON-NLS-1$ if (CdtVariableResolver.VAR_ECLIPSE_VERSION.equals(macroName)) {
Bundle bundle = Platform.getBundle("org.eclipse.platform"); //$NON-NLS-1$ Bundle bundle = Platform.getBundle("org.eclipse.platform"); //$NON-NLS-1$
String version = bundle != null ? String version = bundle != null ?
(String)bundle.getHeaders().get(org.osgi.framework.Constants.BUNDLE_VERSION) : (String)bundle.getHeaders().get(org.osgi.framework.Constants.BUNDLE_VERSION) :
null; null;
macro = new BuildMacro(macroName,IBuildMacro.VALUE_TEXT,version); macro = new BuildMacro(macroName,IBuildMacro.VALUE_TEXT,version);
} }
else if("CDTVersion".equals(macroName)){ //$NON-NLS-1$ else if (CdtVariableResolver.VAR_CDT_VERSION.equals(macroName)) {
String version = CCorePlugin.getDefault().getBundle().getHeaders().get(org.osgi.framework.Constants.BUNDLE_VERSION); String version = CCorePlugin.getDefault().getBundle().getHeaders().get(org.osgi.framework.Constants.BUNDLE_VERSION);
macro = new BuildMacro(macroName,IBuildMacro.VALUE_TEXT,version); macro = new BuildMacro(macroName,IBuildMacro.VALUE_TEXT,version);
} }
else if("MBSVersion".equals(macroName)){ //$NON-NLS-1$ else if ("MBSVersion".equals(macroName)) { //$NON-NLS-1$
String version = ManagedBuildManager.getBuildInfoVersion().toString(); String version = ManagedBuildManager.getBuildInfoVersion().toString();
macro = new BuildMacro(macroName,IBuildMacro.VALUE_TEXT,version); macro = new BuildMacro(macroName,IBuildMacro.VALUE_TEXT,version);
} }
else if("HostOsName".equals(macroName)){ //$NON-NLS-1$ else if (CdtVariableResolver.VAR_HOST_OS_NAME.equals(macroName)) {
String os = System.getProperty("os.name"); //$NON-NLS-1$ String os = System.getProperty("os.name"); //$NON-NLS-1$
macro = new BuildMacro(macroName,IBuildMacro.VALUE_TEXT,os); macro = new BuildMacro(macroName,IBuildMacro.VALUE_TEXT,os);
} }
else if("HostArchName".equals(macroName)){ //$NON-NLS-1$ else if (CdtVariableResolver.VAR_HOST_ARCH_NAME.equals(macroName)) {
String arch = System.getProperty("os.arch"); //$NON-NLS-1$ String arch = System.getProperty("os.arch"); //$NON-NLS-1$
macro = new BuildMacro(macroName,IBuildMacro.VALUE_TEXT,arch); macro = new BuildMacro(macroName,IBuildMacro.VALUE_TEXT,arch);
} }
else if("OsType".equals(macroName)){ //$NON-NLS-1$ else if (CdtVariableResolver.VAR_OS_TYPE.equals(macroName)) {
String os = Platform.getOS(); String os = Platform.getOS();
macro = new BuildMacro(macroName,IBuildMacro.VALUE_TEXT,os); macro = new BuildMacro(macroName,IBuildMacro.VALUE_TEXT,os);
} }
else if("ArchType".equals(macroName)){ //$NON-NLS-1$ else if (CdtVariableResolver.VAR_ARCH_TYPE.equals(macroName)) {
String arch = Platform.getOSArch(); String arch = Platform.getOSArch();
macro = new BuildMacro(macroName,IBuildMacro.VALUE_TEXT,arch); macro = new BuildMacro(macroName,IBuildMacro.VALUE_TEXT,arch);
} }

View file

@ -1,5 +1,5 @@
/******************************************************************************* /*******************************************************************************
* Copyright (c) 2005, 2008 Intel Corporation and others. * Copyright (c) 2005, 2013 Intel Corporation and others.
* All rights reserved. This program and the accompanying materials * All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0 * are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at * which accompanies this distribution, and is available at
@ -27,15 +27,27 @@ import org.osgi.framework.Bundle;
* @since 3.0 * @since 3.0
*/ */
public class CdtMacroSupplier extends CoreMacroSupplierBase { public class CdtMacroSupplier extends CoreMacroSupplierBase {
private static CdtMacroSupplier fInstance; public static final String VAR_CONFIG_NAME = "ConfigName"; //$NON-NLS-1$
public final static String DOT = "."; //$NON-NLS-1$ public static final String VAR_CONFIG_DESCRIPTION = "ConfigDescription"; //$NON-NLS-1$
public final static String EMPTY_STRING = ""; //$NON-NLS-1$ public static final String VAR_PROJ_NAME = "ProjName"; //$NON-NLS-1$
public static final String VAR_PROJ_DIR_PATH = "ProjDirPath"; //$NON-NLS-1$
public static final String VAR_WORKSPACE_DIR_PATH = "WorkspaceDirPath"; //$NON-NLS-1$
public static final String VAR_DIRECTORY_DELIMITER = "DirectoryDelimiter"; //$NON-NLS-1$
public static final String VAR_PATH_DELIMITER = "PathDelimiter"; //$NON-NLS-1$
public static final String VAR_ECLIPSE_VERSION = "EclipseVersion"; //$NON-NLS-1$
public static final String VAR_CDT_VERSION = "CDTVersion"; //$NON-NLS-1$
public static final String VAR_HOST_OS_NAME = "HostOsName"; //$NON-NLS-1$
public static final String VAR_HOST_ARCH_NAME = "HostArchName"; //$NON-NLS-1$
public static final String VAR_OS_TYPE = "OsType"; //$NON-NLS-1$
public static final String VAR_ARCH_TYPE = "ArchType"; //$NON-NLS-1$
private static final String fConfigurationMacros[] = new String[]{ private static CdtMacroSupplier fInstance;
"ConfigName", //$NON-NLS-1$
"ConfigDescription", //$NON-NLS-1$ private static final String fConfigurationMacros[] = new String[] {
"ProjName", //$NON-NLS-1$ VAR_CONFIG_NAME,
"ProjDirPath", //$NON-NLS-1$ VAR_CONFIG_DESCRIPTION,
VAR_PROJ_NAME,
VAR_PROJ_DIR_PATH,
// "BuildArtifactFileName", //$NON-NLS-1$ // "BuildArtifactFileName", //$NON-NLS-1$
// "BuildArtifactFileExt", //$NON-NLS-1$ // "BuildArtifactFileExt", //$NON-NLS-1$
// "BuildArtifactFileBaseName", //$NON-NLS-1$ // "BuildArtifactFileBaseName", //$NON-NLS-1$
@ -44,20 +56,20 @@ public class CdtMacroSupplier extends CoreMacroSupplierBase {
// "TargetArchList", //$NON-NLS-1$ // "TargetArchList", //$NON-NLS-1$
}; };
private static final String fWorkspaceMacros[] = new String[]{ private static final String fWorkspaceMacros[] = new String[] {
"WorkspaceDirPath", //$NON-NLS-1$ VAR_WORKSPACE_DIR_PATH,
"DirectoryDelimiter", //$NON-NLS-1$ VAR_DIRECTORY_DELIMITER,
"PathDelimiter", //$NON-NLS-1$ VAR_PATH_DELIMITER,
}; };
private static final String fCDTEclipseMacros[] = new String[]{ private static final String fCDTEclipseMacros[] = new String[] {
"EclipseVersion", //$NON-NLS-1$ VAR_ECLIPSE_VERSION,
"CDTVersion", //$NON-NLS-1$ VAR_CDT_VERSION,
// "MBSVersion", //$NON-NLS-1$ // "MBSVersion", //$NON-NLS-1$
"HostOsName", //$NON-NLS-1$ VAR_HOST_OS_NAME,
"HostArchName", //$NON-NLS-1$ VAR_HOST_ARCH_NAME,
"OsType", //$NON-NLS-1$ VAR_OS_TYPE,
"ArchType", //$NON-NLS-1$ VAR_ARCH_TYPE,
}; };
@ -195,16 +207,16 @@ public class CdtMacroSupplier extends CoreMacroSupplierBase {
public ICdtVariable getMacro(String macroName, ICConfigurationDescription cfg){ public ICdtVariable getMacro(String macroName, ICConfigurationDescription cfg){
ICdtVariable macro = null; ICdtVariable macro = null;
if("ConfigName".equals(macroName)){ //$NON-NLS-1$ if (VAR_CONFIG_NAME.equals(macroName)) {
macro = new CdtVariable(macroName,ICdtVariable.VALUE_TEXT,cfg.getName()); macro = new CdtVariable(macroName,ICdtVariable.VALUE_TEXT,cfg.getName());
} }
else if("ConfigDescription".equals(macroName)){ //$NON-NLS-1$ else if (VAR_CONFIG_DESCRIPTION.equals(macroName)) {
macro = new CdtVariable(macroName,ICdtVariable.VALUE_TEXT,cfg.getDescription()); macro = new CdtVariable(macroName,ICdtVariable.VALUE_TEXT,cfg.getDescription());
} else if("ProjName".equals(macroName)){ //$NON-NLS-1$ } else if (VAR_PROJ_NAME.equals(macroName)) {
IProject project = getProject(cfg); IProject project = getProject(cfg);
if(project != null) if(project != null)
macro = new CdtVariable(macroName,ICdtVariable.VALUE_TEXT,project.getName()); macro = new CdtVariable(macroName,ICdtVariable.VALUE_TEXT,project.getName());
} else if("ProjDirPath".equals(macroName)){ //$NON-NLS-1$ } else if (VAR_PROJ_DIR_PATH.equals(macroName)) {
IProject project = getProject(cfg); IProject project = getProject(cfg);
if(project != null && project.getLocation() != null) // in the EFS world getLocation() can return null if(project != null && project.getLocation() != null) // in the EFS world getLocation() can return null
macro = new CdtVariable(macroName,ICdtVariable.VALUE_TEXT,project.getLocation().toString()); macro = new CdtVariable(macroName,ICdtVariable.VALUE_TEXT,project.getLocation().toString());
@ -388,10 +400,10 @@ public class CdtMacroSupplier extends CoreMacroSupplierBase {
/* public IBuildMacro getMacro(String macroName, IManagedProject mngProj){ /* public IBuildMacro getMacro(String macroName, IManagedProject mngProj){
IBuildMacro macro = null; IBuildMacro macro = null;
if("ProjName".equals(macroName)){ //$NON-NLS-1$ if (VAR_PROJ_NAME.equals(macroName)) {
macro = new BuildMacro(macroName,IBuildMacro.VALUE_TEXT,mngProj.getOwner().getName()); macro = new BuildMacro(macroName,IBuildMacro.VALUE_TEXT,mngProj.getOwner().getName());
} }
else if("ProjDirPath".equals(macroName)){ //$NON-NLS-1$ else if (VAR_PROJ_DIR_PATH.equals(macroName)) {
macro = new BuildMacro(macroName,IBuildMacro.VALUE_PATH_DIR,mngProj.getOwner().getLocation().toOSString()); macro = new BuildMacro(macroName,IBuildMacro.VALUE_PATH_DIR,mngProj.getOwner().getLocation().toOSString());
} }
return macro; return macro;
@ -401,15 +413,15 @@ public class CdtMacroSupplier extends CoreMacroSupplierBase {
if(wsp == null) if(wsp == null)
wsp = ResourcesPlugin.getWorkspace(); wsp = ResourcesPlugin.getWorkspace();
ICdtVariable macro = null; ICdtVariable macro = null;
if("WorkspaceDirPath".equals(macroName)){ //$NON-NLS-1$ if (VAR_WORKSPACE_DIR_PATH.equals(macroName)) {
macro = new CdtVariable(macroName,ICdtVariable.VALUE_PATH_DIR,wsp.getRoot().getLocation().toOSString()); macro = new CdtVariable(macroName,ICdtVariable.VALUE_PATH_DIR,wsp.getRoot().getLocation().toOSString());
} else if("DirectoryDelimiter".equals(macroName)){ //$NON-NLS-1$ } else if (VAR_DIRECTORY_DELIMITER.equals(macroName)) {
if(isWin32()){ if(isWin32()){
macro = new CdtVariable(macroName,ICdtVariable.VALUE_TEXT,"\\"); //$NON-NLS-1$ macro = new CdtVariable(macroName,ICdtVariable.VALUE_TEXT,"\\"); //$NON-NLS-1$
} else { } else {
macro = new CdtVariable(macroName,ICdtVariable.VALUE_TEXT,"/"); //$NON-NLS-1$ macro = new CdtVariable(macroName,ICdtVariable.VALUE_TEXT,"/"); //$NON-NLS-1$
} }
} else if("PathDelimiter".equals(macroName)){ //$NON-NLS-1$ } else if (VAR_PATH_DELIMITER.equals(macroName)) {
if(isWin32()){ if(isWin32()){
macro = new CdtVariable(macroName,ICdtVariable.VALUE_TEXT,";"); //$NON-NLS-1$ macro = new CdtVariable(macroName,ICdtVariable.VALUE_TEXT,";"); //$NON-NLS-1$
} else { } else {
@ -428,14 +440,14 @@ public class CdtMacroSupplier extends CoreMacroSupplierBase {
public ICdtVariable getMacro(String macroName){ public ICdtVariable getMacro(String macroName){
ICdtVariable macro = null; ICdtVariable macro = null;
if("EclipseVersion".equals(macroName)){ //$NON-NLS-1$ if (VAR_ECLIPSE_VERSION.equals(macroName)) {
Bundle bundle = Platform.getBundle("org.eclipse.platform"); //$NON-NLS-1$ Bundle bundle = Platform.getBundle("org.eclipse.platform"); //$NON-NLS-1$
String version = bundle != null ? String version = bundle != null ?
(String)bundle.getHeaders().get(org.osgi.framework.Constants.BUNDLE_VERSION) : (String)bundle.getHeaders().get(org.osgi.framework.Constants.BUNDLE_VERSION) :
null; null;
macro = new CdtVariable(macroName,ICdtVariable.VALUE_TEXT,version); macro = new CdtVariable(macroName,ICdtVariable.VALUE_TEXT,version);
} }
else if("CDTVersion".equals(macroName)){ //$NON-NLS-1$ else if (VAR_CDT_VERSION.equals(macroName)) {
String version = CCorePlugin.getDefault().getBundle().getHeaders().get(org.osgi.framework.Constants.BUNDLE_VERSION); String version = CCorePlugin.getDefault().getBundle().getHeaders().get(org.osgi.framework.Constants.BUNDLE_VERSION);
macro = new CdtVariable(macroName,ICdtVariable.VALUE_TEXT,version); macro = new CdtVariable(macroName,ICdtVariable.VALUE_TEXT,version);
} }
@ -443,19 +455,19 @@ public class CdtMacroSupplier extends CoreMacroSupplierBase {
String version = ManagedBuildManager.getBuildInfoVersion().toString(); String version = ManagedBuildManager.getBuildInfoVersion().toString();
macro = new BuildMacro(macroName,IBuildMacro.VALUE_TEXT,version); macro = new BuildMacro(macroName,IBuildMacro.VALUE_TEXT,version);
}*/ }*/
else if("HostOsName".equals(macroName)){ //$NON-NLS-1$ else if (VAR_HOST_OS_NAME.equals(macroName)) {
String os = System.getProperty("os.name"); //$NON-NLS-1$ String os = System.getProperty("os.name"); //$NON-NLS-1$
macro = new CdtVariable(macroName,ICdtVariable.VALUE_TEXT,os); macro = new CdtVariable(macroName,ICdtVariable.VALUE_TEXT,os);
} }
else if("HostArchName".equals(macroName)){ //$NON-NLS-1$ else if (VAR_HOST_ARCH_NAME.equals(macroName)) {
String arch = System.getProperty("os.arch"); //$NON-NLS-1$ String arch = System.getProperty("os.arch"); //$NON-NLS-1$
macro = new CdtVariable(macroName,ICdtVariable.VALUE_TEXT,arch); macro = new CdtVariable(macroName,ICdtVariable.VALUE_TEXT,arch);
} }
else if("OsType".equals(macroName)){ //$NON-NLS-1$ else if (VAR_OS_TYPE.equals(macroName)) {
String os = Platform.getOS(); String os = Platform.getOS();
macro = new CdtVariable(macroName,ICdtVariable.VALUE_TEXT,os); macro = new CdtVariable(macroName,ICdtVariable.VALUE_TEXT,os);
} }
else if("ArchType".equals(macroName)){ //$NON-NLS-1$ else if (VAR_ARCH_TYPE.equals(macroName)) {
String arch = Platform.getOSArch(); String arch = Platform.getOSArch();
macro = new CdtVariable(macroName,ICdtVariable.VALUE_TEXT,arch); macro = new CdtVariable(macroName,ICdtVariable.VALUE_TEXT,arch);
} }

View file

@ -1,5 +1,5 @@
/******************************************************************************* /*******************************************************************************
* Copyright (c) 2005, 2009 Intel Corporation and others. * Copyright (c) 2005, 2013 Intel Corporation and others.
* All rights reserved. This program and the accompanying materials * All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0 * are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at * which accompanies this distribution, and is available at
@ -20,14 +20,42 @@ import java.util.regex.Pattern;
import org.eclipse.cdt.core.cdtvariables.CdtVariableException; import org.eclipse.cdt.core.cdtvariables.CdtVariableException;
import org.eclipse.cdt.core.cdtvariables.ICdtVariable; import org.eclipse.cdt.core.cdtvariables.ICdtVariable;
import org.eclipse.cdt.core.cdtvariables.ICdtVariableStatus; import org.eclipse.cdt.core.cdtvariables.ICdtVariableStatus;
import org.eclipse.cdt.internal.core.cdtvariables.CdtMacroSupplier;
/** /**
* Utility class to resolve macro references. Provides fixture to parse ${macro} * Utility class to resolve macro and variable references. Provides fixture to parse ${macro}
* expressions and replace macros with actual values using {@link IVariableSubstitutor}. * expressions and replace macros with actual values using {@link IVariableSubstitutor}.
* *
* @since 3.0 * @since 3.0
*/ */
public class CdtVariableResolver { public class CdtVariableResolver {
/** @since 5.5 */
public static final String VAR_CONFIG_NAME = CdtMacroSupplier.VAR_CONFIG_NAME;
/** @since 5.5 */
public static final String VAR_CONFIG_DESCRIPTION = CdtMacroSupplier.VAR_CONFIG_DESCRIPTION;
/** @since 5.5 */
public static final String VAR_PROJ_NAME = CdtMacroSupplier.VAR_PROJ_NAME;
/** @since 5.5 */
public static final String VAR_PROJ_DIR_PATH = CdtMacroSupplier.VAR_PROJ_DIR_PATH;
/** @since 5.5 */
public static final String VAR_WORKSPACE_DIR_PATH = CdtMacroSupplier.VAR_WORKSPACE_DIR_PATH;
/** @since 5.5 */
public static final String VAR_DIRECTORY_DELIMITER = CdtMacroSupplier.VAR_DIRECTORY_DELIMITER;
/** @since 5.5 */
public static final String VAR_PATH_DELIMITER = CdtMacroSupplier.VAR_PATH_DELIMITER;
/** @since 5.5 */
public static final String VAR_ECLIPSE_VERSION = CdtMacroSupplier.VAR_ECLIPSE_VERSION;
/** @since 5.5 */
public static final String VAR_CDT_VERSION = CdtMacroSupplier.VAR_CDT_VERSION;
/** @since 5.5 */
public static final String VAR_HOST_OS_NAME = CdtMacroSupplier.VAR_HOST_OS_NAME;
/** @since 5.5 */
public static final String VAR_HOST_ARCH_NAME = CdtMacroSupplier.VAR_HOST_ARCH_NAME;
/** @since 5.5 */
public static final String VAR_OS_TYPE = CdtMacroSupplier.VAR_OS_TYPE;
/** @since 5.5 */
public static final String VAR_ARCH_TYPE = CdtMacroSupplier.VAR_ARCH_TYPE;
private static final String EMPTY_STRING = ""; //$NON-NLS-1$ private static final String EMPTY_STRING = ""; //$NON-NLS-1$
public static final String VARIABLE_PREFIX = "${"; //$NON-NLS-1$ public static final String VARIABLE_PREFIX = "${"; //$NON-NLS-1$

View file

@ -27,6 +27,7 @@ import org.eclipse.cdt.core.settings.model.util.CDataUtil;
import org.eclipse.cdt.ui.CDTSharedImages; import org.eclipse.cdt.ui.CDTSharedImages;
import org.eclipse.cdt.ui.CUIPlugin; import org.eclipse.cdt.ui.CUIPlugin;
import org.eclipse.cdt.utils.UNCPathConverter; import org.eclipse.cdt.utils.UNCPathConverter;
import org.eclipse.cdt.utils.cdtvariables.CdtVariableResolver;
import org.eclipse.cdt.internal.ui.newui.Messages; import org.eclipse.cdt.internal.ui.newui.Messages;
@ -34,7 +35,8 @@ import org.eclipse.cdt.internal.ui.newui.Messages;
* Helper class to provide unified images for {@link ICLanguageSettingEntry}. * Helper class to provide unified images for {@link ICLanguageSettingEntry}.
*/ */
public class LanguageSettingsImages { public class LanguageSettingsImages {
private static final String PROJ_NAME_PREFIX = "/${ProjName}/"; //$NON-NLS-1$ // evaluates to "/${ProjName)/"
private static final String PROJ_NAME_PREFIX = '/' + CdtVariableResolver.createVariableReference(CdtVariableResolver.VAR_PROJ_NAME) + '/';
/** /**
* Check if the language settings entry should be presented as "project-relative" in UI. * Check if the language settings entry should be presented as "project-relative" in UI.