[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