use externs from swcs in GCC compile

Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/31aad75a
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/31aad75a
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/31aad75a

Branch: refs/heads/develop
Commit: 31aad75ae90370627d6aac30b5d33e2fdd5b5b8d
Parents: 808fd16
Author: Alex Harui <[email protected]>
Authored: Wed Dec 9 13:35:11 2015 -0800
Committer: Alex Harui <[email protected]>
Committed: Wed Dec 9 13:35:11 2015 -0800

----------------------------------------------------------------------
 .../mxml/flexjs/MXMLFlexJSPublisher.java        | 56 +++++++++++---------
 1 file changed, 30 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/31aad75a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSPublisher.java
----------------------------------------------------------------------
diff --git 
a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSPublisher.java
 
b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSPublisher.java
index 0f7e54d..1cf3855 100644
--- 
a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSPublisher.java
+++ 
b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSPublisher.java
@@ -30,6 +30,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Comparator;
 import java.util.List;
+import java.util.Map;
 
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.FilenameUtils;
@@ -295,32 +296,35 @@ public class MXMLFlexJSPublisher extends JSGoogPublisher 
implements IJSPublisher
         //               about them fancy externs we've been working so hard on
         for (ISWC swc : swcs)
         {
-            String srcName = swc.getSWCFile().getName().replace(".swc", ".js");
-            String srcPath = FLEXJS_EXTERNS + File.separator + srcName;
-
-            ISWCFileEntry fileEntry = swc.getFile(FLEXJS_EXTERNS + 
File.separator + srcName);
-            if (fileEntry != null)
-            {
-                File destFile = new File(intermediateDirPath + File.separator 
+ srcPath);
-
-                InputStream inStream = fileEntry.createInputStream();
-                OutputStream outStream = FileUtils.openOutputStream(destFile);
-                byte[] b = new byte[1024 * 1024];
-                int bytes_read;
-                while ((bytes_read = inStream.read(b)) != -1)
-                {
-                    outStream.write(b, 0, bytes_read);
-                }
-                outStream.flush();
-                outStream.close();
-                inStream.close();
-
-                String destPath = destFile.getAbsolutePath();
-
-                System.out.println("using extern: " + destPath);
-
-                compilerWrapper.addJSExternsFile(destPath);
-            }
+               Map<String, ISWCFileEntry> files = swc.getFiles();
+               for (String key : files.keySet())
+               {
+                       if (key.startsWith(FLEXJS_EXTERNS))
+                       {
+                    ISWCFileEntry fileEntry = swc.getFile(key);
+                    if (fileEntry != null)
+                    {
+                        File destFile = new File(intermediateDirPath + 
File.separator + key);
+                        InputStream inStream = fileEntry.createInputStream();
+                        OutputStream outStream = 
FileUtils.openOutputStream(destFile);
+                        byte[] b = new byte[1024 * 1024];
+                        int bytes_read;
+                        while ((bytes_read = inStream.read(b)) != -1)
+                        {
+                            outStream.write(b, 0, bytes_read);
+                        }
+                        outStream.flush();
+                        outStream.close();
+                        inStream.close();
+
+                        String destPath = destFile.getAbsolutePath();
+
+                        System.out.println("using extern: " + destPath);
+
+                        compilerWrapper.addJSExternsFile(destPath);
+                    }
+                       }
+               }
         }
 
         GoogDepsWriter gdw = new GoogDepsWriter(intermediateDir, projectName, 
(JSGoogConfiguration) configuration, swcs);

Reply via email to