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