IntelliJ12 - Which version of ActionScript Compiler 2.0 is used?

Hi,

I have a pure Actionscript project and enabled the "Prefer ActionScript Compiler 2.0 ..." setting. However, when I set "-advanced-telemetry=true" in the "Additional compiler options" I get an error:

[away3d-examples-fp11 - Intermediate_MD5Animation]: command line: unknown configuration variable 'advanced-telemetry'

Full command line below.

The same option works when using Adobe's latest mxmlc compiler directly.

Any ideas how to get this working?

Thanks,
Peter

---

[away3d-examples-fp11 - Intermediate_MD5Animation]: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java -d32 -Dapplication.home=/Applications/flex-sdk/flex_sdk_4.6.0.23201B -Xmx384m -Dsun.io.useCanonCaches=false -Dfile.encoding=UTF-8 -Djava.awt.headless=true -Duser.language=en -Duser.region=en -Xmx512m -classpath /Applications/IntelliJ IDEA 12.app/plugins/flex/lib/idea-flex-compiler-fix.jar:/Applications/flex-sdk/flex_sdk_4.6.0.23201B/lib/compc.jar flex2.tools.Mxmlc -load-config=/private/var/folders/R0/R098OWogHsOo-+ovbfapIbEWmac/-Tmp-/IntelliJ_IDEA/idea-EB3CD26B-F48E3040-Intermediate_MD5Animation.xml -advanced-telemetry=true

0
14 comments

Original installation of the Flex SDK 4.6.0.23201B does not include ActionScript Compiler 2.0. That's why IntelliJ IDEA starts legacy mxmlc compiler that doesn't understand -advanced-telemetry option. You need to download AIR SDK that includes ASC 2.0 and unpack it on top of existing Flex SDK instalation (on Mac do not use Finder for copying - it will delete important files, use command line ditto air_sdk_installation flex_sdk_installation).

0

I have the same problem, Intellij 12 is using mxmlc Version 4.6.0 build 23201 instead of the new one.  I did overwrite with the lastest AIR 3.5 + ASC 2.0 SDK.

c:\program files (x86)\jetbrains\intellij idea 12.0.1\jre\jre\bin\java.exe -Dapplication.home=C:\FlexSDK\4.6+Air_3.5+ASC2 -Xmx384m -Dsun.io.useCanonCaches=false -Dfile.encoding=UTF-8 -Djava.awt.headless=true -Duser.language=en -Duser.region=en -Xmx512m -classpath C:\Program Files (x86)\JetBrains\IntelliJ IDEA 12.0.1\plugins\flex\lib\idea-flex-compiler-fix.jar;C:\FlexSDK\4.6+Air_3.5+ASC2\lib\compc.jar flex2.tools.Mxmlc -load-config=C:\Users\fvidal\AppData\Local\Temp\IntelliJ_IDEA\idea-9F47A90F-D8E626E0.xml -advanced-telemetry=true

0

Francis, please make sure that you have 'Prefer ActionScript Compiler 2.0' option checked at Settings | Compiler | Flex Com piler page.

0

I do have 'Prefer ActionScript Compiler 2.0' option checked.  The called compiler is still lib/compc.jar, not lib/compc-cli.jar, which is the new one.  If you go by the command line, the old one is bin/compc.exe, the new one is bin/compc.bat, that call lib/compc-cli.jar.

0

That's strange. As far as I remember IntelliJ IDEA checks [Flex SDK]/lib/compc-cli.jar file presence to make choice between legacy compiler and ASC 2.0. I'll be able to check that in a week when come back from vacation.

0

I checked once again and ASC 2.0 works for me as expected. If build configuration is marked as Pure AS and  [Flex SDK]/lib/compiler.jar file exists then ASC 2.0 is used for compilation.

0

Lucky you!

Here on Windows 7 x64, with Intellij 12.01, SDK 4.6 + Air and ASC 2.0 from the Adobe Gaming SDK 1.0, and still no luck.

Pure ActionScript in project is selected, compiler.jar is in the bin folder (but isn't it compiler-cli.jar the new one?). In the compiler options, "Compile with" Mxmlc/compc and "Prefer ActionScript 2.0..." are selected.  See images below.

The message from the compiler:

[TestSwf (module TestVideoIpad)]: c:\program files (x86)\jetbrains\intellij idea 12.0.1\jre\jre\bin\java.exe -Dapplication.home=C:\FlexSDK\4.6+Air_3.5+ASC2 -Xmx384m -Dsun.io.useCanonCaches=false -Dfile.encoding=UTF-8 -Djava.awt.headless=true -Duser.language=en -Duser.region=en -Xmx512m -classpath C:\Program Files (x86)\JetBrains\IntelliJ IDEA 12.0.1\plugins\flex\lib\idea-flex-compiler-fix.jar;C:\FlexSDK\4.6+Air_3.5+ASC2\lib\compc.jar flex2.tools.Mxmlc -load-config=C:\Users\fvidal\AppData\Local\Temp\IntelliJ_IDEA\idea-BC74867D-71D9BEFD.xml -advanced-telemetry=true -debug=true -locale=en_US -target-player=11.5 -swf-version=18 -static-link-runtime-shared-libraries=true -use-network=false
[TestSwf (module TestVideoIpad)]: Adobe Flex Compiler (mxmlc)
[TestSwf (module TestVideoIpad)]: Version 4.6.0 build 23201
[TestSwf (module TestVideoIpad)]: Copyright (c) 2004-2011 Adobe Systems, Inc. All rights reserved.
[TestSwf (module TestVideoIpad)]: Use 'mxmlc -help' for information about using the command line.
[TestSwf (module TestVideoIpad)]: Compilation failed
Compilation completed with 1 error and 0 warnings in 1 sec
1 error
0 warnings
[TestSwf (module TestVideoIpad)]: command line: unknown configuration variable 'advanced-telemetry'

What else should I check?

Compiler.jpg

buildConfig.jpg

dependencies.jpg
Flex.jpg

0

First, some comments about your Additional compiler options. You may leave only -advanced-telemetry and  -use-network there because:

  • -debug is set in the table at Compiler Options tab ('Generate debuggable SWF' or 'Generate debuggable SWC')
  • -locale is set there as well
  • -target-player is set in the combo box at Dependencies tab
  • -swf-version is set automatically according to the target player selected in the combo
  • -static-link-runtime-shared-libraries=true is equivalent to setting Framework linkage to Merged at Dependencies tab

You can check compiler options in the config file (C:\Users\fvidal\AppData\Local\Temp\IntelliJ_IDEA\idea-BC74867D-71D9BEFD.xml) that is generated according to the UI settings. Additional compiler options may override them or append new values and this may lead to unexpected results in some cases. Probably in your case Additional compiler options do not clash with UI settings, but anyway recommended practice is to use UI settings when available.

As for ASC 2.0 - please try is to disable 'Use external build' at Settings | Compiler. If after that ASC 2.0 starts working please attach <IntelliJ IDEA system folder>/compile-server/server.log (if it contains sensitive data you may send is to me directly to alexander dot doroshko at jetbrains dot com).

0

Francis, any luck with  'Use external build' off?

0

Hi Alex,

Yes!  It start working, thanks a lot!

Sorry for the delay, I wasn't at the office in the last days.

Still got some issue, but I'm not sure you can do anything about it.

1) The compiler constant are not working (-define=CONFIG::debug) and cause the compiler to crash.  I found this about the issue : http://forums.adobe.com/thread/1072370?tstart=0

2) In the config file (C:\Users\fvidal\AppData\Local\Temp\IntelliJ_IDEA\...), the value of <static-link-runtime-shared-libraries> is set to false even if in dependencies the SDK is set to merge.

The log is coming by email.

Thanks again

Francis

0

Thank you, I'll continue discussion via email regarding ASC 2.0 in external compiler mode.

As for the new issues:
1) Indeed, the issue doesn't seem to be related to the IDE. All you can do is to try to set conditional compiler definitions in different places: in the table at Compiler Options tab, in Additional compiler configuration file or as Additional compiler options.
2) The value of <static-link-runtime-shared-libraries> in config file doesn't matter if there are no <runtime-shared-library-path> elements. And <runtime-shared-library-path> presence is controlled by the 'Framework linkage' combo.

0

I decided to answer here. Thanks to your logs, a bug in IntelliJ IDEA is found: option 'Prefer ActionScript Compiler 2.0' and  project-level compiler options are not  respected in external compiler mode if the project is stored in *.ipr  file format. Workaround is to uncheck 'Use external build' at Settings/Preferences | Compiler. Will fix for the next IntelliJ IDEA update release, tracked as IDEA-99359.

0

Hi Alex,

I remove all reference in my code and in compiler options to compilation constants, and still got the error message: Can not resolve config constant: 'debug'.

Any idea?

Francis

0

I'm sure that config constant is still somewhere.

0

Please sign in to leave a comment.