You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by jo...@apache.org on 2018/11/12 19:08:02 UTC
[royale-compiler] branch develop updated: compiler.jx: if
source-map compiler option is specified,
GoogDepsWriter copies source map files out of SWCs, if they exist
This is an automated email from the ASF dual-hosted git repository.
joshtynjala pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-compiler.git
The following commit(s) were added to refs/heads/develop by this push:
new 432f44b compiler.jx: if source-map compiler option is specified, GoogDepsWriter copies source map files out of SWCs, if they exist
432f44b is described below
commit 432f44b57a16e6ca59adc854a5d0ab1ac3247596
Author: Josh Tynjala <jo...@apache.org>
AuthorDate: Mon Nov 12 11:07:16 2018 -0800
compiler.jx: if source-map compiler option is specified, GoogDepsWriter copies source map files out of SWCs, if they exist
---
.../compiler/internal/graph/GoogDepsWriter.java | 110 ++++++++++++++-------
1 file changed, 76 insertions(+), 34 deletions(-)
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/graph/GoogDepsWriter.java b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/graph/GoogDepsWriter.java
index b538f13..c9422f3 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/graph/GoogDepsWriter.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/graph/GoogDepsWriter.java
@@ -64,6 +64,7 @@ public class GoogDepsWriter {
this.moduleOutput = config.getModuleOutput();
this.mainName = mainClassName;
removeCirculars = config.getRemoveCirculars();
+ sourceMaps = config.getSourceMap();
otherPaths = config.getSDKJSLib();
otherPaths.add(new File(outputFolder.getParent(), "royale/Royale/src").getPath());
this.swcs = swcs;
@@ -81,6 +82,7 @@ public class GoogDepsWriter {
private List<String> sourceExternFiles;
private List<ISWC> swcs;
private boolean removeCirculars = false;
+ private boolean sourceMaps = false;
private ArrayList<GoogDep> dps;
private DependencyGraph graph;
private CompilerProject project;
@@ -417,18 +419,22 @@ public class GoogDepsWriter {
fileLines = Files.readLines(mainFile, Charset.defaultCharset());
SourceMapConsumerV3 sourceMapConsumer = null;
- File sourceMapFile = new File(main.filePath + ".map");
- if (sourceMapFile.exists())
+ File sourceMapFile = null;
+ if (sourceMaps)
{
- String sourceMapContents = FileUtils.readFileToString(sourceMapFile);
- sourceMapConsumer = new SourceMapConsumerV3();
- try
+ sourceMapFile = new File(main.filePath + ".map");
+ if (sourceMapFile.exists())
{
- sourceMapConsumer.parse(sourceMapContents);
- }
- catch(SourceMapParseException e)
- {
- sourceMapConsumer = null;
+ String sourceMapContents = FileUtils.readFileToString(sourceMapFile);
+ sourceMapConsumer = new SourceMapConsumerV3();
+ try
+ {
+ sourceMapConsumer.parse(sourceMapContents);
+ }
+ catch(SourceMapParseException e)
+ {
+ sourceMapConsumer = null;
+ }
}
}
@@ -520,18 +526,22 @@ public class GoogDepsWriter {
ArrayList<String> finalLines = new ArrayList<String>();
SourceMapConsumerV3 sourceMapConsumer = null;
- File sourceMapFile = new File(gd.filePath + ".map");
- if (sourceMapFile.exists())
+ File sourceMapFile = null;
+ if (sourceMaps)
{
- String sourceMapContents = FileUtils.readFileToString(sourceMapFile);
- sourceMapConsumer = new SourceMapConsumerV3();
- try
- {
- sourceMapConsumer.parse(sourceMapContents);
- }
- catch(SourceMapParseException e)
+ sourceMapFile = new File(gd.filePath + ".map");
+ if (sourceMapFile.exists())
{
- sourceMapConsumer = null;
+ String sourceMapContents = FileUtils.readFileToString(sourceMapFile);
+ sourceMapConsumer = new SourceMapConsumerV3();
+ try
+ {
+ sourceMapConsumer.parse(sourceMapContents);
+ }
+ catch(SourceMapParseException e)
+ {
+ sourceMapConsumer = null;
+ }
}
}
@@ -1092,21 +1102,9 @@ public class GoogDepsWriter {
}
}
- String fwdClassPath = className.replace(".", "/");
- String bckClassPath = className.replace(".", "\\");
for (ISWC swc : swcs)
{
- ISWCFileEntry fileEntry = swc.getFile("js/src/" + fwdClassPath + ".js");
- if (fileEntry == null)
- fileEntry = swc.getFile("js/out/" + fwdClassPath + ".js");
- if (fileEntry == null)
- fileEntry = swc.getFile("js/src/" + bckClassPath + ".js");
- if (fileEntry == null)
- fileEntry = swc.getFile("js/out/" + bckClassPath + ".js");
- if (fileEntry == null)
- fileEntry = swc.getFile("js\\src\\" + bckClassPath + ".js");
- if (fileEntry == null)
- fileEntry = swc.getFile("js\\out\\" + bckClassPath + ".js");
+ ISWCFileEntry fileEntry = getFileEntry(swc, className);
if (fileEntry != null)
{
fn = outputFolderPath + File.separator + classPath + ".js";
@@ -1123,7 +1121,28 @@ public class GoogDepsWriter {
}
outStream.flush();
outStream.close();
- inStream.close();
+ inStream.close();
+
+ //if source maps requested, copy from the swc, if available
+ if (sourceMaps)
+ {
+ ISWCFileEntry sourceMapFileEntry = getFileEntry(swc, className, ".js.map");
+ if (sourceMapFileEntry != null)
+ {
+ String sourceMapFn = outputFolderPath + File.separator + classPath + ".js.map";
+ File sourceMapDestFile = new File(sourceMapFn);
+ inStream = sourceMapFileEntry.createInputStream();
+ outStream = FileUtils.openOutputStream(sourceMapDestFile);
+ b = new byte[1024 * 1024];
+ while ((bytes_read = inStream.read(b)) != -1)
+ {
+ outStream.write(b, 0, bytes_read);
+ }
+ outStream.flush();
+ outStream.close();
+ inStream.close();
+ }
+ }
// (erikdebruin) copy class assets files
if (className.contains("org.apache.royale"))
@@ -1165,6 +1184,29 @@ public class GoogDepsWriter {
problems.add(new FileNotFoundProblem(className));
return "";
}
+
+ private ISWCFileEntry getFileEntry(ISWC swc, String className)
+ {
+ return getFileEntry(swc, className, ".js");
+ }
+
+ private ISWCFileEntry getFileEntry(ISWC swc, String className, String extension)
+ {
+ String fwdClassPath = className.replace(".", "/");
+ String bckClassPath = className.replace(".", "\\");
+ ISWCFileEntry fileEntry = swc.getFile("js/src/" + fwdClassPath + extension);
+ if (fileEntry == null)
+ fileEntry = swc.getFile("js/out/" + fwdClassPath + extension);
+ if (fileEntry == null)
+ fileEntry = swc.getFile("js/src/" + bckClassPath + extension);
+ if (fileEntry == null)
+ fileEntry = swc.getFile("js/out/" + bckClassPath + extension);
+ if (fileEntry == null)
+ fileEntry = swc.getFile("js\\src\\" + bckClassPath + extension);
+ if (fileEntry == null)
+ fileEntry = swc.getFile("js\\out\\" + bckClassPath + extension);
+ return fileEntry;
+ }
/*
private ArrayList<String> getDirectDependencies(String fn)