[V4REV] How correctly prepare stack for cross-platform use ?
Robert Brenstein
rjb at robelko.com
Sat Jun 11 17:37:40 EDT 2005
>Hi Revolutioners!
>
>Well, we are almost done with first build of Valentina for Revolution,
>And I have meet next problem.
>
>Ivan have prepare about 50 examples working on Windows.
>So each example show in the window "Stack Properties" some win dll path.
>
>It is easy to see that such stack do not work on MAC from box.
>When I set external to our V4REV_Macho, this NOT add second line into list
>of externals but erase info about Windows dll.
>
>So I wonder:
>
>1) if is possible to prepare stack which from box will work on MacOS and
>Windows? I.e. It should know about 2 externals, one for each platform.
>
>Or it is normal for Revolution world, that developer must self tune each
>stack before use it ??? I hard believe into this.
>
>
>2) taking into account that I have now on hands 50 example stacks, It not
>smile to me manually set external for each of them. So may be exists way
>
>A) automate this job ?
>
>B) may be it is possible that stack itself on load and start set correct
>external according to current platform? But again I will need include this
>code into each stack ... May be exists way to put this code into some shared
>single stack ?
>
>
>--
>Best regards,
>
I would make an index stack with each example being a substack of it.
Then you just need to set the external of this index stack and all
others will see it without further ado. This gives you also a single
file to distribute. Furthermore, you can place handlers common to all
examples in the stack script of the index stack and they will be
available to all examples. Better factoring this way.
You handle the external path issue in the openStack handler placed on
the card level (this is important here) of the index stack. There
you set the path to the external depending on the platform -- yes,
you set it up at runtime when the stack loads -- and then initialize
Valentina (and close it at the end).
Platform() is a function that tells you the OS type. In case of Mac,
you need further systemVersion() to distinguish between OS9 and OSX.
By index stack, I mean a stack that has a list of all examples with
links to open them individually. It would be nice to include a short
description of what each example demonstrates (could be just a tool
tip).
I think this addresses all the issues you raised.
Robert
More information about the use-livecode
mailing list