You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ah...@apache.org on 2018/12/17 07:41:19 UTC
[royale-compiler] 05/07: get link reports to include CSS
dependencies
This is an automated email from the ASF dual-hosted git repository.
aharui pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-compiler.git
commit 35be261afd559d8037b6d098d9c80c738a7ed058
Author: Alex Harui <ah...@apache.org>
AuthorDate: Thu Dec 13 17:24:26 2018 -0800
get link reports to include CSS dependencies
---
.../apache/royale/compiler/internal/targets/JSTarget.java | 2 +-
.../royale/compiler/internal/targets/RoyaleJSTarget.java | 11 +++++++++++
.../compiler/internal/config/RoyaleTargetSettings.java | 10 ++++++++++
.../royale/compiler/internal/projects/RoyaleProject.java | 5 +++++
.../royale/compiler/internal/targets/RoyaleAppSWFTarget.java | 12 ++++++++++++
.../org/apache/royale/compiler/projects/IRoyaleProject.java | 6 ++++++
6 files changed, 45 insertions(+), 1 deletion(-)
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/targets/JSTarget.java b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/targets/JSTarget.java
index 1297aa1..2525bd8 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/targets/JSTarget.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/targets/JSTarget.java
@@ -149,7 +149,7 @@ public class JSTarget extends Target implements IJSTarget
// }
// }
//
- // createLinkReport(problems);
+ createLinkReport(problems);
return application;
}
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/targets/RoyaleJSTarget.java b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/targets/RoyaleJSTarget.java
index 22cddfd..d218b95 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/targets/RoyaleJSTarget.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/targets/RoyaleJSTarget.java
@@ -28,11 +28,14 @@ import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
+import org.apache.royale.compiler.common.DependencyType;
import org.apache.royale.compiler.css.ICSSDocument;
import org.apache.royale.compiler.css.ICSSManager;
import org.apache.royale.compiler.definitions.IDefinition;
import org.apache.royale.compiler.internal.css.semantics.ActivatedStyleSheets;
+import org.apache.royale.compiler.internal.definitions.ClassDefinition;
import org.apache.royale.compiler.internal.driver.js.royale.JSCSSCompilationSession;
+import org.apache.royale.compiler.internal.projects.DependencyGraph;
import org.apache.royale.compiler.internal.projects.RoyaleJSProject;
import org.apache.royale.compiler.internal.units.SWCCompilationUnit;
import org.apache.royale.compiler.problems.FileNotFoundProblem;
@@ -234,6 +237,14 @@ public class RoyaleJSTarget extends JSTarget implements IJSTarget
// If there's more dependencies introduced by CSS, the loop continues.
done = !allCompilationUnitsInTarget.addAll(cssDependencies);
+ if (done)
+ {
+ DependencyGraph graph = royaleProject.getDependencyGraph();
+ for (ICompilationUnit cu : cssDependencies)
+ {
+ graph.addDependency(mainCU, cu, DependencyType.EXPRESSION);
+ }
+ }
}
// add to front so user specified css overrides defaults
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/config/RoyaleTargetSettings.java b/compiler/src/main/java/org/apache/royale/compiler/internal/config/RoyaleTargetSettings.java
index e3d966c..70e34cc 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/config/RoyaleTargetSettings.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/config/RoyaleTargetSettings.java
@@ -72,4 +72,14 @@ public class RoyaleTargetSettings extends TargetSettings
return externalLibraryPath;
}
+
+ @Override
+ public File getLinkReport()
+ {
+ if (project != null)
+ return ((IRoyaleProject)project).getLinkReport(configuration);
+
+ return super.getLinkReport();
+ }
+
}
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/projects/RoyaleProject.java b/compiler/src/main/java/org/apache/royale/compiler/internal/projects/RoyaleProject.java
index e787d6c..14d37b6 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/projects/RoyaleProject.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/projects/RoyaleProject.java
@@ -2520,4 +2520,9 @@ public class RoyaleProject extends ASProject implements IRoyaleProject, ICompile
return false;
}
+ @Override
+ public File getLinkReport(Configuration config) {
+ return config.getLinkReport();
+ }
+
}
diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/targets/RoyaleAppSWFTarget.java b/compiler/src/main/java/org/apache/royale/compiler/internal/targets/RoyaleAppSWFTarget.java
index 06fe9c2..c6ba409 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/targets/RoyaleAppSWFTarget.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/targets/RoyaleAppSWFTarget.java
@@ -47,6 +47,7 @@ import org.apache.royale.abc.semantics.Name;
import org.apache.royale.abc.visitors.IMethodBodyVisitor;
import org.apache.royale.abc.visitors.IMethodVisitor;
import org.apache.royale.abc.visitors.ITraitVisitor;
+import org.apache.royale.compiler.common.DependencyType;
import org.apache.royale.compiler.common.IEmbedResolver;
import org.apache.royale.compiler.config.Configuration;
import org.apache.royale.compiler.config.RSLSettings;
@@ -70,6 +71,7 @@ import org.apache.royale.compiler.internal.css.semantics.CSSSemanticAnalyzer;
import org.apache.royale.compiler.internal.definitions.ClassDefinition;
import org.apache.royale.compiler.internal.definitions.DefinitionBase;
import org.apache.royale.compiler.internal.definitions.NamespaceDefinition;
+import org.apache.royale.compiler.internal.projects.DependencyGraph;
import org.apache.royale.compiler.internal.projects.RoyaleProject;
import org.apache.royale.compiler.internal.scopes.ASProjectScope;
import org.apache.royale.compiler.internal.tree.mxml.MXMLFileNode;
@@ -544,6 +546,16 @@ public class RoyaleAppSWFTarget extends AppSWFTarget
// If there's more dependencies introduced by CSS, the loop continues.
done = !allCompilationUnitsInTarget.addAll(cssDependencies);
+ if (done)
+ {
+ ClassDefinition rootDef = getRootClassDefinition();
+ ICompilationUnit rootClassCompilationUnit = project.getScope().getCompilationUnitForDefinition(rootDef);
+ DependencyGraph graph = royaleProject.getDependencyGraph();
+ for (ICompilationUnit cu : cssDependencies)
+ {
+ graph.addDependency(rootClassCompilationUnit, cu, DependencyType.EXPRESSION);
+ }
+ }
}
delegate.cssCompilationSession.cssDocuments.addAll(activatedStyleSheets.sort());
diff --git a/compiler/src/main/java/org/apache/royale/compiler/projects/IRoyaleProject.java b/compiler/src/main/java/org/apache/royale/compiler/projects/IRoyaleProject.java
index c1c206a..f1a63db 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/projects/IRoyaleProject.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/projects/IRoyaleProject.java
@@ -233,4 +233,10 @@ public interface IRoyaleProject extends IASProject, IXMLNameResolver, IWriteOnly
* List of defined variables so it can be overridden
*/
Map<String, String> getCompilerDefine(Configuration config);
+
+ /**
+ * The File for the link report
+ */
+ File getLinkReport(Configuration config);
+
}