Fixing Mac OS X standalones

Sarah Reichelt sarah.reichelt at gmail.com
Tue Aug 22 22:01:44 EDT 2006


Hi All,

When you build a standalone for Mac OS X, at the moment (Rev 2.7.x)
the required display plugins are not copied over, so the app looks
like it was built for OS 9. Also, if you have specified a custom icon,
it does not get displayed.

Here is a script that fixes all that. It is set to work only when
building on OS X systems, I don't know if it is needed on others. Just
put this in the stack script of your mainStack and it will happen
auto-magically after the standalne has been created.

HTH,
Sarah



-- after a standalone is created, this is called
-- pFolder is the name of the folder containing the standalone's folder
--
-- this routine copies over the missing display plugins
-- and "touches" the app tho make the icon appear
--
on standaloneSaved pFolder
    -- only works when building on Mac OS X
    if the platform <> "MacOS" then exit standaloneSaved
    set the itemdel to "."
    if item 1 of the systemversion >= 10 then exit standaloneSaved

    -- check if building any Mac OS X version
    put the cRevStandaloneSettings["MacOSX"] of the topstack into tMacUB
    put the cRevStandaloneSettings["MacOSX PowerPC-32"] of the
topstack into tMacPPC
    put the cRevStandaloneSettings["MacOSX x86-32"] of the topstack
into tMacIntel
    if tMacUB = false and tMacPPC = false and tMacIntel = false then
exit standaloneSaved

    -- get the full name of the standalone folder
    put the cRevStandaloneSettings["name"] of the topstack into tName
    put pFolder & tName & "/" into tAppFolder

    -- if building multiples, there will be a Mac OS X folder,
otherwise, just .app
    if there is a folder (tAppFolder & "MacOSX") then
        put "MacOSX/" after tAppFolder
    end if

    -- get out if can't find the new app
    if there is not a folder (tAppFolder & tName & ".app") then exit
standaloneSaved

    -- get the new app's plugins folder so the display plugins can be
copied across
    put tAppFolder & tName & ".app" & "/Contents/PlugIns/" into tAppPlugins

    -- get the path to the Rev app's plugins folder to find the originals
    put the effective filename of stack "Home" into tRevPath
    set the itemdel to "/"
    delete item -2 to -1 of tRevPath
    put "/Revolution.app/Contents/PlugIns/" after tRevPath

    -- list the plugins
    put the defaultfolder into tOldDefault
    set the defaultfolder to tRevPath
    put the folders into tPlugins
    filter tPlugins with "*.bundle"

    -- copy them to the new app
    -- bundles need revCopyFolder despite what the docs say
    -- revCopyFolder needs the full path for source & destination
    repeat for each line i in tPlugins
        put tRevPath & i into tSource
        revCopyFolder tSource, tAppPlugins
    end repeat

    -- 'touch' new app to make it's icon appear
    put "touch '" & tAppFolder & tName & ".app'" into tCmd
    get shell(tCmd)

    -- reset default folder
    set the defaultfolder to tOldDefault
end standaloneSaved



More information about the use-livecode mailing list