On 5/5/12 11:22 PM, Anthony Tuininga wrote:
> I can try.:)  The only place that this would take place is when
> building the base executables. This is done with setup.py and follows
> the configuration used when building Python. You can see this code in
> the build_extension() method. If you have suggestions on how to make
> that work, please let me know.

I think I've figured this out, and will submit patches for this and 
other changes I've made as soon as I figure out Bitbucket. (I'm more of 
an SVN/Sourceforge veteran.) Thanks for the pointer.

I did have two other questions:

1. I can't figure out how to set the bundle-iconfile option for 
bdist_mac--there are no samples in the source tree of how to do this. I 
was able to manually copy over the icon file in my build script, so it's 
not a big deal, but I'd like to use the API correctly. :-)

2. Looking at macdist.py in the source tree, I see that a default, 
bare-bones info.plist file is created for the app bundle. Python 
actually has a module for doing this, plistlib, which can take a dict 
and write that data to an info.plist file. Again, it is no problem to 
add this to my setup.py script as a final step, but it would be nice if 
this were supported directly in cx_freeze. I actually tried to implement 
it but couldn't figure out how to add the correct parameters in the 
module. Here's a snippet from my setup.py to illustrate how this works:

import plistlib

plist = dict(CFBundleName = 'QuickWho',
              CFBundleIconFile = 'quickwho.icns',
              CFBundleIdentifier = 'com.codebykevin.quickwho',
              CFBundleShortVersionString = '4.0.0',
              CFBundleVersion = '4.0.0',
              CFBundleGetInfoString = 'QuickWho 4.0.0',
              CFBundleExecutable = 'QuickWho',
              CFBundleHelpBookFolder = 'help',
              CFBundleHelpBookName = 'QuickWho User Help',
              NSHumanReadableCopyright = u'Copyright (c) 2012 WordTech 
Communications LLC',
              NSAppleScriptEnabled=u'YES',
              OSAScriptingDefinition=u'QuickWho.sdef',
              LSMinimumSystemVersion ='10.7.3',
              LSMinimumSystemVersionByArchitecture = dict(
                       i386 = '10.7.3',
                       x86_64 = '10.7.3',
                       ),
               LSArchitecturePriority = ('x86_64', 'i386'),
               LSApplicationCategoryType= 'public.app-category.utilities',
              NSServices = [
                   dict(
             NSMenuItem = dict(
                 default = u'QuickWho: Display Domain Information',
                         ),
             NSMessage = u'provideService',
             NSPortName = u'QuickWho',
             NSSendTypes = [
                 u'NSStringPboardType',
                           ],
                       ),
                   ],
               )

targetplist = 'build/QuickWho.app/Contents/Info.plist'
plistlib.writePlist(plist, targetplist)

--
Thanks,
Kevin

-- 
Kevin Walzer
Code by Kevin
http://www.codebykevin.com

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
cx-freeze-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/cx-freeze-users

Reply via email to