flex-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dave Taylor <adv...@gmail.com>
Subject Re: Newb making mxmlc unhappy: -define's not going through
Date Tue, 22 Nov 2016 00:43:33 GMT
I think you’re right.  I’m now quoting the strings but not the booleans and numbers, and
it seems happier, or at least onto new errors to explore.  Thanks for the help, Josh!

	=-ddt->

> On Nov 21, 2016, at 4:02 PM, Josh Tynjala <joshtynjala@gmail.com> wrote:
> 
> With all that in mind, I think it's your URLs that are causing the error
> with the colon:
> 
> -define=CONFIG::PAYMENTSERVER_URL,https://payment.redacted.com:8081
> 
> They should probably be something like this:
> 
> -define=CONFIG::PAYMENTSERVER_URL,"\"https://payment.redacted.com:8081\""
> 
> Basically, anything that isn't a boolean or a number probably needs to be
> quoted like this.
> 
> - Josh
> 
> On Mon, Nov 21, 2016 at 3:54 PM, Josh Tynjala <joshtynjala@gmail.com> wrote:
> 
>> Actually, I was mistaken. To define a string constant, it needs to be in
>> one of the following formats:
>> 
>> -define=CONFIG::GAME_NAME,"'A Name With Spaces In It'"
>> 
>> -define=CONFIG::GAME_NAME,"\"A Name With Spaces In It\""
>> 
>> Notice that, in both cases, there are two sets of quotes. This may seem a
>> little weird, but it's because conditional compilation can evaluate simple
>> expressions, and expressions must be wrapped in quotes. That leaves strings
>> needing two sets of quotes to differentiate.
>> 
>> Source:
>> 
>> http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0b
>> f69084-7abd.html
>> 
>> I'm still pretty sure that you can omit your special bash quotes entirely
>> for this option. If they were required for string constants with spaces,
>> the examples in Adobe's documentation would have included them.
>> 
>> - Josh
>> 
>> On Mon, Nov 21, 2016 at 3:35 PM, Dave Taylor <advice@gmail.com> wrote:
>> 
>>> What the quote does in bash is submit everything from -define to It as a
>>> single argument to mxmlc without the quotes, whether or not it’s put after
>>> the comma or before the -define.  For example:
>>> 
>>> % foo='hi,josh- how goes it'
>>> % echo [${foo}]
>>> [hi,josh- how goes it]
>>> 
>>> % foo=hi,'josh- how goes it'
>>> % echo [${foo}]
>>> [hi,josh- how goes it]
>>> 
>>> % foo='hi,"josh- how goes it"'
>>> % echo [${foo}]
>>> [hi,"josh- how goes it”]
>>> 
>>> % foo=“hi,'josh- how goes it'"
>>> % echo [${foo}]
>>> [hi,'josh- how goes it']
>>> 
>>>        =-ddt->
>>> 
>>>> On Nov 21, 2016, at 3:00 PM, Josh Tynjala <joshtynjala@gmail.com>
>>> wrote:
>>>> 
>>>> Why are you leaving the quote before -define? I meant that it was in the
>>>> wrong place, so it should be removed from the start and put after the
>>> comma.
>>>> 
>>>> -define=CONFIG::GAME_NAME,'A Name With Spaces In It'
>>>> 
>>>> - Josh
>>>> 
>>>> On Mon, Nov 21, 2016 at 2:46 PM, Dave Taylor <advice@gmail.com> wrote:
>>>> 
>>>>> That wouldn't change what mxmlc would see from the command line in
>>> bash.
>>>>> However, in the spirit of your suggestion, I’ve also tried:
>>>>> 
>>>>> '-define=CONFIG::GAME_NAME,"A Name With Spaces In It”'
>>>>> 
>>>>> and
>>>>> 
>>>>> "-define=CONFIG::GAME_NAME,'A Name With Spaces In It’"
>>>>> 
>>>>> There’s no difference in behaviour.
>>>>> 
>>>>> Keep in mind, it’s not even registering that CONFIG::AIR is set to
>>> true,
>>>>> nor is it complaining about my command line format.
>>>>> 
>>>>>       =-ddt->
>>>>> 
>>>>>> On Nov 21, 2016, at 2:31 PM, Josh Tynjala <joshtynjala@gmail.com>
>>> wrote:
>>>>>> 
>>>>>>> '-define=CONFIG::GAME_NAME,A Name With Spaces In It'
>>>>>> 
>>>>>> I suspect that the opening single quote should be in a different
>>>>> location..
>>>>>> Try putting it after the comma.
>>>>>> 
>>>>>> - Josh
>>>>>> 
>>>>>> On Mon, Nov 21, 2016 at 2:22 PM, Dave Taylor <ddt@davetaylor.name>
>>>>> wrote:
>>>>>> 
>>>>>>> Hi, my name’s Dave.  This will likely sound backwards, but
I’m
>>> migrating
>>>>>>> an Air game with a node/js back-end from a heavier
>>>>> Jenkins/hudson/ant/svn
>>>>>>> build process to a lighter-weight bash/git process in order to
>>>>> streamline
>>>>>>> devops for a small team managing multiple game forks.  I’m
a Jenkins,
>>>>> ant,
>>>>>>> hudson, ActionScript, and java newb, but I’m learning as fast
as I
>>> can.
>>>>>>> Thanks in advance for your patience!
>>>>>>> 
>>>>>>> I’m hitting some really hard to understand behaviour from the
mxmlc
>>>>>>> compiler that makes me think I am passing it arguments in a violently
>>>>> bad
>>>>>>> way.  It seems that my -define arguments on the command line
are not
>>>>>>> surviving the transition to source.  It’s spitting out a ton
of
>>> errors
>>>>>>> about how CONFIG::THIS or CONFIG::THAT is not defined when it
gets to
>>>>> their
>>>>>>> use in various parts of the source code, but I’m starting to
think
>>> that
>>>>>>> might be a side-effect of a deeper issue I’m not understanding,
>>> because
>>>>> I’m
>>>>>>> also getting this error:
>>>>>>> 
>>>>>>> /Users/davetaylor/ddt/redacted/wf/redacted/clients/build/config.as:1
>>>>>>> Syntax error: ':' is not allowed here
>>>>>>> 
>>>>>>> There is no config.as file in that directory.  There is a CONFIG.as
>>>>> file
>>>>>>> in a completely different directory, but there is no colon anywhere
>>> in
>>>>> it.
>>>>>>> The only thing in it is “package { public namespace CONFIG
; }”
>>> spaced
>>>>> over
>>>>>>> about 4 lines.  I can remove that other CONFIG.as file with no
>>> effect on
>>>>>>> the behaviour.  I’ve also tried watching that build directory
to see
>>>>>>> whether mxmlc generates a config.as file.  If it does, its lifespan
>>> is
>>>>>>> less than one second, because I don’t see it appear.
>>>>>>> 
>>>>>>> I am also getting a couple of Internal Errors that look like
this:
>>>>>>> 
>>>>>>> /Users/davetaylor/ddt/redacted/wf/redacted/src/
>>>>>>> client-flash/as/AppConstants.as:115
>>>>>>> Internal error: Unable to generate code for '?'
>>>>>>>                  case "dev":
>>>>>>>                  ^
>>>>>>> 
>>>>>>> It’s the first case of a pretty mundane switch statement. 
It doesn’t
>>>>>>> complain about other case statements in that switch, and it hasn’t
>>>>> changed
>>>>>>> from the one that the Jenkins/ant-driven mxmlc compiles successfully.
>>>>> The
>>>>>>> fact that it’s an “internal error” along with that previous
error
>>> about
>>>>> the
>>>>>>> file that doesn’t exist is what makes me think I’ve done
something
>>>>>>> particularly awful to put mxmlc in something of a state.
>>>>>>> 
>>>>>>> I’ve tried to very meticulously copy the ant-based mxmlc parameters
>>> to
>>>>> the
>>>>>>> bash mxmlc command line, which currently looks like this:
>>>>>>> 
>>>>>>> ../../servers/jenkins/flex_sdk_4.6/bin/mxmlc -target-player=28
>>>>>>> -swf-version=29 -compiler.debug=false -compiler.actionscript-file-
>>>>> encoding=UTF-8
>>>>>>> -compiler.show-actionscript-warnings=true -compiler.strict=true
>>>>>>> -incremental=true -keep-generated-actionscript=false -output
>>>>>>> ../android/redacted-73ef2/redacted.swf -use-network=true
>>>>>>> -compiler.as3=true -compiler.optimize=true
>>> -static-link-runtime-shared-
>>>>> libraries=true
>>>>>>> -compiler.external-library-path+=../../servers/jenkins/
>>>>>>> flex_sdk_4.6/frameworks/libs/air/airglobal.swc
>>>>>>> -compiler.library-path+=../../src/client-flash/lib
>>>>>>> -load-config+=../../servers/jenkins/flex_sdk_4.6/
>>>>> frameworks/air-config.xml
>>>>>>> -compiler.source-path+=../../src/client-flash/as
>>>>>>> -compiler.source-path+=../android/generated -default-size 1024
768
>>>>>>> -define=CONFIG::BUILD_ENV,env -define=CONFIG::GAME,redacted
>>>>>>> '-define=CONFIG::GAME_NAME,A Name With Spaces In It'
>>>>>>> -define=CONFIG::LOADBALANCER_IP,0.0.0.0
>>> -define=CONFIG::LOADBALANCER_
>>>>> PORT,5222
>>>>>>> -define=CONFIG::FILESERVER_URL,http://0.0.0.0
>>>>> -define=CONFIG::FILESERVER_PORT,8082
>>>>>>> -define=CONFIG::CHATSERVER_IP,0.0.0.0 -define=CONFIG::CHATSERVER_
>>>>> PORT,5223
>>>>>>> -define=CONFIG::PAYMENTSERVER_PORT,8081
>>> -define=CONFIG::PAYMENTSERVER_
>>>>> URL,
>>>>>>> https://payment.redacted.com:8081 -define=CONFIG::BUILD_PLATFORM
>>> ,phone
>>>>>>> -define=CONFIG::AIR,true -define=CONFIG::LOCAL_MODE,false
>>>>>>> -define=CONFIG::SAFE_VALUES_ENABLE,true
>>> -define=CONFIG::ENCODE_REMOTE,
>>>>> true
>>>>>>> -define=CONFIG::ENABLE_ENCODED_DESCRIPTIONS,false
>>>>>>> -define=CONFIG::ENABLE_CRASH_APP_ON_CHEAT,true
>>>>> ../../src/client-flash/as/
>>>>>>> MainClass.as
>>>>>>> 
>>>>>>> I’ve attached the full error log below.
>>>>>>> 
>>>>>>> I’m using flex 4.6, btw.  I’ve tried running this on both
OSX and
>>>>> Windows
>>>>>>> w/ cygwin, and the errors are identical.
>>>>>>> 
>>>>>>> Any clues as to what might be amiss?  I’ve been banging my
head on
>>> this
>>>>>>> for over half a day, and I’m running out of ideas.
>>>>>>> 
>>>>>>> Thanks so much for your help!  It’s for a fun game featuring
what I
>>>>> think
>>>>>>> might be one of the first Rubenesque female heroes in a game
I’ve
>>> ever
>>>>>>> seen, so noble cause n stuff!  :)
>>>>>>> 
>>>>>>>      =-ddt->
>>>>>>> 
>>>>>>> 
>>>>> 
>>>>> 
>>> 
>>> 
>> 


Mime
View raw message