diff options
author | mkersten <mkersten> | 2005-11-08 02:33:59 +0000 |
---|---|---|
committer | mkersten <mkersten> | 2005-11-08 02:33:59 +0000 |
commit | 9fe6c2bc5c7d9950fc3edeadb0d9cfb8c1f28495 (patch) | |
tree | 06fd48eafb4a02f29dbe35c6d857a45e20cea8a3 /org.aspectj.ajdt.core | |
parent | 67ec9ca9ab089690ab376f1ed75006143f26fb84 (diff) | |
download | aspectj-9fe6c2bc5c7d9950fc3edeadb0d9cfb8c1f28495.tar.gz aspectj-9fe6c2bc5c7d9950fc3edeadb0d9cfb8c1f28495.zip |
Fixed Bugzilla Bug 113554: support ajsym file generation for command line builds
Diffstat (limited to 'org.aspectj.ajdt.core')
5 files changed, 28 insertions, 1 deletions
diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/BuildArgParser.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/BuildArgParser.java index 74135e9b6..9db08913d 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/BuildArgParser.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/BuildArgParser.java @@ -117,7 +117,6 @@ public class BuildArgParser extends Main { AjcConfigParser parser = new AjcConfigParser(buildConfig, handler); parser.parseCommandLine(args); - boolean swi = buildConfig.getShowWeavingInformation(); // Now jump through firey hoops to turn them on/off if (handler instanceof CountingMessageHandler) { @@ -519,6 +518,9 @@ public class BuildArgParser extends Main { } else { showError("-XincrementalFile requires file argument"); } + } else if (arg.equals("-crossrefs")) { + buildConfig.setGenerateCrossRefsMode(true); + buildConfig.setGenerateModelMode(true); } else if (arg.equals("-emacssym")) { buildConfig.setEmacsSymMode(true); buildConfig.setGenerateModelMode(true); diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/messages.properties b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/messages.properties index 9a9029e97..a297978ec 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/messages.properties +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/ajc/messages.properties @@ -31,6 +31,7 @@ AspectJ-specific options:\n\ \t (reads stdin: enter to recompile and ''q'' to quit)\n\ \t-sourceroots <dirs> compile all .aj and .java files in <dirs>\n\ \t (<dirs> uses classpath delimiter)\n\ +\t-crossrefs generate .ajsym file into the output directory\n\ \t-emacssym generate .ajesym symbol files for emacs support\n\ \t-Xlint same as ''-Xlint:warning''\n\ \t-Xlint:<level> set default level for crosscutting messages\n\ diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjBuildConfig.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjBuildConfig.java index 8b5cf2132..505b80844 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjBuildConfig.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjBuildConfig.java @@ -515,6 +515,14 @@ public class AjBuildConfig { boolean generateJavadocsInModelMode) { options.generateJavaDocsInModel = generateJavadocsInModelMode; } + + public boolean isGenerateCrossRefsMode() { + return options.generateCrossRefs; + } + + public void setGenerateCrossRefsMode(boolean on) { + options.generateCrossRefs = on; + } public boolean isEmacsSymMode() { return options.generateEmacsSymFiles; diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjBuildManager.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjBuildManager.java index 9cb561ea2..004ab6534 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjBuildManager.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjBuildManager.java @@ -89,6 +89,7 @@ import org.eclipse.core.runtime.OperationCanceledException; //import org.aspectj.org.eclipse.jdt.internal.compiler.util.HashtableOfObject; public class AjBuildManager implements IOutputClassFileNameProvider,IBinarySourceProvider,ICompilerAdapterFactory { + private static final String CROSSREFS_FILE_NAME = "build.lst"; private static final String CANT_WRITE_RESULT = "unable to write compilation result"; private static final String MANIFEST_NAME = "META-INF/MANIFEST.MF"; static final boolean COPY_INPATH_DIR_RESOURCES = false; @@ -281,6 +282,15 @@ public class AjBuildManager implements IOutputClassFileNameProvider,IBinarySourc if (buildConfig.isEmacsSymMode()) { new org.aspectj.ajdt.internal.core.builder.EmacsStructureModelManager().externalizeModel(); } + + // for bug 113554: support ajsym file generation for command line builds + if (buildConfig.isGenerateCrossRefsMode()) { + String configFileProxy = buildConfig.getOutputDir().getAbsolutePath() + + File.separator + + CROSSREFS_FILE_NAME; + AsmManager.getDefault().writeStructureModel(configFileProxy); + } + // have to tell state we succeeded or next is not incremental state.successfulCompile(buildConfig,batch); diff --git a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjCompilerOptions.java b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjCompilerOptions.java index 2e1196b3a..7481b4ffc 100644 --- a/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjCompilerOptions.java +++ b/org.aspectj.ajdt.core/src/org/aspectj/ajdt/internal/core/builder/AjCompilerOptions.java @@ -79,6 +79,12 @@ public class AjCompilerOptions extends CompilerOptions { public boolean generateEmacsSymFiles = false; public boolean noAtAspectJProcessing = false; + /** + * Generates a map of cross references based on information + * in the structure model. + */ + public boolean generateCrossRefs = false; + public boolean proceedOnError = false; |