[sword-devel] OS X/iPhoneOS based development

Dmitrijs Ledkovs dmitrij.ledkov at ubuntu.com
Mon Jun 14 14:01:42 MST 2010


On 14 June 2010 21:38, Manfred Bergmann <manfred.bergmann at me.com> wrote:
>
> 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.
>

True. I did do bundles packing 10.3 & 10.4 together. But that was
before intel transition.

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

Fair enough. How are you keeping up with changes to sword? What is
your xcode project layout?

I didn't manage to make a project which can get have sword framework
and xiphos getting pulled in from svn. I would also need Gtk, Glib,
Pango and friends.... i have framework versions of those, but it's
"imported" frameworks.

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

Thanks, didn't know that.

>> Using the sdk and gcc isysroot imho is far more UNIX-like =)
>
> I don't know why CMake would not be UNIX-like?
>

Don't understand.... CMake is a great tool, so is autotools. it's just
I find it easier to control and inspect what is going on during
buildtime using lower level tools. E.g. Xcode is far to abstract for
my taste. Or maybe I just don't know how to use it properly. I never
found enough time to use/learn it because it's not as universal as
autotools.

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