[sword-devel] OS X/iPhoneOS based development

Manfred Bergmann manfred.bergmann at me.com
Mon Jun 14 13:38:51 MST 2010


Am 14.06.2010 um 21:03 schrieb Dmitrijs Ledkovs:

> On 14 June 2010 18:59, 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.
> 
> ppc64 as well for G5 macs =)
> 
>> 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.
> 
> FUD =)
> 
> you can use isysroots to compile universal binaries using apple
> toolchain the same way XCode does it.
> 
> http://developer.apple.com/mac/library/technotes/tn2005/tn2137.html

It's called "Xcode" not "XCode".
Thanks for your pointers but I'm already doing this.
This has gotten much easier since you don't need to build for Mac OSX 10.3 because you needed gcc 3.3 for that and gcc 4 for 10.4 and above.

For me I think it's time to switch now from manually build sword library to Xcode project because now the library is build together with the ObjC wrapper classes. 

>> How is this done with CMake?
>> 
> 
> As far as I can see CMake style source/targets are just converted into
> XCode xml/plst project file, so you would still need to use xcode to
> define debug/release/sdk/target-arches.

"xcodebuild" can build Xcode projects via command line and accepts command line build options or you can pass in a settings file.

> Using the sdk and gcc isysroot imho is far more UNIX-like =)

I don't know why CMake would not be UNIX-like?


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
>> 
> 
> _______________________________________________
> 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