[sword-devel] OS X/iPhoneOS based development

Gregory Hellings greg.hellings at gmail.com
Mon Jun 14 11:18:53 MST 2010


Manfred,

CMake uses a number of what it calls "Generators" which can produe  
build files or projects for a number of build systems. One of these is  
Xcode when using the Mac build of CMake. From the command line the  
option -G Xcode (not certain on the casing of that, available  
generators are output by --help) will produce an Xcode project instead  
of the default (unix style makefiles). The GUI tool should ask the  
first time you configure a project what build system to target.  You  
would then use the Xcode project the way you normally would.

Files are available from the bzr repository at https://code.launchpad.net/~greg-hellings/libsword/cmake-port 
  or a tarball for download from http://bibletime.thehellings.com if  
you want to give it a shot.

--Greg



On Jun 14, 2010, at 12:59 PM, Manfred Bergmann  
<manfred.bergmann at me.com> wrote:

> Hi Greg.
>
> I was always using a makefile compiled library. However creating  
> multi-architecture builds (i386, x86_64, ppc) was always kind of a  
> hassle.
> This is very easily done by Xcode because it compiles for all  
> targets and combines the builds and I'm actually quite happy that I  
> can use this now.
> How is this done with CMake?
>
>
> Manfred
>
>
> Am 14.06.2010 um 18:51 schrieb Gregory Hellings:
>
>> Manfred,
>>
>> My CMake build system is supposed to support iPhone configurations.  
>> It would keep you from having to update your xcode poject every  
>> time files are changed, etc. I have built the library succesfully  
>> against the simulator files using my CMake configure, but have not  
>> had any takers on actually testing the library against an actual app.
>>
>> --Greg
>>
>>
>>
>> On Jun 14, 2010, at 11:52 AM, Manfred Bergmann <manfred.bergmann at me.com 
>> > wrote:
>>
>>> Troy, I'd like to put this into this bindings folder.
>>> If you could create a "objc" folder there and give me commit  
>>> rights? I'm almost finished creating a proper Xcode project.
>>>
>>>
>>>
>>> Manfred
>>>
>>>
>>> Am 16.04.2010 um 07:58 schrieb Troy A. Griffitts:
>>>
>>>> These all sound like good suggestions.  Manfred, let me know what  
>>>> you
>>>> decide and I'll either give you access to sword/bindings/objc or  
>>>> create
>>>> a repository for you.
>>>>
>>>> Troy
>>>>
>>>>
>>>> Peter von Kaehne wrote:
>>>>> Would not the natural place be the bindings directory in the  
>>>>> engine?
>>>>>
>>>>>
>>>>>
>>>>> Nic Carter wrote:
>>>>>> I suggest you put it in a specific place in your MacSword SVN (or
>>>>>> Bazaar if that's what you use now?) and I can access it from  
>>>>>> there.  :)
>>>>>>
>>>>>> On 16/04/2010, at 2:32 AM, Manfred Bergmann wrote:
>>>>>>
>>>>>>> Alright then.
>>>>>>> Can anyone with the proper rights create a Subversion folder?  
>>>>>>> Or do
>>>>>>> we use Bazaar? I switched over to Bazaar. :)
>>>>>>> I believe I'm admin in Jira so I can create a project there  
>>>>>>> myself.
>>>>>>>
>>>>>>>
>>>>>>> Manfred
>>>>>>>
>>>>>>>
>>>>>>> Am 15.04.2010 um 10:30 schrieb Nic Carter:
>>>>>>>
>>>>>>>> Hi Manfred,
>>>>>>>>
>>>>>>>> This all sounds good.  :)
>>>>>>>>
>>>>>>>> Just one quick thing, though:  PocketSword will be one app that
>>>>>>>> works on both iPad and iPhone/iPod touch.  I was looking at  
>>>>>>>> this
>>>>>>>> today and I think this will be the best way forward. Apple have
>>>>>>>> designed everything so that this is easily possible, with one
>>>>>>>> codebase...  :)
>>>>>>>>
>>>>>>>> Oh, and to answer your question about NSUserDefaults, yes,  
>>>>>>>> that's
>>>>>>>> there!  I have just added unlocking of modules to  
>>>>>>>> PocketSword, which
>>>>>>>> will be available in v1.2.2 (currently in beta), and that works
>>>>>>>> great using the code in SwordModule.mm  :)
>>>>>>>>
>>>>>>>> Thanks for this work, Manfred!  :)
>>>>>>>> ybic
>>>>>>>> nic...  :)
>>>>>>>>
>>>>>>>> ----
>>>>>>>> Nic Carter
>>>>>>>> PocketSword Developer - an iPhone Bible Study app
>>>>>>>> www: http://crosswire.org/pocketsword
>>>>>>>> iTunes: http://itunes.apple.com/app/Pocketsword/id341046078
>>>>>>>> Twitter: http://twitter.com/pocketsword
>>>>>>>>
>>>>>>>> On 15/04/2010, at 7:15 PM, Manfred Bergmann wrote:
>>>>>>>>
>>>>>>>>> Hi there.
>>>>>>>>>
>>>>>>>>> Now with the iPad already released in USA and in other  
>>>>>>>>> countries
>>>>>>>>> shortly I'd like to push for a consolidation of the  
>>>>>>>>> Objective-C++
>>>>>>>>> SWORD wrapper classes.
>>>>>>>>> Which over time has grown quite large consisting of 20  
>>>>>>>>> classes in
>>>>>>>>> the version MacSword uses. Just for an explanation to  
>>>>>>>>> others, they
>>>>>>>>> build the basis for SWORD based OS X applications and are  
>>>>>>>>> intended
>>>>>>>>> to be able to code in Objective-C exclusively in upper  
>>>>>>>>> levels of
>>>>>>>>> the application (UI).
>>>>>>>>> PocketSword uses a subset of those classes with some  
>>>>>>>>> modifications.
>>>>>>>>>
>>>>>>>>> Now shortly since I believe we will again branch for the iPad
>>>>>>>>> because it will be a different UI eventually I feel that we  
>>>>>>>>> have to
>>>>>>>>> do something now. Otherwise we will end up having to  
>>>>>>>>> maintain three
>>>>>>>>> code bases which could be one. And it will be a mess.
>>>>>>>>>
>>>>>>>>> Since MacSword 2.2 was released recently I have some time  
>>>>>>>>> now to
>>>>>>>>> work on this.
>>>>>>>>> I would suggest to make a framework of the Objective-C wrapper
>>>>>>>>> classes which can then be used in any OS X (Cocoa) based
>>>>>>>>> application just as easily as other frameworks can be used. It
>>>>>>>>> would still be necessary to have different builds for ARM and
>>>>>>>>> Intel/PPC and Xcode projects but those can use the same code  
>>>>>>>>> base.
>>>>>>>>> If any user of the framework needs customised behaviour it  
>>>>>>>>> is still
>>>>>>>>> possible to subclass if really needed.
>>>>>>>>>
>>>>>>>>> The things that need closer look are:
>>>>>>>>> - Make it work in gc and none-gc environments.
>>>>>>>>> In MacSword 2.2 refactorings I tried to put in -dealloc and
>>>>>>>>> -finalize methods in all classes I touched together with
>>>>>>>>> autoreleased initialisations.
>>>>>>>>> - Logging.
>>>>>>>>> This might need some time. While I would like to be able to  
>>>>>>>>> write
>>>>>>>>> logs to file with specifying log levels this is not  
>>>>>>>>> something the
>>>>>>>>> iPhone/iPad wants due to slower FS access. But I'm sure  
>>>>>>>>> there is a
>>>>>>>>> solution to this. If some protocols are defined each front- 
>>>>>>>>> end can
>>>>>>>>> still implement it's own logging implementation.
>>>>>>>>> - Code that uses NSUserDefaults.
>>>>>>>>> Right now keys for locked modules are stored in  
>>>>>>>>> NSUserDefaults. Is
>>>>>>>>> this something that works on iPhoneOS?
>>>>>>>>> - Searching/indexing.
>>>>>>>>> While the iPhone uses the SWORD provided clucene based  
>>>>>>>>> indexing and
>>>>>>>>> searching MacSword uses SearchKit.
>>>>>>>>> This not a problem at all but we have to define a protocol  
>>>>>>>>> where
>>>>>>>>> each application can implement a provider.
>>>>>>>>> - Further we would need a place to source control it. Can we  
>>>>>>>>> have a
>>>>>>>>> place for it at CrossWire including a new project in Jira?
>>>>>>>>>
>>>>>>>>> Comments?
>>>>>>>>>
>>>>>>>>> Nic, if you are busy with things for PocketSword right now,  
>>>>>>>>> don't
>>>>>>>>> worry. I would start working on this, compare both code  
>>>>>>>>> bases and
>>>>>>>>> would start a discussion with you about things I'm uncertain  
>>>>>>>>> - if
>>>>>>>>> you give your "go" to do this all.
>>>>>>>>> I'd also like to finally put in some Unit tests for critical  
>>>>>>>>> parts
>>>>>>>>> so that it can be tested more easily. Unfortunately Unit  
>>>>>>>>> testing is
>>>>>>>>> not so comfortable in Obj-C as it is in Java.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Manfred
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> sword-devel mailing list: sword-devel at crosswire.org
>>>>>>>>> http://www.crosswire.org/mailman/listinfo/sword-devel
>>>>>>>>> Instructions to unsubscribe/change your settings at above page
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> sword-devel mailing list: sword-devel at crosswire.org
>>>>>>>> http://www.crosswire.org/mailman/listinfo/sword-devel
>>>>>>>> Instructions to unsubscribe/change your settings at above page
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> sword-devel mailing list: sword-devel at crosswire.org
>>>>>>> http://www.crosswire.org/mailman/listinfo/sword-devel
>>>>>>> Instructions to unsubscribe/change your settings at above page
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> sword-devel mailing list: sword-devel at crosswire.org
>>>>>> http://www.crosswire.org/mailman/listinfo/sword-devel
>>>>>> Instructions to unsubscribe/change your settings at above page
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> sword-devel mailing list: sword-devel at crosswire.org
>>>>> http://www.crosswire.org/mailman/listinfo/sword-devel
>>>>> Instructions to unsubscribe/change your settings at above page
>>>>
>>>>
>>>> _______________________________________________
>>>> sword-devel mailing list: sword-devel at crosswire.org
>>>> http://www.crosswire.org/mailman/listinfo/sword-devel
>>>> Instructions to unsubscribe/change your settings at above page
>>>
>>>
>>> _______________________________________________
>>> sword-devel mailing list: sword-devel at crosswire.org
>>> http://www.crosswire.org/mailman/listinfo/sword-devel
>>> Instructions to unsubscribe/change your settings at above page
>>
>> _______________________________________________
>> sword-devel mailing list: sword-devel at crosswire.org
>> http://www.crosswire.org/mailman/listinfo/sword-devel
>> Instructions to unsubscribe/change your settings at above page
>
>
> _______________________________________________
> sword-devel mailing list: sword-devel at crosswire.org
> http://www.crosswire.org/mailman/listinfo/sword-devel
> Instructions to unsubscribe/change your settings at above page



More information about the sword-devel mailing list