mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-21 07:55:24 +02:00
bug 402023: Provide programmatic access for names of CdtMacroSupplier variables ($ProjName, $ConfigName etc.)
This commit is contained in:
parent
75e17131c0
commit
2d5584fe98
6 changed files with 111 additions and 67 deletions
|
@ -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));
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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,14 +642,14 @@ 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);
|
||||||
}
|
}
|
||||||
|
@ -657,19 +657,19 @@ public class MbsMacroSupplier extends BuildCdtVariablesSupplierBase {
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 {
|
||||||
|
public static final String VAR_CONFIG_NAME = "ConfigName"; //$NON-NLS-1$
|
||||||
|
public static final String VAR_CONFIG_DESCRIPTION = "ConfigDescription"; //$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 CdtMacroSupplier fInstance;
|
private static CdtMacroSupplier fInstance;
|
||||||
public final static String DOT = "."; //$NON-NLS-1$
|
|
||||||
public final static String EMPTY_STRING = ""; //$NON-NLS-1$
|
|
||||||
|
|
||||||
private static final String fConfigurationMacros[] = new String[] {
|
private static final String fConfigurationMacros[] = new String[] {
|
||||||
"ConfigName", //$NON-NLS-1$
|
VAR_CONFIG_NAME,
|
||||||
"ConfigDescription", //$NON-NLS-1$
|
VAR_CONFIG_DESCRIPTION,
|
||||||
"ProjName", //$NON-NLS-1$
|
VAR_PROJ_NAME,
|
||||||
"ProjDirPath", //$NON-NLS-1$
|
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$
|
||||||
|
@ -45,19 +57,19 @@ public class CdtMacroSupplier extends CoreMacroSupplierBase {
|
||||||
};
|
};
|
||||||
|
|
||||||
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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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$
|
||||||
|
|
|
@ -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.
|
||||||
|
|
Loading…
Add table
Reference in a new issue