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);
+
 }