> Are you using IntelliJ? Yes
> I'll post my command line script, if that might help? ok Frédéric THOMAS ---------------------------------------- > From: e...@ixsoftware.nl > Date: Thu, 2 Jul 2015 17:33:12 +0200 > Subject: Re: [2/2] git commit: [flex-falcon] [refs/heads/develop] - GCC and > externs: add the 'externs.js' files to the SWCs; tell GCC to use those to > prevent renaming > To: dev@flex.apache.org > > Are you using IntelliJ? > > Then you're on your own :-P > > I'll post my command line script, if that might help? > > EdB > > > > On Thu, Jul 2, 2015 at 5:31 PM, Frédéric THOMAS <webdoubl...@hotmail.com> > wrote: > >> >>> This commit makes the 'release' version of Fred's excellent example work >>> (with warnings). Don't forget to rebuild the 'jquery' externs SWC, as it >>> needs to pick up the JS file. >> >> I rebuilt falcon, the externs, the project and I still have >> Uncaught ReferenceError: Main is not defined >> with js-release, what did I miss ? >> >> Thanks, >> Frédéric THOMAS >> >> >> ---------------------------------------- >>> From: erikdebr...@apache.org >>> Date: Thu, 2 Jul 2015 15:19:13 +0200 >>> Subject: Re: [2/2] git commit: [flex-falcon] [refs/heads/develop] - GCC >> and externs: add the 'externs.js' files to the SWCs; tell GCC to use those >> to prevent renaming >>> To: dev@flex.apache.org >>> >>> This commit makes the 'release' version of Fred's excellent example work >>> (with warnings). Don't forget to rebuild the 'jquery' externs SWC, as it >>> needs to pick up the JS file. >>> >>> Looking further into those warnings. >>> >>> EdB >>> >>> >>> >>> On Thu, Jul 2, 2015 at 3:13 PM, <erikdebr...@apache.org> wrote: >>> >>>> GCC and externs: add the 'externs.js' files to the SWCs; tell GCC to use >>>> those to prevent renaming >>>> >>>> We've worked so hard to create AS classes from the Closure externs, >> let's >>>> not forget what these were originally intended for... and what we need >> them >>>> for: prevent renaming of externally declared functions. We needed to >>>> include the original extern files in their respective SWCs so we can >> later >>>> present them to the GCC. >>>> >>>> Signed-off-by: Erik de Bruin <e...@ixsoftware.nl> >>>> >>>> >>>> Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo >>>> Commit: >> http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/1f35e526 >>>> Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/1f35e526 >>>> Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/1f35e526 >>>> >>>> Branch: refs/heads/develop >>>> Commit: 1f35e5260e580b8b40f95551f383a362c2474edd >>>> Parents: e425a86 >>>> Author: Erik de Bruin <e...@ixsoftware.nl> >>>> Authored: Thu Jul 2 15:12:50 2015 +0200 >>>> Committer: Erik de Bruin <e...@ixsoftware.nl> >>>> Committed: Thu Jul 2 15:12:50 2015 +0200 >>>> >>>> ---------------------------------------------------------------------- >>>> .../mxml/flexjs/MXMLFlexJSPublisher.java | 43 +++++++++++++++++++- >>>> externs/jasmine/compile-config.xml | 5 +++ >>>> externs/jquery/compile-config.xml | 5 +++ >>>> 3 files changed, 51 insertions(+), 2 deletions(-) >>>> ---------------------------------------------------------------------- >>>> >>>> >>>> >>>> >> http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/1f35e526/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 1d6c7aa..cf3869b 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 >>>> @@ -22,7 +22,9 @@ import java.io.BufferedReader; >>>> import java.io.File; >>>> import java.io.FileInputStream; >>>> import java.io.IOException; >>>> +import java.io.InputStream; >>>> import java.io.InputStreamReader; >>>> +import java.io.OutputStream; >>>> import java.net.URL; >>>> import java.util.ArrayList; >>>> import java.util.Collection; >>>> @@ -49,6 +51,8 @@ import >>>> org.apache.flex.compiler.internal.driver.js.goog.JSGoogConfiguration; >>>> import org.apache.flex.compiler.internal.graph.GoogDepsWriter; >>>> import org.apache.flex.compiler.internal.projects.FlexJSProject; >>>> import org.apache.flex.compiler.utils.JSClosureCompilerWrapper; >>>> +import org.apache.flex.swc.ISWC; >>>> +import org.apache.flex.swc.ISWCFileEntry; >>>> >>>> public class MXMLFlexJSPublisher extends JSGoogPublisher implements >>>> IJSPublisher >>>> { >>>> @@ -57,6 +61,8 @@ public class MXMLFlexJSPublisher extends >> JSGoogPublisher >>>> implements IJSPublisher >>>> public static final String FLEXJS_INTERMEDIATE_DIR_NAME = "js-debug"; >>>> public static final String FLEXJS_RELEASE_DIR_NAME = "js-release"; >>>> >>>> + private static final String FLEXJS_EXTERNS = "externs"; >>>> + >>>> class DependencyRecord >>>> { >>>> String path; >>>> @@ -278,8 +284,41 @@ public class MXMLFlexJSPublisher extends >>>> JSGoogPublisher implements IJSPublisher >>>> >>>> JSClosureCompilerWrapper compilerWrapper = new >>>> JSClosureCompilerWrapper(); >>>> >>>> - GoogDepsWriter gdw = new GoogDepsWriter(intermediateDir, >>>> projectName, (JSGoogConfiguration) configuration, >>>> - project.getLibraries()); >>>> + List<ISWC> swcs = project.getLibraries(); >>>> + >>>> + // (erikdebruin) We don't want to forget that we need to tell the >>>> GCC >>>> + // 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); >>>> + } >>>> + } >>>> + >>>> + GoogDepsWriter gdw = new GoogDepsWriter(intermediateDir, >>>> projectName, (JSGoogConfiguration) configuration, swcs); >>>> StringBuilder depsFileData = new StringBuilder(); >>>> try >>>> { >>>> >>>> >>>> >> http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/1f35e526/externs/jasmine/compile-config.xml >>>> ---------------------------------------------------------------------- >>>> diff --git a/externs/jasmine/compile-config.xml >>>> b/externs/jasmine/compile-config.xml >>>> index abf867e..2af1e2a 100644 >>>> --- a/externs/jasmine/compile-config.xml >>>> +++ b/externs/jasmine/compile-config.xml >>>> @@ -67,6 +67,11 @@ >>>> <path-element>out/as/functions</path-element> >>>> </include-sources> >>>> >>>> + <include-file> >>>> + <name>externs/jasmine-2.0.js</name> >>>> + <path>externs/jasmine-2.0.js</path> >>>> + </include-file> >>>> + >>>> <!-- >>>> <include-file> >>>> <name>defaults.css</name> >>>> >>>> >>>> >> http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/1f35e526/externs/jquery/compile-config.xml >>>> ---------------------------------------------------------------------- >>>> diff --git a/externs/jquery/compile-config.xml >>>> b/externs/jquery/compile-config.xml >>>> index c0c7f34..3ff4f10 100644 >>>> --- a/externs/jquery/compile-config.xml >>>> +++ b/externs/jquery/compile-config.xml >>>> @@ -71,6 +71,11 @@ >>>> <path-element>out/as/functions</path-element> >>>> </include-sources> >>>> >>>> + <include-file> >>>> + <name>externs/jquery-1.9.js</name> >>>> + <path>externs/jquery-1.9.js</path> >>>> + </include-file> >>>> + >>>> <!-- >>>> <include-file> >>>> <name>defaults.css</name> >>>> >>>> >> >> > > > > -- > Ix Multimedia Software > > Jan Luykenstraat 27 > 3521 VB Utrecht > > T. 06-51952295 > I. www.ixsoftware.nl