Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 225021 Details for
Bug 397116
Build project failed when module name in Fortran program is different from module's source file name (CS427 Fa12) [CQ Approved]
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Cumulative patch for bugs 397716 & 397117
ManagedBuild.patch (text/plain), 99.15 KB, created by
Ramesh Kolavenu
on 2012-12-22 18:42:08 EST
(
hide
)
Description:
Cumulative patch for bugs 397716 & 397117
Filename:
MIME Type:
Creator:
Ramesh Kolavenu
Created:
2012-12-22 18:42:08 EST
Size:
99.15 KB
patch
obsolete
>diff --git a/org.eclipse.photran.cdtinterface/.classpath b/org.eclipse.photran.cdtinterface/.classpath >index deb6736..c7ac339 100644 >--- a/org.eclipse.photran.cdtinterface/.classpath >+++ b/org.eclipse.photran.cdtinterface/.classpath >@@ -3,5 +3,7 @@ > <classpathentry kind="src" path="src"/> > <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> > <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> >+ <classpathentry combineaccessrules="false" kind="src" path="/org.eclipse.photran.core.vpg"/> >+ <classpathentry combineaccessrules="false" kind="src" path="/org.eclipse.rephraserengine.core"/> > <classpathentry kind="output" path="bin"/> > </classpath> >diff --git a/org.eclipse.photran.cdtinterface/META-INF/MANIFEST.MF b/org.eclipse.photran.cdtinterface/META-INF/MANIFEST.MF >index 0dbd7b1..89ff77d 100644 >--- a/org.eclipse.photran.cdtinterface/META-INF/MANIFEST.MF >+++ b/org.eclipse.photran.cdtinterface/META-INF/MANIFEST.MF >@@ -8,6 +8,10 @@ > Bundle-Vendor: %providerName > Bundle-Localization: plugin > Export-Package: org.eclipse.photran.cdtinterface.makegen, >+ org.eclipse.photran.cdtinterface.managebuilder, >+ org.eclipse.photran.cdtinterface.managebuilder.gnu, >+ org.eclipse.photran.cdtinterface.managebuilder.intel, >+ org.eclipse.photran.cdtinterface.managebuilder.xlf, > org.eclipse.photran.internal.cdtinterface;x-internal:=true, > org.eclipse.photran.internal.cdtinterface.core;x-friends:="org.eclipse.photran.ui", > org.eclipse.photran.internal.cdtinterface.dom;x-internal:=true, >@@ -41,6 +45,7 @@ > org.eclipse.ui.views, > org.eclipse.cdt.managedbuilder.core, > org.eclipse.ui.navigator.resources, >- org.eclipse.ui.navigator >+ org.eclipse.ui.navigator, >+ org.eclipse.photran.core.vpg;bundle-version="8.0.0" > Bundle-ActivationPolicy: lazy > Bundle-RequiredExecutionEnvironment: JavaSE-1.6 >diff --git a/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/cdtinterface/makegen/DefaultFortranDependencyCalculator.java b/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/cdtinterface/makegen/DefaultFortranDependencyCalculator.java >index f9912b8..da36815 100644 >--- a/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/cdtinterface/makegen/DefaultFortranDependencyCalculator.java >+++ b/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/cdtinterface/makegen/DefaultFortranDependencyCalculator.java >@@ -20,7 +20,9 @@ > import java.io.Reader; > import java.io.StreamTokenizer; > import java.util.ArrayList; >+import java.util.Arrays; > import java.util.Collection; >+import java.util.List; > > import org.eclipse.cdt.core.CCorePlugin; > import org.eclipse.cdt.managedbuilder.core.IConfiguration; >@@ -40,20 +42,24 @@ > import org.eclipse.core.runtime.Path; > import org.eclipse.core.runtime.content.IContentType; > import org.eclipse.photran.internal.cdtinterface.core.FortranLanguage; >+import org.eclipse.photran.internal.core.vpg.PhotranVPG; > > /** > * This class implements the Dependency Manager and Output Name Provider interfaces > * @author Unknown > * @author Timofey Yuvashev 2009 > * @author Jeff Overbey -- files were not being closed (Bug 334796) >- * >+ * @author Uchuva -- Use PhotranVPG to find dependencies for the given project >+ * (Managed Build project, Fall CS 427) >+ * Refactored: removed resources from getFileNameContainingModule >+ * function since Photran VPG does not need resources argument > * @since 8.0 > */ > @SuppressWarnings({ "deprecation", "rawtypes", "unchecked", "unused" }) > public class DefaultFortranDependencyCalculator implements IManagedDependencyGenerator, > IManagedOutputNameProvider > { >- public static final String MODULE_EXTENSION = "o"; //$NON-NLS-1$ >+ public static final String MODULE_EXTENSION = "o"; //$NON-NLS-1$ > > /* > * Return a list of the names of all modules used by a file >@@ -243,7 +249,7 @@ > // to generate .mod files in the directory from which the compiler is run. For MBS, this > // is the top-level build directory. > // TODO: Support the /module:path option and use that in determining the path of the module file >- IPath modName = getModulePath(topBuildDir, modules[im], res, project); >+ IPath modName = getModulePath(topBuildDir, modules[im], resourcesToSearch, project); > modRes.add(project.getFile(modName)); > foundDependency = true; > break; >@@ -280,7 +286,7 @@ > private IPath getModulePath(String topBuildDir, String moduleName, IResource[] resources, IProject project) > { > String fileNameContainingModule; >- fileNameContainingModule = getFileNameContainingModule(moduleName, resources, topBuildDir); >+ fileNameContainingModule = getFileNameContainingModule(resources, moduleName); > > //If we can't find any files with that module, remove Debug folder > if(fileNameContainingModule == null || fileNameContainingModule == "") //$NON-NLS-1$ >@@ -302,78 +308,45 @@ > } > > /* >- * This method operates under that assumption that >- * 1. There will be no 2 files that are named the same, even if they are in separate folder >- * 2. There is only 1 module per file >- * 3. There are no files that differ in their names only by upper or lower case letters (i.e. file1.f90 and fILe1.f90) >+ * This method finds the relative path to the filename that contains the >+ * name of the given module. It returns a string which is the relative >+ * path to the file containing the given module, with that >+ * file's extension chopped off. > * >- * This method finds the relative path to the filename that matches the name of the given module. It >- * searches the list of given @resources to compare the names of contained files. It returns a string which >- * is the relative path to the file supposedly containing the given module, with that file's extension chopped off. >- * >- * @moduleName - name of the module that we are comparing files against >- * @resources - list of resources that we look through (could be files and folders) >+ * @moduleName - name of the module that we are retrieving the filename > */ >- private String getFileNameContainingModule(String moduleName, IResource[] resources, String buildDirName) >+ @SuppressWarnings("restriction") >+ public String getFileNameContainingModule(IResource[] resources, String moduleName) > { >- ArrayList possibleMatchingFiles = new ArrayList(); >- if(resources == null || resources.length < 1 || >- moduleName == null || moduleName == "") //$NON-NLS-1$ >- { >- return null; >- } >- >- for(int i = 0; i < resources.length; i++) >- { >- if(resources[i] instanceof IFile) >- { >- IFile f = (IFile)resources[i]; >- >- //Gets rid of the file extension >- String fileName = f.getName().replaceFirst("\\..+", ""); //$NON-NLS-1$ //$NON-NLS-2$ >- >- //If a file name matches a module name exactly -- return the relative path to that file >- if(fileName == moduleName) >- return f.getProjectRelativePath().toString().replaceFirst("\\..+", ""); //$NON-NLS-1$ //$NON-NLS-2$ >- >- //Otherwise, check if the two names have different cases >- else if(fileName.equalsIgnoreCase(moduleName)) >- { >- //And if they do, keep it >- possibleMatchingFiles.add(f.getProjectRelativePath().toString().replaceFirst("\\..+", "")); //$NON-NLS-1$ //$NON-NLS-2$ >- } >- } >- //If its a folder, recurse, but don't look in other build folders (Bug 326333) >- else if(resources[i] instanceof IContainer && !resources[i].isDerived()) >- { >- IContainer folder = (IContainer)resources[i]; >- IResource[] subResource = null; >- >- //Skip build folder, because it contains files with the same >- // names as the one we are looking for (created .o files) >- if(folder.getName().equalsIgnoreCase(buildDirName)) >- continue; >- >- try >- { >- subResource = folder.members(); >- } >- catch (CoreException e) >- { >- throw new Error("Could not open a container to explore its files"); //$NON-NLS-1$ >- } >- >- String name = getFileNameContainingModule(moduleName, subResource, buildDirName); >- if(name != null) >- return name; >- } >- } >- if(possibleMatchingFiles.size() == 1) >- return (String) possibleMatchingFiles.get(0); >- >- return null; >- >+ if(resources == null || resources.length < 1 || >+ moduleName == null || moduleName == "") //$NON-NLS-1$ >+ { >+ return null; >+ } >+ List<IFile> fileList = PhotranVPG.getInstance().findFilesThatExportModule(moduleName); >+ >+ return getFilePathFromResources(resources, fileList); > } >+ >+ >+ /** >+ * Returns the file path of the file from file list that matches a >+ * resource. >+ * >+ * @param resources: list of resources within the project >+ * @param files: list of files >+ */ >+ private String getFilePathFromResources(IResource[] resources, List<IFile> files) >+ { >+ for(IFile file: files){ >+ for (IResource resource : resources){ >+ if (file.getProjectRelativePath().equals(resource.getProjectRelativePath())){ >+ return file.getProjectRelativePath().toString().replaceFirst("\\..+", ""); //$NON-NLS-1$ //$NON-NLS-2$ >+ } >+ } >+ } >+ return null; >+ } > > private void removeDir(File f) > { >@@ -395,7 +368,13 @@ > /* (non-Javadoc) > * @see org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderDependencyCalculator#findDependencies(org.eclipse.core.resources.IResource) > */ >- public IResource[] findDependencies(IResource resource, IProject project) { >+ @SuppressWarnings("restriction") >+ public IResource[] findDependencies(IResource resource, IProject project) { >+ boolean isRefactoringEnableForProject = PhotranVPG.getInstance().shouldProcessProject(project); >+ if(!isRefactoringEnableForProject){ >+ forcePhotranVPGUpdate(project, true); >+ } >+ > ArrayList dependencies = new ArrayList(); > Collection fortranContentTypes = new FortranLanguage().getRegisteredContentTypeIds(); > >@@ -431,10 +410,28 @@ > { > return new IResource[0]; > } >+ finally{ >+ if(!isRefactoringEnableForProject){ >+ PhotranVPG.getInstance().clearDatabase(); >+ forcePhotranVPGUpdate(project, false); >+ } >+ } > > return (IResource[]) dependencies.toArray(new IResource[dependencies.size()]); > } > >+ /** >+ * Force Photran VPG update and ensure the database is up-to-date >+ * >+ * @param project - Project to force VPG update on it >+ * @param forceUpdate - whether force update >+ */ >+ @SuppressWarnings("restriction") >+ private void forcePhotranVPGUpdate(IProject project, boolean forceUpdate){ >+ PhotranVPG.getInstance().setPropertyEnableVpg(project, forceUpdate); >+ PhotranVPG.getInstance().ensureVPGIsUpToDate(new NullProgressMonitor()); >+ } >+ > /* (non-Javadoc) > * @see org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderDependencyCalculator#getCalculatorType() > */ >diff --git a/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/cdtinterface/managebuilder/BaseManageBuilderToolChainSupported.java b/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/cdtinterface/managebuilder/BaseManageBuilderToolChainSupported.java >new file mode 100644 >index 0000000..7c436ef >--- /dev/null >+++ b/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/cdtinterface/managebuilder/BaseManageBuilderToolChainSupported.java >@@ -0,0 +1,69 @@ >+/** >+ * This class implements managed tool chain supported and outputs >+ * whether Os, Compiler and tool chain are supported >+ * @author Uchuva - Managed Build project, Fall CS 427 >+ */ >+package org.eclipse.photran.cdtinterface.managebuilder; >+ >+import java.util.Arrays; >+ >+import org.eclipse.cdt.managedbuilder.core.IManagedIsToolChainSupported; >+import org.eclipse.cdt.managedbuilder.core.IToolChain; >+import org.osgi.framework.Version; >+ >+public abstract class BaseManageBuilderToolChainSupported implements IManagedIsToolChainSupported >+{ >+ private IPlatformOS platformOs = new PlatformOS(); >+ private ISupportedCompiler supportedCompiler = new CompilerSupported(); >+ >+ /** >+ * Sets mocked OS for unit testing >+ * >+ * @param platformOs - Mock up OS to support testing. >+ */ >+ public void setPlatformOs(IPlatformOS platformOs) >+ { >+ this.platformOs = platformOs; >+ } >+ >+ /** >+ * Sets mocked compiler for unit testing >+ * >+ * @param supportedCompiler - Mock up compiler to support testing. >+ */ >+ public void setCompilerSupported(ISupportedCompiler supportedCompiler) >+ { >+ this.supportedCompiler = supportedCompiler; >+ } >+ >+ /** >+ * @return <code>true</code> if the given tool-chain is supported on the system >+ * otherwise returns <code>false</code> >+ * >+ */ >+ public boolean isSupported(IToolChain toolChain, Version version, String instance) >+ { >+ return isOsSupported(toolChain) && isCompilerSupported(); >+ } >+ >+ protected abstract boolean isCompilerSupported(); >+ >+ /** >+ * @return <code>true</code> if the given OS in the tool-chain is supported on >+ * the system otherwise returns <code>false</code> >+ * >+ */ >+ private boolean isOsSupported(IToolChain toolChain) >+ { >+ return Arrays.asList(toolChain.getOSList()).contains(platformOs.getOS()); >+ } >+ >+ /** >+ * @return <code>true</code> if the given compiler executable and version is >+ * supported on the system otherwise returns <code>false</code> >+ * >+ */ >+ protected boolean isCompilerSupported(String compilerExecutable, String versionFlag){ >+ return this.supportedCompiler.isSupported(compilerExecutable, versionFlag); >+ } >+} >diff --git a/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/cdtinterface/managebuilder/CompilerSupported.java b/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/cdtinterface/managebuilder/CompilerSupported.java >new file mode 100644 >index 0000000..fc71dfb >--- /dev/null >+++ b/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/cdtinterface/managebuilder/CompilerSupported.java >@@ -0,0 +1,46 @@ >+/** >+ * This class implements supported compiler and outputs whether given compiler >+ * is supported on the system. >+ * @author Uchuva - Managed Build project, Fall CS 427 >+ */ >+package org.eclipse.photran.cdtinterface.managebuilder; >+ >+import java.io.BufferedReader; >+import java.io.InputStreamReader; >+ >+ >+public class CompilerSupported implements ISupportedCompiler >+{ >+ >+ /** >+ * @return <code>true</code> if the given compiler is supported on the system >+ * otherwise returns <code>false</code> >+ * >+ */ >+ @Override >+ public boolean isSupported(String compilerExecutable, String versionFlag) >+ { >+ if(compilerExecutable == null || compilerExecutable == "") //$NON-NLS-1$ >+ throw new IllegalArgumentException("Invalid compilerExecutable argument"); //$NON-NLS-1$ >+ if(versionFlag == null || versionFlag == "") //$NON-NLS-1$ >+ throw new IllegalArgumentException("Invalid versionFlag argument"); //$NON-NLS-1$ >+ >+ String[] command = new String[] {compilerExecutable, versionFlag}; >+ >+ Process runCompilerCommand = null; >+ boolean compilerSupported = false; >+ try { >+ runCompilerCommand = Runtime.getRuntime().exec(command); >+ new BufferedReader(new InputStreamReader( >+ runCompilerCommand.getInputStream())); >+ compilerSupported = true; >+ } catch (Exception e) { >+ System.out.println("Compiler doesn't exist " + e.getMessage()); //$NON-NLS-1$ >+ } >+ finally{ >+ if(runCompilerCommand != null) >+ runCompilerCommand.destroy(); >+ } >+ return compilerSupported; >+ } >+} >diff --git a/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/cdtinterface/managebuilder/IPlatformOS.java b/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/cdtinterface/managebuilder/IPlatformOS.java >new file mode 100644 >index 0000000..9dfdbe3 >--- /dev/null >+++ b/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/cdtinterface/managebuilder/IPlatformOS.java >@@ -0,0 +1,10 @@ >+/** >+ * Interface to implement supported platform OS. >+ * @author Uchuva - Managed Build project, Fall CS 427 >+ */ >+package org.eclipse.photran.cdtinterface.managebuilder; >+ >+public interface IPlatformOS >+{ >+ String getOS(); >+} >diff --git a/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/cdtinterface/managebuilder/ISupportedCompiler.java b/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/cdtinterface/managebuilder/ISupportedCompiler.java >new file mode 100644 >index 0000000..03387ac >--- /dev/null >+++ b/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/cdtinterface/managebuilder/ISupportedCompiler.java >@@ -0,0 +1,10 @@ >+/** >+ * Interface to implement supported compiler. >+ * @author Uchuva - Managed Build project, Fall CS 427 >+ */ >+package org.eclipse.photran.cdtinterface.managebuilder; >+ >+public interface ISupportedCompiler >+{ >+ public boolean isSupported(String compilerExecutable, String versionFlag); >+} >diff --git a/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/cdtinterface/managebuilder/PlatformOS.java b/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/cdtinterface/managebuilder/PlatformOS.java >new file mode 100644 >index 0000000..2726271 >--- /dev/null >+++ b/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/cdtinterface/managebuilder/PlatformOS.java >@@ -0,0 +1,20 @@ >+/** >+ * This class implements platform OS and outputs >+ * Os, used only for unit testing to mock different >+ * operating systems. >+ * @author Uchuva - Managed Build project, Fall CS 427 >+ */ >+package org.eclipse.photran.cdtinterface.managebuilder; >+ >+import org.eclipse.core.runtime.Platform; >+ >+public class PlatformOS implements IPlatformOS >+{ >+ >+ @Override >+ public String getOS() >+ { >+ return Platform.getOS(); >+ } >+ >+} >diff --git a/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/cdtinterface/managebuilder/gnu/IsGnuToolChainSupported.java b/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/cdtinterface/managebuilder/gnu/IsGnuToolChainSupported.java >new file mode 100644 >index 0000000..832f7de >--- /dev/null >+++ b/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/cdtinterface/managebuilder/gnu/IsGnuToolChainSupported.java >@@ -0,0 +1,25 @@ >+/** >+ * This class extends managed tool chain supported and outputs >+ * whether Gnu fortran compiler is supported on the system. >+ * @author Uchuva - Managed Build project, Fall CS 427 >+ */ >+package org.eclipse.photran.cdtinterface.managebuilder.gnu; >+ >+import org.eclipse.photran.cdtinterface.managebuilder.BaseManageBuilderToolChainSupported; >+ >+public class IsGnuToolChainSupported extends BaseManageBuilderToolChainSupported >+{ >+ private static final String COMPILER_EXECUTABLE = "gfortran"; //$NON-NLS-1$ >+ private static final String VERSION_FLAG = "-dumpversion"; //$NON-NLS-1$ >+ >+ /** >+ * @return <code>true</code> if the gnu fortran compiler is supported on the system >+ * otherwise returns <code>false</code> >+ * >+ */ >+ @Override >+ protected boolean isCompilerSupported() >+ { >+ return isCompilerSupported(COMPILER_EXECUTABLE,VERSION_FLAG); >+ } >+} >\ No newline at end of file >diff --git a/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/cdtinterface/managebuilder/intel/IsIntelToolChainSupported.java b/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/cdtinterface/managebuilder/intel/IsIntelToolChainSupported.java >new file mode 100644 >index 0000000..cf8494e >--- /dev/null >+++ b/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/cdtinterface/managebuilder/intel/IsIntelToolChainSupported.java >@@ -0,0 +1,24 @@ >+/** >+ * This class extends managed tool chain supported and outputs >+ * whether Intel fortran compiler is supported on the system. >+ * @author Uchuva - Managed Build project, Fall CS 427 >+ */ >+package org.eclipse.photran.cdtinterface.managebuilder.intel; >+ >+import org.eclipse.photran.cdtinterface.managebuilder.BaseManageBuilderToolChainSupported; >+ >+public class IsIntelToolChainSupported extends BaseManageBuilderToolChainSupported >+{ >+ private static final String COMPILER_EXECUTABLE = "ifort"; //$NON-NLS-1$ >+ private static final String VERSION_FLAG = "-version"; //$NON-NLS-1$ >+ /** >+ * @return <code>true</code> if the intel fortran compiler is supported on the system >+ * otherwise returns <code>false</code> >+ * >+ */ >+ @Override >+ protected boolean isCompilerSupported() >+ { >+ return isCompilerSupported(COMPILER_EXECUTABLE, VERSION_FLAG); >+ } >+} >diff --git a/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/cdtinterface/managebuilder/xlf/IsXlfToolChainSupported.java b/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/cdtinterface/managebuilder/xlf/IsXlfToolChainSupported.java >new file mode 100644 >index 0000000..4936222 >--- /dev/null >+++ b/org.eclipse.photran.cdtinterface/src/org/eclipse/photran/cdtinterface/managebuilder/xlf/IsXlfToolChainSupported.java >@@ -0,0 +1,25 @@ >+/** >+ * This class extends managed tool chain supported and outputs >+ * whether Xlf fortran compiler is supported on the system. >+ * @author Uchuva - Managed Build project, Fall CS 427 >+ */ >+package org.eclipse.photran.cdtinterface.managebuilder.xlf; >+ >+import org.eclipse.photran.cdtinterface.managebuilder.BaseManageBuilderToolChainSupported; >+ >+public class IsXlfToolChainSupported extends BaseManageBuilderToolChainSupported >+{ >+ private static final String COMPILER_EXECUTABLE = "xlf"; //$NON-NLS-1$ >+ private static final String VERSION_FLAG = "-qversion"; //$NON-NLS-1$ >+ >+ /** >+ * @return <code>true</code> if the Xlf fortran compiler is supported on the system >+ * otherwise returns <code>false</code> >+ * >+ */ >+ @Override >+ protected boolean isCompilerSupported() >+ { >+ return isCompilerSupported(COMPILER_EXECUTABLE, VERSION_FLAG); >+ } >+} >diff --git a/org.eclipse.photran.core.vpg.tests/.classpath b/org.eclipse.photran.core.vpg.tests/.classpath >index deb6736..577c0b4 100644 >--- a/org.eclipse.photran.core.vpg.tests/.classpath >+++ b/org.eclipse.photran.core.vpg.tests/.classpath >@@ -3,5 +3,6 @@ > <classpathentry kind="src" path="src"/> > <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> > <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/> >+ <classpathentry combineaccessrules="false" kind="src" path="/org.eclipse.photran.cdtinterface"/> > <classpathentry kind="output" path="bin"/> > </classpath> >diff --git a/org.eclipse.photran.core.vpg.tests/META-INF/MANIFEST.MF b/org.eclipse.photran.core.vpg.tests/META-INF/MANIFEST.MF >index acf04b4..777e8ee 100644 >--- a/org.eclipse.photran.core.vpg.tests/META-INF/MANIFEST.MF >+++ b/org.eclipse.photran.core.vpg.tests/META-INF/MANIFEST.MF >@@ -17,7 +17,9 @@ > org.eclipse.rephraserengine.core, > org.eclipse.rephraserengine.testing.junit3, > org.eclipse.rephraserengine.ui, >- org.eclipse.photran.core >+ org.eclipse.photran.core, >+ org.eclipse.photran.cdtinterface;bundle-version="8.0.0", >+ org.eclipse.cdt.managedbuilder.core;bundle-version="8.1.0" > Bundle-ActivationPolicy: lazy > Bundle-Activator: org.eclipse.photran.internal.tests.Activator > Export-Package: org.eclipse.photran.internal.tests;x-friends:="org.eclipse.photran.core.vpg.tests.failing,org.eclipse.photran.core.vpg.preprocessor.c.tests", >diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/tests/PhotranWorkspaceTestCase.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/tests/PhotranWorkspaceTestCase.java >index 4afdd79..3518bae 100644 >--- a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/tests/PhotranWorkspaceTestCase.java >+++ b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/tests/PhotranWorkspaceTestCase.java >@@ -25,12 +25,23 @@ > import java.net.URISyntaxException; > import java.net.URL; > import java.util.ArrayList; >+import java.util.Arrays; > import java.util.HashMap; >+import java.util.List; > > import org.eclipse.cdt.core.CCorePlugin; > import org.eclipse.cdt.core.dom.IPDOMManager; >+import org.eclipse.cdt.core.model.CoreModel; > import org.eclipse.cdt.core.model.ICProject; >+import org.eclipse.cdt.core.settings.model.CIncludePathEntry; >+import org.eclipse.cdt.core.settings.model.ICConfigurationDescription; >+import org.eclipse.cdt.core.settings.model.ICFolderDescription; >+import org.eclipse.cdt.core.settings.model.ICLanguageSetting; >+import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry; >+import org.eclipse.cdt.core.settings.model.ICProjectDescription; >+import org.eclipse.cdt.core.settings.model.ICSettingEntry; > import org.eclipse.core.resources.IFile; >+import org.eclipse.core.resources.IFolder; > import org.eclipse.core.resources.IProject; > import org.eclipse.core.resources.IResource; > import org.eclipse.core.resources.IWorkspace; >@@ -60,6 +71,8 @@ > * @author Jeff Overbey - Modified so that every test case creates a new project - Added line/column > * computation when importing files - Added {@link #compileAndRunFortranProgram(String...)} > * Also added marker infrastructure. >+ * @author Uchuva - Modified to create test sub directories to avoid overwriting test file contents >+ * when file names are identical in sub directories. > */ > public abstract class PhotranWorkspaceTestCase extends PhotranTestCase { > >@@ -169,8 +182,21 @@ > PhotranVPG.getInstance().clearDatabase(); > } > project = null; >- } >+ } > >+ // import file with test directory >+ protected IFile importFile(String testSrcDir, String fileName, String contents) throws Exception >+ { >+ if(testSrcDir != null && testSrcDir != "") >+ { >+ IFolder folder = project.getProject().getFolder(testSrcDir); >+ if(!folder.exists()) >+ folder.create(true, false, monitor); >+ fileName = "/" + testSrcDir + "/" + fileName; >+ } >+ return importFile(fileName, contents); >+ } >+ > protected IFile importFile(String fileName, String contents) throws Exception > { > //Obtain file handle >@@ -282,6 +308,14 @@ > return result; > } > >+ protected IFile importFile(Plugin activator, String srcDir, String filename, String testSrcDir) throws Exception >+ { >+ //project.getProject().getFile(filename).delete(true, new NullProgressMonitor()); >+ IFile result = importFile(testSrcDir, filename, readTestFile(activator, srcDir, filename)); >+ //project.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor()); >+ return result; >+ } >+ > protected String readTestFile(Plugin activator, String srcDir, String filename) throws IOException, URISyntaxException > { > ArrayList<Integer> lineMap = new ArrayList<Integer>(50); >diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/tests/managed/build/IsToolChainSupportedTest.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/tests/managed/build/IsToolChainSupportedTest.java >new file mode 100644 >index 0000000..500467f >--- /dev/null >+++ b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/tests/managed/build/IsToolChainSupportedTest.java >@@ -0,0 +1,189 @@ >+/** >+ * Unit test class for testing supported platform OS and compilers for a given >+ * project type and tool chain in new fortran project wizard. >+ * >+ * @author Uchuva -- Use PhotranVPG to find dependencies for the given project >+ * (Managed Build project, Fall CS 427) >+ */ >+package org.eclipse.photran.internal.tests.managed.build; >+ >+import org.eclipse.cdt.managedbuilder.core.IToolChain; >+import org.eclipse.photran.cdtinterface.managebuilder.BaseManageBuilderToolChainSupported; >+import org.eclipse.photran.cdtinterface.managebuilder.CompilerSupported; >+import org.eclipse.photran.cdtinterface.managebuilder.gnu.IsGnuToolChainSupported; >+import org.eclipse.photran.cdtinterface.managebuilder.intel.IsIntelToolChainSupported; >+import org.eclipse.photran.cdtinterface.managebuilder.xlf.IsXlfToolChainSupported; >+import org.eclipse.photran.internal.tests.PhotranWorkspaceTestCase; >+ >+public class IsToolChainSupportedTest extends PhotranWorkspaceTestCase >+{ >+ //Test win32 and gnu fortran compiler are supported, other OSes are unsupported. >+ public void testOsWindowsAndGnuIsSupported() throws Exception >+ { >+ BaseManageBuilderToolChainSupported toolChainSupported = new IsGnuToolChainSupported(); >+ osAndAndCompilerIsSupported(toolChainSupported,"win32", new String[] {"solaris", "linux", "hpux", "aix", "qnx", "macosx"}, "gfortran", "-dumpversion"); >+ } >+ >+ //Test macosx and gnu fortran compiler are supported, other OSes are unsupported. >+ public void testOsMacOsXAndGnuIsSupported() throws Exception >+ { >+ BaseManageBuilderToolChainSupported toolChainSupported = new IsGnuToolChainSupported(); >+ osAndAndCompilerIsSupported(toolChainSupported,"macosx", new String[] {"solaris", "linux", "hpux", "aix", "qnx", "win32"}, "gfortran", "-dumpversion"); >+ } >+ >+ //Test linux and gnu fortran compiler are supported, other OSes are unsupported. >+ public void testOsLinuxAndGnuIsSupported() throws Exception >+ { >+ BaseManageBuilderToolChainSupported toolChainSupported = new IsGnuToolChainSupported(); >+ osAndAndCompilerIsSupported(toolChainSupported, "linux", new String[] {"win32", "macosx"}, "gfortran", "-dumpversion"); >+ } >+ >+ //Test win32 and intel fortran compiler are supported, other OSes are unsupported. >+ public void testOsWindowsAndIntelIsSupported() throws Exception >+ { >+ BaseManageBuilderToolChainSupported toolChainSupported = new IsIntelToolChainSupported(); >+ osAndAndCompilerIsSupported(toolChainSupported, "win32", new String[] {"solaris", "linux", "hpux", "aix", "qnx", "macosx"}, "ifort", "-version"); >+ } >+ >+ //Test macosx and intel fortran compiler are supported, other OSes are unsupported. >+ public void testOsMacOsXAndIntelIsSupported() throws Exception >+ { >+ BaseManageBuilderToolChainSupported toolChainSupported = new IsIntelToolChainSupported(); >+ osAndAndCompilerIsSupported(toolChainSupported, "macosx", new String[] {"solaris", "linux", "hpux", "aix", "qnx", "win32"}, "ifort", "-version"); >+ } >+ >+ //Test linux and intel fortran compiler are supported, other OSes are unsupported. >+ public void testOsLinuxAndAndIntelIsSupported() throws Exception >+ { >+ BaseManageBuilderToolChainSupported toolChainSupported = new IsIntelToolChainSupported(); >+ osAndAndCompilerIsSupported(toolChainSupported, "linux", new String[] {"win32", "macosx"}, "ifort", "-version"); >+ } >+ >+ //Test win32 and xlf fortran compiler are supported, other OSes are unsupported. >+ public void testOsWindowsAndXlfIsSupported() throws Exception >+ { >+ BaseManageBuilderToolChainSupported toolChainSupported = new IsXlfToolChainSupported(); >+ osAndAndCompilerIsSupported(toolChainSupported, "win32", new String[] {"solaris", "linux", "hpux", "aix", "qnx", "macosx"}, "xlf", "-qversion"); >+ } >+ >+ //Test macosx and xlf fortran compiler are supported, other OSes are unsupported. >+ public void testOsMacOsXAndXlfIsSupported() throws Exception >+ { >+ BaseManageBuilderToolChainSupported toolChainSupported = new IsXlfToolChainSupported(); >+ osAndAndCompilerIsSupported(toolChainSupported,"macosx", new String[] {"solaris", "linux", "hpux", "aix", "qnx", "win32"}, "xlf", "-qversion"); >+ } >+ >+ //Test linux and xlf fortran compiler are supported, other OSes are unsupported. >+ public void testOsLinuxAndAndXlfIsSupported() throws Exception >+ { >+ BaseManageBuilderToolChainSupported toolChainSupported = new IsXlfToolChainSupported(); >+ osAndAndCompilerIsSupported(toolChainSupported, "linux", new String[] {"win32", "macosx"}, "xlf", "-qversion"); >+ } >+ >+ //Test input validation for empty compiler executable >+ public void testEmptyCompilerExecutable() throws Exception >+ { >+ try >+ { >+ CompilerSupported compilerSupported = new CompilerSupported(); >+ compilerSupported.isSupported("", "-qversion"); >+ } >+ catch(IllegalArgumentException e) >+ { >+ return; >+ } >+ fail("testEmptyCompilerExecutable failed to throw exception"); >+ } >+ >+ //Test input validation for null compiler executable >+ public void testNullCompilerExecutable() throws Exception >+ { >+ try >+ { >+ CompilerSupported compilerSupported = new CompilerSupported(); >+ compilerSupported.isSupported(null, "-qversion"); >+ } >+ catch(IllegalArgumentException e) >+ { >+ return; >+ } >+ fail("testNullCompilerExecutable failed to throw exception"); >+ } >+ >+ //Test input validation for empty version flag >+ public void testEmptyCompilerFlag() throws Exception >+ { >+ try >+ { >+ CompilerSupported compilerSupported = new CompilerSupported(); >+ compilerSupported.isSupported("xlf", ""); >+ } >+ catch(IllegalArgumentException e) >+ { >+ return; >+ } >+ fail("testEmptyCompilerFlag failed to throw exception"); >+ } >+ >+ //Test input validation for null version flag >+ public void testNullCompilerFlag() throws Exception >+ { >+ try >+ { >+ CompilerSupported compilerSupported = new CompilerSupported(); >+ compilerSupported.isSupported("xlf", null); >+ } >+ catch(IllegalArgumentException e) >+ { >+ return; >+ } >+ fail("testNullCompilerFlag failed to throw exception"); >+ } >+ >+ //Test catch block with invalid executable >+ public void testInvalidCompilerCommand() throws Exception >+ { >+ CompilerSupported compilerSupported = new CompilerSupported(); >+ assertFalse(compilerSupported.isSupported("invalidCompiler", "-version")); >+ } >+ >+ >+ //Test at least one OS and one fortran compiler is supported >+ public void testOneOsAndOneCompilerIsSupported() throws Exception >+ { >+ boolean hasAtLeastOneToolChainSupport = false; >+ >+ IToolChain supportedOs = new MockToolChain(); >+ supportedOs.setOSList(new String[] {"win32","macosx","solaris", "linux", "hpux", "aix", "qnx"}); >+ >+ BaseManageBuilderToolChainSupported toolChainSupported = new IsGnuToolChainSupported(); >+ >+ hasAtLeastOneToolChainSupport = toolChainSupported.isSupported(supportedOs, null, null); >+ >+ if (!hasAtLeastOneToolChainSupport) { >+ toolChainSupported = new IsIntelToolChainSupported(); >+ hasAtLeastOneToolChainSupport = toolChainSupported.isSupported(supportedOs, null, null); >+ } >+ >+ if (!hasAtLeastOneToolChainSupport) { >+ toolChainSupported = new IsXlfToolChainSupported(); >+ hasAtLeastOneToolChainSupport = toolChainSupported.isSupported(supportedOs, null, null); >+ } >+ >+ assertTrue(hasAtLeastOneToolChainSupport); >+ } >+ >+ // Helper function to set mock tool chain and test whether OS and compiler are supported. >+ private void osAndAndCompilerIsSupported(BaseManageBuilderToolChainSupported toolChainSupported, String supportedOsString, String[] unsupportedOsString, String compiler, String versionFlag) >+ { >+ toolChainSupported.setPlatformOs(new MockPlatformOS(supportedOsString)); >+ toolChainSupported.setCompilerSupported(new MockSupportedCompiler(compiler, versionFlag)); >+ IToolChain supportedOs = new MockToolChain(); >+ supportedOs.setOSList(new String[] {supportedOsString}); >+ assertTrue(toolChainSupported.isSupported(supportedOs, null, null)); >+ IToolChain unsupportedOs = new MockToolChain(); >+ unsupportedOs.setOSList(unsupportedOsString); >+ assertFalse(toolChainSupported.isSupported(unsupportedOs, null, null)); >+ } >+ >+} >diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/tests/managed/build/MockPlatformOS.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/tests/managed/build/MockPlatformOS.java >new file mode 100644 >index 0000000..b3a8ecf >--- /dev/null >+++ b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/tests/managed/build/MockPlatformOS.java >@@ -0,0 +1,24 @@ >+/** >+ * This class implements platform OS supported and outputs mocked OS. >+ * @author Uchuva - Managed Build project, Fall CS 427 >+ */ >+package org.eclipse.photran.internal.tests.managed.build; >+ >+import org.eclipse.photran.cdtinterface.managebuilder.IPlatformOS; >+ >+public class MockPlatformOS implements IPlatformOS >+{ >+ private String os; >+ >+ public MockPlatformOS(String os) >+ { >+ this.os = os; >+ } >+ >+ @Override >+ public String getOS() >+ { >+ return os; >+ } >+ >+} >diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/tests/managed/build/MockSupportedCompiler.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/tests/managed/build/MockSupportedCompiler.java >new file mode 100644 >index 0000000..b676bfb >--- /dev/null >+++ b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/tests/managed/build/MockSupportedCompiler.java >@@ -0,0 +1,26 @@ >+/** >+ * This class implements supported compiler and outputs result >+ * based on mocked compiler executable and version flag. >+ * @author Uchuva - Managed Build project, Fall CS 427 >+ */ >+ >+package org.eclipse.photran.internal.tests.managed.build; >+ >+import org.eclipse.photran.cdtinterface.managebuilder.ISupportedCompiler; >+ >+ >+public class MockSupportedCompiler implements ISupportedCompiler >+{ >+ private String compilerExecutable; >+ private String versionFlag; >+ public MockSupportedCompiler(String compilerExecutable, String versionFlag){ >+ this.compilerExecutable = compilerExecutable; >+ this.versionFlag = versionFlag; >+ } >+ >+ @Override >+ public boolean isSupported(String compilerExecutable, String versionFlag) >+ { >+ return this.compilerExecutable.equals(compilerExecutable) && this.versionFlag.equals(versionFlag); >+ } >+} >diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/tests/managed/build/MockToolChain.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/tests/managed/build/MockToolChain.java >new file mode 100644 >index 0000000..f2c3b5f >--- /dev/null >+++ b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/tests/managed/build/MockToolChain.java >@@ -0,0 +1,702 @@ >+/** >+ * This class implements tool chain and outputs mocked tool chain. >+ * @author Uchuva - Managed Build project, Fall CS 427 >+ */ >+ >+package org.eclipse.photran.internal.tests.managed.build; >+ >+import org.eclipse.cdt.core.settings.model.extension.CTargetPlatformData; >+import org.eclipse.cdt.managedbuilder.core.BuildException; >+import org.eclipse.cdt.managedbuilder.core.IBuilder; >+import org.eclipse.cdt.managedbuilder.core.IConfiguration; >+import org.eclipse.cdt.managedbuilder.core.IFolderInfo; >+import org.eclipse.cdt.managedbuilder.core.IHoldsOptions; >+import org.eclipse.cdt.managedbuilder.core.IOption; >+import org.eclipse.cdt.managedbuilder.core.IOptionCategory; >+import org.eclipse.cdt.managedbuilder.core.IOptionPathConverter; >+import org.eclipse.cdt.managedbuilder.core.IOutputType; >+import org.eclipse.cdt.managedbuilder.core.ITargetPlatform; >+import org.eclipse.cdt.managedbuilder.core.ITool; >+import org.eclipse.cdt.managedbuilder.core.IToolChain; >+import org.eclipse.cdt.managedbuilder.envvar.IConfigurationEnvironmentVariableSupplier; >+import org.eclipse.cdt.managedbuilder.macros.IConfigurationBuildMacroSupplier; >+import org.osgi.framework.Version; >+ >+public class MockToolChain implements IToolChain >+{ >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IBuildObject#getId() >+ */ >+ @Override >+ public String getId() >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IBuildObject#getName() >+ */ >+ @Override >+ public String getName() >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IBuildObject#getBaseId() >+ */ >+ @Override >+ public String getBaseId() >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IBuildObject#getVersion() >+ */ >+ @Override >+ public Version getVersion() >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IBuildObject#setVersion(org.osgi.framework.Version) >+ */ >+ @Override >+ public void setVersion(Version version) >+ { >+ // TODO Auto-generated method stub >+ >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IBuildObject#getManagedBuildRevision() >+ */ >+ @Override >+ public String getManagedBuildRevision() >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IHoldsOptions#createOption(org.eclipse.cdt.managedbuilder.core.IOption, java.lang.String, java.lang.String, boolean) >+ */ >+ @Override >+ public IOption createOption(IOption superClass, String Id, String name, >+ boolean isExtensionElement) >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IHoldsOptions#removeOption(org.eclipse.cdt.managedbuilder.core.IOption) >+ */ >+ @Override >+ public void removeOption(IOption option) >+ { >+ // TODO Auto-generated method stub >+ >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IHoldsOptions#getOption(java.lang.String) >+ */ >+ @Override >+ @Deprecated >+ public IOption getOption(String id) >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IHoldsOptions#getOptionById(java.lang.String) >+ */ >+ @Override >+ public IOption getOptionById(String id) >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IHoldsOptions#getOptionBySuperClassId(java.lang.String) >+ */ >+ @Override >+ public IOption getOptionBySuperClassId(String id) >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IHoldsOptions#getOptions() >+ */ >+ @Override >+ public IOption[] getOptions() >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IHoldsOptions#getChildCategories() >+ */ >+ @Override >+ public IOptionCategory[] getChildCategories() >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IHoldsOptions#addOptionCategory(org.eclipse.cdt.managedbuilder.core.IOptionCategory) >+ */ >+ @Override >+ public void addOptionCategory(IOptionCategory category) >+ { >+ // TODO Auto-generated method stub >+ >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IHoldsOptions#getOptionCategory(java.lang.String) >+ */ >+ @Override >+ public IOptionCategory getOptionCategory(String id) >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IHoldsOptions#createOptions(org.eclipse.cdt.managedbuilder.core.IHoldsOptions) >+ */ >+ @Override >+ public void createOptions(IHoldsOptions superClass) >+ { >+ // TODO Auto-generated method stub >+ >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IHoldsOptions#getOptionToSet(org.eclipse.cdt.managedbuilder.core.IOption, boolean) >+ */ >+ @Override >+ public IOption getOptionToSet(IOption option, boolean adjustExtension) throws BuildException >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IHoldsOptions#needsRebuild() >+ */ >+ @Override >+ public boolean needsRebuild() >+ { >+ // TODO Auto-generated method stub >+ return false; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IHoldsOptions#setRebuildState(boolean) >+ */ >+ @Override >+ public void setRebuildState(boolean rebuild) >+ { >+ // TODO Auto-generated method stub >+ >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#getParent() >+ */ >+ @Override >+ public IConfiguration getParent() >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#createTargetPlatform(org.eclipse.cdt.managedbuilder.core.ITargetPlatform, java.lang.String, java.lang.String, boolean) >+ */ >+ @Override >+ public ITargetPlatform createTargetPlatform(ITargetPlatform superClass, String Id, String name, >+ boolean isExtensionElement) >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#getTargetPlatform() >+ */ >+ @Override >+ public ITargetPlatform getTargetPlatform() >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#removeLocalTargetPlatform() >+ */ >+ @Override >+ public void removeLocalTargetPlatform() >+ { >+ // TODO Auto-generated method stub >+ >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#getVersionsSupported() >+ */ >+ @Override >+ public String getVersionsSupported() >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#getConvertToId() >+ */ >+ @Override >+ public String getConvertToId() >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#setVersionsSupported(java.lang.String) >+ */ >+ @Override >+ public void setVersionsSupported(String versionsSupported) >+ { >+ // TODO Auto-generated method stub >+ >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#setConvertToId(java.lang.String) >+ */ >+ @Override >+ public void setConvertToId(String convertToId) >+ { >+ // TODO Auto-generated method stub >+ >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#createBuilder(org.eclipse.cdt.managedbuilder.core.IBuilder, java.lang.String, java.lang.String, boolean) >+ */ >+ @Override >+ public IBuilder createBuilder(IBuilder superClass, String Id, String name, >+ boolean isExtensionElement) >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#removeLocalBuilder() >+ */ >+ @Override >+ public void removeLocalBuilder() >+ { >+ // TODO Auto-generated method stub >+ >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#getBuilder() >+ */ >+ @Override >+ public IBuilder getBuilder() >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#createTool(org.eclipse.cdt.managedbuilder.core.ITool, java.lang.String, java.lang.String, boolean) >+ */ >+ @Override >+ public ITool createTool(ITool superClass, String Id, String name, boolean isExtensionElement) >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#getTools() >+ */ >+ @Override >+ public ITool[] getTools() >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#getTool(java.lang.String) >+ */ >+ @Override >+ public ITool getTool(String id) >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#getToolsBySuperClassId(java.lang.String) >+ */ >+ @Override >+ public ITool[] getToolsBySuperClassId(String id) >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#getSuperClass() >+ */ >+ @Override >+ public IToolChain getSuperClass() >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#isAbstract() >+ */ >+ @Override >+ public boolean isAbstract() >+ { >+ // TODO Auto-generated method stub >+ return false; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#setIsAbstract(boolean) >+ */ >+ @Override >+ public void setIsAbstract(boolean b) >+ { >+ // TODO Auto-generated method stub >+ >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#getUnusedChildren() >+ */ >+ @Override >+ public String getUnusedChildren() >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ private String[] osList; >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#getOSList() >+ */ >+ @Override >+ public String[] getOSList() >+ { >+ return osList; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#setOSList(java.lang.String[]) >+ */ >+ @Override >+ public void setOSList(String[] OSs) >+ { >+ osList = OSs; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#getArchList() >+ */ >+ @Override >+ public String[] getArchList() >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#setArchList(java.lang.String[]) >+ */ >+ @Override >+ public void setArchList(String[] archs) >+ { >+ // TODO Auto-generated method stub >+ >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#getErrorParserIds() >+ */ >+ @Override >+ public String getErrorParserIds() >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#getErrorParserIds(org.eclipse.cdt.managedbuilder.core.IConfiguration) >+ */ >+ @Override >+ public String getErrorParserIds(IConfiguration config) >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#getErrorParserList() >+ */ >+ @Override >+ public String[] getErrorParserList() >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#setErrorParserIds(java.lang.String) >+ */ >+ @Override >+ public void setErrorParserIds(String ids) >+ { >+ // TODO Auto-generated method stub >+ >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#getDefaultLanguageSettingsProviderIds() >+ */ >+ @Override >+ public String getDefaultLanguageSettingsProviderIds() >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#getScannerConfigDiscoveryProfileId() >+ */ >+ @Override >+ public String getScannerConfigDiscoveryProfileId() >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#setScannerConfigDiscoveryProfileId(java.lang.String) >+ */ >+ @Override >+ public void setScannerConfigDiscoveryProfileId(String profileId) >+ { >+ // TODO Auto-generated method stub >+ >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#getTargetToolIds() >+ */ >+ @Override >+ public String getTargetToolIds() >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#setTargetToolIds(java.lang.String) >+ */ >+ @Override >+ public void setTargetToolIds(String targetToolIds) >+ { >+ // TODO Auto-generated method stub >+ >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#getTargetToolList() >+ */ >+ @Override >+ public String[] getTargetToolList() >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#getSecondaryOutputs() >+ */ >+ @Override >+ public IOutputType[] getSecondaryOutputs() >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#setSecondaryOutputs(java.lang.String) >+ */ >+ @Override >+ public void setSecondaryOutputs(String ids) >+ { >+ // TODO Auto-generated method stub >+ >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#isDirty() >+ */ >+ @Override >+ public boolean isDirty() >+ { >+ // TODO Auto-generated method stub >+ return false; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#setDirty(boolean) >+ */ >+ @Override >+ public void setDirty(boolean isDirty) >+ { >+ // TODO Auto-generated method stub >+ >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#isExtensionElement() >+ */ >+ @Override >+ public boolean isExtensionElement() >+ { >+ // TODO Auto-generated method stub >+ return false; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#isSupported() >+ */ >+ @Override >+ public boolean isSupported() >+ { >+ // TODO Auto-generated method stub >+ return false; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#getEnvironmentVariableSupplier() >+ */ >+ @Override >+ public IConfigurationEnvironmentVariableSupplier getEnvironmentVariableSupplier() >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#getBuildMacroSupplier() >+ */ >+ @Override >+ public IConfigurationBuildMacroSupplier getBuildMacroSupplier() >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#getOptionPathConverter() >+ */ >+ @Override >+ public IOptionPathConverter getOptionPathConverter() >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#getParentFolderInfo() >+ */ >+ @Override >+ public IFolderInfo getParentFolderInfo() >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#getTargetPlatformData() >+ */ >+ @Override >+ public CTargetPlatformData getTargetPlatformData() >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#supportsBuild(boolean) >+ */ >+ @Override >+ public boolean supportsBuild(boolean managed) >+ { >+ // TODO Auto-generated method stub >+ return false; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#isSystemObject() >+ */ >+ @Override >+ public boolean isSystemObject() >+ { >+ // TODO Auto-generated method stub >+ return false; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#matches(org.eclipse.cdt.managedbuilder.core.IToolChain) >+ */ >+ @Override >+ public boolean matches(IToolChain tc) >+ { >+ // TODO Auto-generated method stub >+ return false; >+ } >+ >+ /* (non-Javadoc) >+ * @see org.eclipse.cdt.managedbuilder.core.IToolChain#getUniqueRealName() >+ */ >+ @Override >+ public String getUniqueRealName() >+ { >+ // TODO Auto-generated method stub >+ return null; >+ } >+ >+} >diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/tests/managed/build/ModuleNameDifferentTest.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/tests/managed/build/ModuleNameDifferentTest.java >new file mode 100644 >index 0000000..77a0a1e >--- /dev/null >+++ b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/tests/managed/build/ModuleNameDifferentTest.java >@@ -0,0 +1,128 @@ >+/** >+ * Unit test class for testing module name dependency on file name using >+ * PhotranVPG >+ * >+ * @author Uchuva -- Use PhotranVPG to find dependencies for the given project >+ * (Managed Build project, Fall CS 427) >+ */ >+package org.eclipse.photran.internal.tests.managed.build; >+ >+import org.eclipse.core.resources.IFile; >+import org.eclipse.core.resources.IResource; >+import org.eclipse.core.runtime.NullProgressMonitor; >+import org.eclipse.photran.cdtinterface.makegen.DefaultFortranDependencyCalculator; >+import org.eclipse.photran.internal.core.properties.SearchPathProperties; >+import org.eclipse.photran.internal.core.vpg.PhotranVPG; >+import org.eclipse.photran.internal.tests.Activator; >+import org.eclipse.photran.internal.tests.PhotranWorkspaceTestCase; >+ >+public class ModuleNameDifferentTest extends PhotranWorkspaceTestCase >+{ >+ private static final String DIR = "vpg-test-code/managed-build/module-name-different/"; >+ >+ // Test module name matches file name >+ public void testModuleMatchFile() throws Exception >+ { >+ String DIR_test = DIR + "test1"; >+ IResource[] resources = new IResource[1]; >+ IFile module1 = importFile(Activator.getDefault(), DIR_test, "module1.f90"); >+ PhotranVPG.getInstance().ensureVPGIsUpToDate(new NullProgressMonitor()); >+ resources[0] = module1; >+ >+ DefaultFortranDependencyCalculator calculator = new DefaultFortranDependencyCalculator(); >+ String fileName = calculator.getFileNameContainingModule(resources, "module1"); >+ assertEquals("module1", fileName); >+ } >+ >+ // Test module name does not match file name >+ public void testModuleNotMatchFile() throws Exception >+ { >+ String DIR_test = DIR + "test2"; >+ IResource[] resources = new IResource[1]; >+ IFile module1 = importFile(Activator.getDefault(), DIR_test, "modules.f90"); >+ PhotranVPG.getInstance().ensureVPGIsUpToDate(new NullProgressMonitor()); >+ resources[0] = module1; >+ >+ DefaultFortranDependencyCalculator calculator = new DefaultFortranDependencyCalculator(); >+ String fileName = calculator.getFileNameContainingModule(resources, "module1"); >+ assertEquals("modules", fileName); >+ } >+ >+ // Test module name does not exist in the file >+ public void testNonexistentModuleName() throws Exception >+ { >+ String DIR_test = DIR + "test3"; >+ IResource[] resources = new IResource[1]; >+ IFile module1 = importFile(Activator.getDefault(), DIR_test, "modules.f90"); >+ PhotranVPG.getInstance().ensureVPGIsUpToDate(new NullProgressMonitor()); >+ resources[0] = module1; >+ >+ DefaultFortranDependencyCalculator calculator = new DefaultFortranDependencyCalculator(); >+ String fileName = calculator.getFileNameContainingModule(resources, "nonexistentModule"); >+ assertNull(fileName); >+ } >+ >+ // Test empty module name >+ public void testEmptyModuleName() throws Exception >+ { >+ String DIR_test = DIR + "test3"; >+ IResource[] resources = new IResource[1]; >+ IFile module1 = importFile(Activator.getDefault(), DIR_test, "modules.f90"); >+ PhotranVPG.getInstance().ensureVPGIsUpToDate(new NullProgressMonitor()); >+ resources[0] = module1; >+ >+ DefaultFortranDependencyCalculator calculator = new DefaultFortranDependencyCalculator(); >+ String fileName = calculator.getFileNameContainingModule(resources, ""); >+ assertNull(fileName); >+ } >+ >+ // Test null module name >+ public void testNullModuleName() throws Exception >+ { >+ String DIR_test = DIR + "test3"; >+ IResource[] resources = new IResource[1]; >+ IFile module1 = importFile(Activator.getDefault(), DIR_test, "modules.f90"); >+ PhotranVPG.getInstance().ensureVPGIsUpToDate(new NullProgressMonitor()); >+ resources[0] = module1; >+ >+ DefaultFortranDependencyCalculator calculator = new DefaultFortranDependencyCalculator(); >+ String fileName = calculator.getFileNameContainingModule(resources, null); >+ assertNull(fileName); >+ } >+ >+ // Test empty resources >+ public void testEmptyResources() throws Exception >+ { >+ IResource[] resources = new IResource[0]; >+ DefaultFortranDependencyCalculator calculator = new DefaultFortranDependencyCalculator(); >+ String fileName = calculator.getFileNameContainingModule(resources, "module1"); >+ assertNull(fileName); >+ } >+ >+ // Test null resources >+ public void testNullResources() throws Exception >+ { >+ IResource[] resources = null; >+ DefaultFortranDependencyCalculator calculator = new DefaultFortranDependencyCalculator(); >+ String fileName = calculator.getFileNameContainingModule(resources, "module1"); >+ assertNull(fileName); >+ } >+ >+ // Test set analysis/refactoring enable >+ public void testSetPropertyEnableVpg() throws Exception >+ { >+ // initial setting is false >+ String vpgDisableProperty = new SearchPathProperties().getProperty(project, SearchPathProperties.ENABLE_VPG_PROPERTY_NAME); >+ assertFalse(vpgDisableProperty.equals("false")); >+ >+ // set it to true >+ PhotranVPG.getInstance().setPropertyEnableVpg(project, true); >+ String vpgEnabledProperty = new SearchPathProperties().getProperty(project, SearchPathProperties.ENABLE_VPG_PROPERTY_NAME); >+ assertTrue(vpgEnabledProperty.equals("true")); >+ >+ // set it back to false >+ PhotranVPG.getInstance().setPropertyEnableVpg(project, false); >+ vpgDisableProperty = new SearchPathProperties().getProperty(project, SearchPathProperties.ENABLE_VPG_PROPERTY_NAME); >+ assertTrue(vpgDisableProperty.equals("false")); >+ } >+} >diff --git a/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/tests/managed/build/MulitpleModuleInFileTest.java b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/tests/managed/build/MulitpleModuleInFileTest.java >new file mode 100644 >index 0000000..e52915a >--- /dev/null >+++ b/org.eclipse.photran.core.vpg.tests/src/org/eclipse/photran/internal/tests/managed/build/MulitpleModuleInFileTest.java >@@ -0,0 +1,104 @@ >+/** >+ * Unit test class for testing multiple modules and files using PhotranVPG >+ * >+ * @author Uchuva -- Use PhotranVPG to find dependencies for the given project >+ * (Managed Build project, Fall CS 427) >+ */ >+ >+package org.eclipse.photran.internal.tests.managed.build; >+ >+ >+import org.eclipse.core.resources.IFile; >+import org.eclipse.core.resources.IResource; >+import org.eclipse.core.runtime.NullProgressMonitor; >+import org.eclipse.photran.cdtinterface.makegen.DefaultFortranDependencyCalculator; >+import org.eclipse.photran.internal.core.vpg.PhotranVPG; >+import org.eclipse.photran.internal.tests.Activator; >+import org.eclipse.photran.internal.tests.PhotranWorkspaceTestCase; >+ >+public class MulitpleModuleInFileTest extends PhotranWorkspaceTestCase >+{ >+ private static final String DIR = "vpg-test-code/managed-build/multiple-module-in-file/"; >+ >+ // Test for multiple modules in a single file, and main program >+ // has same order on how modules are defined in the source file >+ public void testMultipleModulesInOrder() throws Exception >+ { >+ String DIR_test = DIR + "testMultipleModulesInOrder"; >+ IResource[] resources = new IResource[2]; >+ IFile main = importFile(Activator.getDefault(), DIR_test, "main.f90"); >+ IFile module1 = importFile(Activator.getDefault(), DIR_test, "modules.f90"); >+ PhotranVPG.getInstance().ensureVPGIsUpToDate(new NullProgressMonitor()); >+ resources[0] = main; >+ resources[1] = module1; >+ >+ DefaultFortranDependencyCalculator calculator = new DefaultFortranDependencyCalculator(); >+ String fileName = calculator.getFileNameContainingModule(resources, "module1"); >+ assertEquals("modules", fileName); >+ >+ fileName = calculator.getFileNameContainingModule(resources, "module2"); >+ assertEquals("modules", fileName); >+ } >+ >+ // Test for multiple modules in a single file, and main program >+ // has different order on how modules are defined in the source file >+ public void testMultipleModulesNotInOrder() throws Exception >+ { >+ String DIR_test = DIR + "testMultipleModulesNotInOrder"; >+ IResource[] resources = new IResource[2]; >+ IFile main = importFile(Activator.getDefault(), DIR_test, "main.f90"); >+ IFile modules = importFile(Activator.getDefault(), DIR_test, "modules.f90"); >+ PhotranVPG.getInstance().ensureVPGIsUpToDate(new NullProgressMonitor()); >+ resources[0] = main; >+ resources[1] = modules; >+ >+ DefaultFortranDependencyCalculator calculator = new DefaultFortranDependencyCalculator(); >+ String fileName = calculator.getFileNameContainingModule(resources, "module1"); >+ assertEquals("modules", fileName); >+ >+ fileName = calculator.getFileNameContainingModule(resources, "module2"); >+ assertEquals("modules", fileName); >+ } >+ >+ // Test different module in same file name and different folder >+ public void testDifferentFoldersIdenticalFilesContainsUniqueModule() throws Exception >+ { >+ String DIR_test = DIR + "testDifferentFoldersIdenticalFilesContainsUniqueModule/"; >+ String DIR_folder1_test = DIR_test + "folder1"; >+ String DIR_folder2_test = DIR_test + "folder2"; >+ IResource[] resources = new IResource[2]; >+ IFile module1 = importFile(Activator.getDefault(), DIR_folder1_test, "modules.f90", "folder1"); >+ IFile module2 = importFile(Activator.getDefault(), DIR_folder2_test, "modules.f90", "folder2"); >+ PhotranVPG.getInstance().ensureVPGIsUpToDate(new NullProgressMonitor()); >+ >+ resources[0] = module1; >+ resources[1] = module2; >+ >+ DefaultFortranDependencyCalculator calculator = new DefaultFortranDependencyCalculator(); >+ >+ String fileNameModule1 = calculator.getFileNameContainingModule(resources, "module1"); >+ assertEquals("folder1/modules", fileNameModule1); >+ >+ String fileNameModule2 = calculator.getFileNameContainingModule(resources, "module2"); >+ assertEquals("folder2/modules", fileNameModule2); >+ } >+ >+ // Test different module in same file name and different folder >+ public void testDifferentFoldersIdenticalFilesContainsUniqueModuleDifferentProjects() throws Exception >+ { >+ String DIR_test = DIR + "testDifferentFoldersIdenticalFilesContainsUniqueModuleDifferentProjects/"; >+ String DIR_project1_test = DIR_test + "project1"; >+ String DIR_project2_folder1_test = DIR_test + "project2/folder1"; >+ IResource[] resources = new IResource[1]; >+ IFile project1_module1 = importFile(Activator.getDefault(), DIR_project1_test, "modules.f90"); >+ IFile project2_module1 = importFile(Activator.getDefault(), DIR_project2_folder1_test, "modules.f90", "folder1"); >+ PhotranVPG.getInstance().ensureVPGIsUpToDate(new NullProgressMonitor()); >+ >+ resources[0] = project2_module1; >+ >+ DefaultFortranDependencyCalculator calculator = new DefaultFortranDependencyCalculator(); >+ >+ String fileNameModule1 = calculator.getFileNameContainingModule(resources, "module1"); >+ assertEquals("folder1/modules", fileNameModule1); >+ } >+} >\ No newline at end of file >diff --git a/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/module-name-different/test1/module1.f90 b/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/module-name-different/test1/module1.f90 >new file mode 100644 >index 0000000..79fa747 >--- /dev/null >+++ b/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/module-name-different/test1/module1.f90 >@@ -0,0 +1,2 @@ >+module module1 >+end module module1 >\ No newline at end of file >diff --git a/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/module-name-different/test2/modules.f90 b/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/module-name-different/test2/modules.f90 >new file mode 100644 >index 0000000..79fa747 >--- /dev/null >+++ b/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/module-name-different/test2/modules.f90 >@@ -0,0 +1,2 @@ >+module module1 >+end module module1 >\ No newline at end of file >diff --git a/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/module-name-different/test3/modules.f90 b/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/module-name-different/test3/modules.f90 >new file mode 100644 >index 0000000..79fa747 >--- /dev/null >+++ b/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/module-name-different/test3/modules.f90 >@@ -0,0 +1,2 @@ >+module module1 >+end module module1 >\ No newline at end of file >diff --git a/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/multiple-module-in-file/testDifferentFoldersIdenticalFilesContainsUniqueModule/folder1/modules.f90 b/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/multiple-module-in-file/testDifferentFoldersIdenticalFilesContainsUniqueModule/folder1/modules.f90 >new file mode 100644 >index 0000000..79fa747 >--- /dev/null >+++ b/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/multiple-module-in-file/testDifferentFoldersIdenticalFilesContainsUniqueModule/folder1/modules.f90 >@@ -0,0 +1,2 @@ >+module module1 >+end module module1 >\ No newline at end of file >diff --git a/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/multiple-module-in-file/testDifferentFoldersIdenticalFilesContainsUniqueModule/folder2/modules.f90 b/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/multiple-module-in-file/testDifferentFoldersIdenticalFilesContainsUniqueModule/folder2/modules.f90 >new file mode 100644 >index 0000000..8cabeca >--- /dev/null >+++ b/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/multiple-module-in-file/testDifferentFoldersIdenticalFilesContainsUniqueModule/folder2/modules.f90 >@@ -0,0 +1,2 @@ >+module module2 >+end module module2 >\ No newline at end of file >diff --git a/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/multiple-module-in-file/testDifferentFoldersIdenticalFilesContainsUniqueModuleDifferentProjects/project1/modules.f90 b/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/multiple-module-in-file/testDifferentFoldersIdenticalFilesContainsUniqueModuleDifferentProjects/project1/modules.f90 >new file mode 100644 >index 0000000..79fa747 >--- /dev/null >+++ b/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/multiple-module-in-file/testDifferentFoldersIdenticalFilesContainsUniqueModuleDifferentProjects/project1/modules.f90 >@@ -0,0 +1,2 @@ >+module module1 >+end module module1 >\ No newline at end of file >diff --git a/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/multiple-module-in-file/testDifferentFoldersIdenticalFilesContainsUniqueModuleDifferentProjects/project2/folder1/modules.f90 b/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/multiple-module-in-file/testDifferentFoldersIdenticalFilesContainsUniqueModuleDifferentProjects/project2/folder1/modules.f90 >new file mode 100644 >index 0000000..79fa747 >--- /dev/null >+++ b/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/multiple-module-in-file/testDifferentFoldersIdenticalFilesContainsUniqueModuleDifferentProjects/project2/folder1/modules.f90 >@@ -0,0 +1,2 @@ >+module module1 >+end module module1 >\ No newline at end of file >diff --git a/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/multiple-module-in-file/testMultipleModulesInOrder/main.f90 b/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/multiple-module-in-file/testMultipleModulesInOrder/main.f90 >new file mode 100644 >index 0000000..1dd73a0 >--- /dev/null >+++ b/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/multiple-module-in-file/testMultipleModulesInOrder/main.f90 >@@ -0,0 +1,4 @@ >+program main >+ USE Module1 >+ USE Module2 >+end program >\ No newline at end of file >diff --git a/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/multiple-module-in-file/testMultipleModulesInOrder/modules.f90 b/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/multiple-module-in-file/testMultipleModulesInOrder/modules.f90 >new file mode 100644 >index 0000000..4b30182 >--- /dev/null >+++ b/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/multiple-module-in-file/testMultipleModulesInOrder/modules.f90 >@@ -0,0 +1,5 @@ >+module module1 >+end module module1 >+ >+module module2 >+end module module2 >\ No newline at end of file >diff --git a/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/multiple-module-in-file/testMultipleModulesNotInOrder/main.f90 b/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/multiple-module-in-file/testMultipleModulesNotInOrder/main.f90 >new file mode 100644 >index 0000000..9d3951b >--- /dev/null >+++ b/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/multiple-module-in-file/testMultipleModulesNotInOrder/main.f90 >@@ -0,0 +1,4 @@ >+program main >+ USE Module2 >+ USE Module1 >+end program >\ No newline at end of file >diff --git a/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/multiple-module-in-file/testMultipleModulesNotInOrder/modules.f90 b/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/multiple-module-in-file/testMultipleModulesNotInOrder/modules.f90 >new file mode 100644 >index 0000000..4b30182 >--- /dev/null >+++ b/org.eclipse.photran.core.vpg.tests/vpg-test-code/managed-build/multiple-module-in-file/testMultipleModulesNotInOrder/modules.f90 >@@ -0,0 +1,5 @@ >+module module1 >+end module module1 >+ >+module module2 >+end module module2 >\ No newline at end of file >diff --git a/org.eclipse.photran.core.vpg/src/org/eclipse/photran/internal/core/vpg/PhotranVPG.java b/org.eclipse.photran.core.vpg/src/org/eclipse/photran/internal/core/vpg/PhotranVPG.java >index b0a1952..929d21d 100644 >--- a/org.eclipse.photran.core.vpg/src/org/eclipse/photran/internal/core/vpg/PhotranVPG.java >+++ b/org.eclipse.photran.core.vpg/src/org/eclipse/photran/internal/core/vpg/PhotranVPG.java >@@ -39,6 +39,8 @@ > * Photran's Virtual Program Graph. > * > * @author Jeff Overbey >+ * @author Uchuva -- Add setPropertyEnableVpg function to set Enable VPG property >+ * programmatically (Managed Build project, Fall CS 427) > */ > //public class PhotranVPG extends EclipseVPG<IFortranAST, Token, PhotranTokenRef, PhotranVPGDB, PhotranVPGLog> > public class PhotranVPG extends EclipseVPG<IFortranAST, Token, PhotranTokenRef> >@@ -544,6 +546,19 @@ > return false; // Project may be closed, or something like that; see Bug 369094 > } > } >+ >+ /** >+ * Set the ENABLE_VPG_PROPERTY_NAME property for a given project >+ * >+ * @author Uchuva >+ * >+ * @param project - Project to set its ENABLE_VPG_PROPERTY_NAME property >+ * @param value - property value to set >+ */ >+ public void setPropertyEnableVpg(IProject project, boolean value) >+ { >+ new SearchPathProperties().setProperty(project, SearchPathProperties.ENABLE_VPG_PROPERTY_NAME, Boolean.toString(value)); >+ } > > public String describeWhyCannotProcessProject(IProject project) > { >diff --git a/org.eclipse.photran.managedbuilder.gnu.ui/plugin.xml b/org.eclipse.photran.managedbuilder.gnu.ui/plugin.xml >index f1086bd..1c16208 100644 >--- a/org.eclipse.photran.managedbuilder.gnu.ui/plugin.xml >+++ b/org.eclipse.photran.managedbuilder.gnu.ui/plugin.xml >@@ -594,7 +594,8 @@ > name="%ToolChainName.Dbg" > targetTool="photran.managedbuild.tool.gnu.fortran.linker.exe.debug" > scannerConfigDiscoveryProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile" >- id="photran.managedbuild.toolchain.gnu.fortran.exe.debug"> >+ id="photran.managedbuild.toolchain.gnu.fortran.exe.debug" >+ isToolChainSupported="org.eclipse.photran.cdtinterface.managebuilder.gnu.IsGnuToolChainSupported"> > <targetPlatform > id="photran.managedbuild.target.gnu.platform.exe.debug" > name="%PlatformName.Dbg" >@@ -655,7 +656,8 @@ > name="%ToolChainName.Rel" > targetTool="photran.managedbuild.tool.gnu.fortran.linker.exe.release" > scannerConfigDiscoveryProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile" >- id="photran.managedbuild.toolchain.gnu.fortran.exe.release"> >+ id="photran.managedbuild.toolchain.gnu.fortran.exe.release" >+ isToolChainSupported="org.eclipse.photran.cdtinterface.managebuilder.gnu.IsGnuToolChainSupported"> > <targetPlatform > id="photran.managedbuild.target.gnu.platform.fortran.exe.release" > name="%PlatformName.Rel" >@@ -728,7 +730,8 @@ > name="%ToolChainName.Dbg" > targetTool="photran.managedbuild.tool.macosx.fortran.linker.macosx.exe.debug" > scannerConfigDiscoveryProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile" >- id="photran.managedbuild.toolchain.gnu.fortran.macosx.exe.debug"> >+ id="photran.managedbuild.toolchain.gnu.fortran.macosx.exe.debug" >+ isToolChainSupported="org.eclipse.photran.cdtinterface.managebuilder.gnu.IsGnuToolChainSupported"> > <targetPlatform > id="photran.managedbuild.target.gnu.platform.macosx.exe.debug" > name="%PlatformName.Dbg" >@@ -789,7 +792,8 @@ > name="%ToolChainName.Rel" > targetTool="photran.managedbuild.tool.macosx.fortran.linker.macosx.exe.release" > scannerConfigDiscoveryProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile" >- id="photran.managedbuild.toolchain.gnu.fortran.macosx.exe.release"> >+ id="photran.managedbuild.toolchain.gnu.fortran.macosx.exe.release" >+ isToolChainSupported="org.eclipse.photran.cdtinterface.managebuilder.gnu.IsGnuToolChainSupported"> > <targetPlatform > id="photran.managedbuild.target.gnu.platform.fortran.macosx.exe.release" > name="%PlatformName.Rel" >@@ -862,7 +866,8 @@ > name="%ToolChainName.Dbg" > targetTool="photran.managedbuild.tool.gnu.fortran.linker.exe.debug" > scannerConfigDiscoveryProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile" >- id="photran.managedbuild.toolchain.gnu.fortran.win32.exe.debug"> >+ id="photran.managedbuild.toolchain.gnu.fortran.win32.exe.debug" >+ isToolChainSupported="org.eclipse.photran.cdtinterface.managebuilder.gnu.IsGnuToolChainSupported"> > <targetPlatform > id="photran.managedbuild.target.gnu.platform.win32.exe.debug" > name="%PlatformName.Dbg" >@@ -923,7 +928,8 @@ > name="%ToolChainName.Rel" > targetTool="photran.managedbuild.tool.gnu.fortran.linker.exe.release" > scannerConfigDiscoveryProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile" >- id="photran.managedbuild.toolchain.gnu.fortran.win32.exe.release"> >+ id="photran.managedbuild.toolchain.gnu.fortran.win32.exe.release" >+ isToolChainSupported="org.eclipse.photran.cdtinterface.managebuilder.gnu.IsGnuToolChainSupported"> > <targetPlatform > id="photran.managedbuild.target.gnu.platform.fortran.win32.exe.release" > name="%PlatformName.Rel" >diff --git a/org.eclipse.photran.managedbuilder.intel.ui/plugin.xml b/org.eclipse.photran.managedbuilder.intel.ui/plugin.xml >index 6d07e05..ee50064 100644 >--- a/org.eclipse.photran.managedbuilder.intel.ui/plugin.xml >+++ b/org.eclipse.photran.managedbuilder.intel.ui/plugin.xml >@@ -1918,7 +1918,8 @@ > osList="linux" > name="%ToolChainName.x86" > targetTool="photran.managedbuild.tool.intel.fortran.linker;photran.managedbuild.tool.intel.fortran.archiver" >- id="photran.managedbuild.toolchain.intel.fortran.x86.base"> >+ id="photran.managedbuild.toolchain.intel.fortran.x86.base" >+ isToolChainSupported="org.eclipse.photran.cdtinterface.managebuilder.intel.IsIntelToolChainSupported"> > <!-- add archList="x86,x86_64" when possible--> > <targetPlatform > id="photran.managedbuild.target.intel.platform.x86.base" >@@ -1976,7 +1977,8 @@ > osList="linux" > name="%ToolChainName.x86_64" > targetTool="photran.managedbuild.tool.intel.fortran.linker;photran.managedbuild.tool.intel.fortran.archiver" >- id="photran.managedbuild.toolchain.intel.fortran.x86_64.base"> >+ id="photran.managedbuild.toolchain.intel.fortran.x86_64.base" >+ isToolChainSupported="org.eclipse.photran.cdtinterface.managebuilder.intel.IsIntelToolChainSupported"> > <targetPlatform > id="photran.managedbuild.target.intel.platform.x86_64.base" > name="%PlatformName.x86_64" >@@ -2032,7 +2034,8 @@ > osList="linux" > name="%ToolChainName.ipf" > targetTool="photran.managedbuild.tool.intel.fortran.linker;photran.managedbuild.tool.intel.fortran.archiver" >- id="photran.managedbuild.toolchain.intel.fortran.ipf.base"> >+ id="photran.managedbuild.toolchain.intel.fortran.ipf.base" >+ isToolChainSupported="org.eclipse.photran.cdtinterface.managebuilder.intel.IsIntelToolChainSupported"> > <targetPlatform > id="photran.managedbuild.target.intel.platform.ipf.base" > name="%PlatformName.ipf" >@@ -2117,7 +2120,8 @@ > buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug"> > <toolChain > id="photran.managedbuild.toolchain.intel.fortran.exe.x86.debug" >- superClass="photran.managedbuild.toolchain.intel.fortran.x86.base"> >+ superClass="photran.managedbuild.toolchain.intel.fortran.x86.base" >+ isToolChainSupported="org.eclipse.photran.cdtinterface.managebuilder.intel.IsIntelToolChainSupported"> > <targetPlatform > id="photran.managedbuild.target.intel.platform.exe.x86.debug" > superClass="photran.managedbuild.target.intel.platform.x86.base"> >@@ -2171,7 +2175,8 @@ > buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release"> > <toolChain > id="photran.managedbuild.toolchain.intel.fortran.exe.x86.release" >- superClass="photran.managedbuild.toolchain.intel.fortran.x86.base"> >+ superClass="photran.managedbuild.toolchain.intel.fortran.x86.base" >+ isToolChainSupported="org.eclipse.photran.cdtinterface.managebuilder.intel.IsIntelToolChainSupported"> > <targetPlatform > id="photran.managedbuild.target.intel.platform.fortran.exe.x86.release" > superClass="photran.managedbuild.target.intel.platform.x86.base"> >@@ -2215,7 +2220,8 @@ > buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug"> > <toolChain > id="photran.managedbuild.toolchain.intel.fortran.exe.x86_64.debug" >- superClass="photran.managedbuild.toolchain.intel.fortran.x86_64.base"> >+ superClass="photran.managedbuild.toolchain.intel.fortran.x86_64.base" >+ isToolChainSupported="org.eclipse.photran.cdtinterface.managebuilder.intel.IsIntelToolChainSupported"> > <targetPlatform > id="photran.managedbuild.target.intel.platform.exe.x86_64.debug" > superClass="photran.managedbuild.target.intel.platform.x86_64.base"> >@@ -2269,7 +2275,8 @@ > buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release"> > <toolChain > id="photran.managedbuild.toolchain.intel.fortran.exe.x86_64.release" >- superClass="photran.managedbuild.toolchain.intel.fortran.x86_64.base"> >+ superClass="photran.managedbuild.toolchain.intel.fortran.x86_64.base" >+ isToolChainSupported="org.eclipse.photran.cdtinterface.managebuilder.intel.IsIntelToolChainSupported"> > <targetPlatform > id="photran.managedbuild.target.intel.platform.fortran.exe.x86_64.release" > superClass="photran.managedbuild.target.intel.platform.x86_64.base"> >@@ -2314,7 +2321,8 @@ > buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug"> > <toolChain > id="photran.managedbuild.toolchain.intel.fortran.exe.ipf.debug" >- superClass="photran.managedbuild.toolchain.intel.fortran.ipf.base"> >+ superClass="photran.managedbuild.toolchain.intel.fortran.ipf.base" >+ isToolChainSupported="org.eclipse.photran.cdtinterface.managebuilder.intel.IsIntelToolChainSupported"> > <targetPlatform > id="photran.managedbuild.target.intel.platform.exe.ipf.debug" > superClass="photran.managedbuild.target.intel.platform.ipf.base"> >@@ -2368,7 +2376,8 @@ > buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release"> > <toolChain > id="photran.managedbuild.toolchain.intel.fortran.exe.ipf.release" >- superClass="photran.managedbuild.toolchain.intel.fortran.ipf.base"> >+ superClass="photran.managedbuild.toolchain.intel.fortran.ipf.base" >+ isToolChainSupported="org.eclipse.photran.cdtinterface.managebuilder.intel.IsIntelToolChainSupported"> > <targetPlatform > id="photran.managedbuild.target.intel.platform.fortran.exe.ipf.release" > superClass="photran.managedbuild.target.intel.platform.ipf.base"> >@@ -2423,7 +2432,8 @@ > buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug"> > <toolChain > id="photran.managedbuild.toolchain.intel.fortran.ar.x86.debug" >- superClass="photran.managedbuild.toolchain.intel.fortran.x86.base"> >+ superClass="photran.managedbuild.toolchain.intel.fortran.x86.base" >+ isToolChainSupported="org.eclipse.photran.cdtinterface.managebuilder.intel.IsIntelToolChainSupported"> > <targetPlatform > id="photran.managedbuild.target.intel.platform.ar.x86.debug" > superClass="photran.managedbuild.target.intel.platform.x86.base"> >@@ -2477,7 +2487,8 @@ > buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release"> > <toolChain > id="photran.managedbuild.toolchain.intel.fortran.ar.x86.release" >- superClass="photran.managedbuild.toolchain.intel.fortran.x86.base"> >+ superClass="photran.managedbuild.toolchain.intel.fortran.x86.base" >+ isToolChainSupported="org.eclipse.photran.cdtinterface.managebuilder.intel.IsIntelToolChainSupported"> > <targetPlatform > id="photran.managedbuild.target.intel.platform.fortran.ar.x86.release" > superClass="photran.managedbuild.target.intel.platform.x86.base"> >@@ -2521,7 +2532,8 @@ > buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug"> > <toolChain > id="photran.managedbuild.toolchain.intel.fortran.ar.x86_64.debug" >- superClass="photran.managedbuild.toolchain.intel.fortran.x86_64.base"> >+ superClass="photran.managedbuild.toolchain.intel.fortran.x86_64.base" >+ isToolChainSupported="org.eclipse.photran.cdtinterface.managebuilder.intel.IsIntelToolChainSupported"> > <targetPlatform > id="photran.managedbuild.target.intel.platform.ar.x86_64.debug" > superClass="photran.managedbuild.target.intel.platform.x86_64.base"> >@@ -2575,7 +2587,8 @@ > buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release"> > <toolChain > id="photran.managedbuild.toolchain.intel.fortran.ar.x86_64.release" >- superClass="photran.managedbuild.toolchain.intel.fortran.x86_64.base"> >+ superClass="photran.managedbuild.toolchain.intel.fortran.x86_64.base" >+ isToolChainSupported="org.eclipse.photran.cdtinterface.managebuilder.intel.IsIntelToolChainSupported"> > <targetPlatform > id="photran.managedbuild.target.intel.platform.fortran.ar.x86_64.release" > superClass="photran.managedbuild.target.intel.platform.x86_64.base"> >@@ -2619,7 +2632,8 @@ > buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug"> > <toolChain > id="photran.managedbuild.toolchain.intel.fortran.ar.ipf.debug" >- superClass="photran.managedbuild.toolchain.intel.fortran.ipf.base"> >+ superClass="photran.managedbuild.toolchain.intel.fortran.ipf.base" >+ isToolChainSupported="org.eclipse.photran.cdtinterface.managebuilder.intel.IsIntelToolChainSupported"> > <targetPlatform > id="photran.managedbuild.target.intel.platform.ar.ipf.debug" > superClass="photran.managedbuild.target.intel.platform.ipf.base"> >@@ -2673,7 +2687,8 @@ > buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release"> > <toolChain > id="photran.managedbuild.toolchain.intel.fortran.ar.ipf.release" >- superClass="photran.managedbuild.toolchain.intel.fortran.ipf.base"> >+ superClass="photran.managedbuild.toolchain.intel.fortran.ipf.base" >+ isToolChainSupported="org.eclipse.photran.cdtinterface.managebuilder.intel.IsIntelToolChainSupported"> > <targetPlatform > id="photran.managedbuild.target.intel.platform.fortran.ar.ipf.release" > superClass="photran.managedbuild.target.intel.platform.ipf.base"> >@@ -2727,7 +2742,8 @@ > buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug"> > <toolChain > id="photran.managedbuild.toolchain.intel.fortran.so.x86.debug" >- superClass="photran.managedbuild.toolchain.intel.fortran.x86.base"> >+ superClass="photran.managedbuild.toolchain.intel.fortran.x86.base" >+ isToolChainSupported="org.eclipse.photran.cdtinterface.managebuilder.intel.IsIntelToolChainSupported"> > <targetPlatform > id="photran.managedbuild.target.intel.platform.so.x86.debug" > superClass="photran.managedbuild.target.intel.platform.x86.base"> >@@ -2785,7 +2801,8 @@ > buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release"> > <toolChain > id="photran.managedbuild.toolchain.intel.fortran.so.x86.release" >- superClass="photran.managedbuild.toolchain.intel.fortran.x86.base"> >+ superClass="photran.managedbuild.toolchain.intel.fortran.x86.base" >+ isToolChainSupported="org.eclipse.photran.cdtinterface.managebuilder.intel.IsIntelToolChainSupported"> > <targetPlatform > id="photran.managedbuild.target.intel.platform.fortran.so.x86.release" > superClass="photran.managedbuild.target.intel.platform.x86.base"> >@@ -2832,7 +2849,8 @@ > buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug"> > <toolChain > id="photran.managedbuild.toolchain.intel.fortran.so.x86_64.debug" >- superClass="photran.managedbuild.toolchain.intel.fortran.x86_64.base"> >+ superClass="photran.managedbuild.toolchain.intel.fortran.x86_64.base" >+ isToolChainSupported="org.eclipse.photran.cdtinterface.managebuilder.intel.IsIntelToolChainSupported"> > <targetPlatform > id="photran.managedbuild.target.intel.platform.so.x86_64.debug" > superClass="photran.managedbuild.target.intel.platform.x86_64.base"> >@@ -2890,7 +2908,8 @@ > buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release"> > <toolChain > id="photran.managedbuild.toolchain.intel.fortran.so.x86_64.release" >- superClass="photran.managedbuild.toolchain.intel.fortran.x86_64.base"> >+ superClass="photran.managedbuild.toolchain.intel.fortran.x86_64.base" >+ isToolChainSupported="org.eclipse.photran.cdtinterface.managebuilder.intel.IsIntelToolChainSupported"> > <targetPlatform > id="photran.managedbuild.target.intel.platform.fortran.so.x86_64.release" > superClass="photran.managedbuild.target.intel.platform.x86_64.base"> >@@ -2937,7 +2956,8 @@ > buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug"> > <toolChain > id="photran.managedbuild.toolchain.intel.fortran.so.ipf.debug" >- superClass="photran.managedbuild.toolchain.intel.fortran.ipf.base"> >+ superClass="photran.managedbuild.toolchain.intel.fortran.ipf.base" >+ isToolChainSupported="org.eclipse.photran.cdtinterface.managebuilder.intel.IsIntelToolChainSupported"> > <targetPlatform > id="photran.managedbuild.target.intel.platform.so.ipf.debug" > superClass="photran.managedbuild.target.intel.platform.ipf.base"> >@@ -2995,7 +3015,8 @@ > buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release"> > <toolChain > id="photran.managedbuild.toolchain.intel.fortran.so.ipf.release" >- superClass="photran.managedbuild.toolchain.intel.fortran.ipf.base"> >+ superClass="photran.managedbuild.toolchain.intel.fortran.ipf.base" >+ isToolChainSupported="org.eclipse.photran.cdtinterface.managebuilder.intel.IsIntelToolChainSupported"> > <targetPlatform > id="photran.managedbuild.target.intel.platform.fortran.so.ipf.release" > superClass="photran.managedbuild.target.intel.platform.ipf.base"> >diff --git a/org.eclipse.photran.managedbuilder.xlf.ui/plugin.xml b/org.eclipse.photran.managedbuilder.xlf.ui/plugin.xml >index 049c197..ae2f632 100644 >--- a/org.eclipse.photran.managedbuilder.xlf.ui/plugin.xml >+++ b/org.eclipse.photran.managedbuilder.xlf.ui/plugin.xml >@@ -418,7 +418,8 @@ > name="%XLFToolChainName.Dbg" > targetTool="photran.managedbuild.tool.macosx.fortran.xlf.linker.macosx.exe.debug" > scannerConfigDiscoveryProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile" >- id="photran.managedbuild.toolchain.xlf.fortran.macosx.exe.debug"> >+ id="photran.managedbuild.toolchain.xlf.fortran.macosx.exe.debug" >+ isToolChainSupported="org.eclipse.photran.cdtinterface.managebuilder.xlf.IsXlfToolChainSupported"> > <!--targetPlatform > id="photran.managedbuild.target.xlf.platform.macosx.exe.debug" > name="%PlatformName.Dbg" >@@ -479,7 +480,8 @@ > name="%XLFToolChainName.Rel" > targetTool="photran.managedbuild.tool.macosx.fortran.xlf.linker.macosx.exe.release" > scannerConfigDiscoveryProfileId="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile" >- id="photran.managedbuild.toolchain.xlf.fortran.macosx.exe.release"> >+ id="photran.managedbuild.toolchain.xlf.fortran.macosx.exe.release" >+ isToolChainSupported="org.eclipse.photran.cdtinterface.managebuilder.xlf.IsXlfToolChainSupported"> > <!--targetPlatform > id="photran.managedbuild.target.xlf.platform.fortran.macosx.exe.release" > name="%PlatformName.Rel"
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 397116
:
225011
|
225016
|
225017
|
225021
|
225024
|
225044