[sword-devel] bcpp project files

Chris Little sword-devel@crosswire.org
Thu, 04 Dec 2003 18:59:56 -0600


Charles & Troy,

I'm sorry I did't notice that the ICU stuff gets used in the flat API 
projects.  I would have fixed it back when I made those changes to the 
main library project.

The problem is that I changed the names of the ICU library project files 
(and of the library files themselves).  It should be pretty 
self-explanatory.  I think the project files are now called icuuc and 
icuin, and are in the same directory as they used to be (something like 
icu-sword/as_is/borland/).  I'll have a moment tomorrow to look at it if 
no one else gets the chance to commit a fix tonight.

--Chris


Charles W. Crary wrote:
> Troy,
> 
> Thanks for the quick response.  
> 
> I suspected that something like you described had happened with CodeGuard.
> 
> I had tried to use the BPG file (bindings\bcppmake\sworddll.bpg) but it was
> broken.  On the off chance that it would help, I fixed the project group
> file (it references a test.exe project which doesn't actually exist in the
> default directory) but I am running into the same issues with the ICU
> libraries - either ICUI18N.LIB isn't available (if I build with the original
> *.BPF file) or there is an unresolved external reference in ICUUC.LIB (if I
> build with a modified *.BPF which includes all the ICU libraries built from
> CVS).
> 
> I appreciate your looking into this.  I'll see if I can get any further as
> well.
> 
> Thanks,
> 
> Charles
> 
> -----Original Message-----
> From: sword-devel-admin@crosswire.org
> [mailto:sword-devel-admin@crosswire.org] On Behalf Of Troy A. Griffitts
> Sent: Thursday, December 04, 2003 10:22 AM
> To: sword-devel@crosswire.org
> Subject: Re: [sword-devel] bcpp project files
> 
> Charles,
> 	Quick reply to some questions.
> 
> 	My apologies.  Last time I built the windows code, I was hunting
> down a memory leak in one of the utilities, so I turned on CodeGuard in the
> project file.  The project file was commited with my fix for the memory bug.
> I hadn't thought much about the free version of the compiler not providing
> the codeguard libraries.  I will try to remember to turn codeguard off
> before commiting, next time.
> 
> 	Building from .bpg files is usually all that we support, though
> using the individual .bpr project files directly should work fine.  BUT,
> usually the .bpg files know what projects need to be built FIRST before
> other things.  In short, I'd recommend that you use the Borland Project
> Group (.bpg) files, if they exist.
> 
> 	I haven't attempted to build the flatapi in some time, on Windows.
> It should work, as I think it is used for some language bindings, and
> compiled for other platforms, but I'm not sure.  Let me know if you get it
> working.  I will also try to make time to look at it soon.
> 
> 	Hope this helps a little,
> 		-Troy.
> 
> 
> 
> Charles W. Crary wrote:
> 
>>Guys,
>> 
>>I've been trying to build 1.5.6 and the current version in CVS in the 
>>Standard (cheap) edition of Borland C++Builder 5.  I've run into a 
>>couple of problems and the occaisional solution and wanted to run them by
> 
> the list.
> 
>> 
>>I'm primarily a Pascal and SQL developer, so please pardon my ignorance.
>> 
>>The first issue:  When trying to build the library using 
>>lib\bcppmake\libsword.bpr or lib\bcppmake\libsword6icu.bpr I had 
>>problems when linking - the linker said that it couldn't fine 
>>cg32.lib.  After a bit of research I discovered that the library 
>>belongs to CodeGuard, an extra tool that Borland ships with the 
>>Enterprise version of C++Builder.  There is no GUI access to CodeGuard 
>>options in the cheaper versions of C++Builder, but I removed the line 
>>indicated below from the linker section of the Borland project files
> 
> (*.bpr).
> 
>> 
>>  <LINKER>
>>    <ALLOBJ value="$(OBJFILES)"/>
>>    <ALLLIB value="cg32.lib"/>        <-- remove this line!
>>  </LINKER>
>>
>>Once this line was gone, I was able to build the library.
>>
>>I'm not familiar with CodeGuard, and haven't gotten to where I can 
>>test the library to make sure it works without it.  But if it isn't 
>>necessary, I think it would make sense to remove the reference so 
>>those of us with the cheaper versions of the C++Builder won't have to mess
> 
> with it in the future.
> 
>>Second item: While trying to figure this out I got the current code 
>>from CVS and played around with it.  The *.bpf files in lib\bcppmake 
>>(which list the files to build) appear to be empty.  I may be 
>>betraying my ignorance here, but the same files in 1.5.6 list quite a 
>>number of files, none of which appear in the CVS version.  When I try 
>>to Build the projects from CVS, it is finished immediately, so I 
>>suspect that some files are missing.  Are these project files in the 
>>midst of revision?  It isn't a big deal, since I have access to 1.5.6, but
> 
> I *am* curious.
> 
>>Third item: I am trying to build the flat API version of the library 
>>(bindings\bcppmake\sword.bpr).  I've gotten icu-sword from CVS and 
>>have built it successfully, but when I try to build the flat API, the 
>>linker complains that it can't find ICUI18N.LIB.  That doesn't appear 
>>to be in the icu-sword project, so I'm not sure where to go.
>>
>>I did see on the list that someone (Chris maybe?) had updated the ICU 
>>stuff in the last few months.  Perhaps bindings\bcppmake\sword.bpf 
>>hasn't been updated to reflect the new ICU libraries?  Currently it looks
> 
> like this:
> 
>>     USEUNIT("sword.c");
>>     USEUNIT("..\flatapi.cpp");
>>     USELIB("..\..\lib\libsword.lib");
>>     USELIB("..\..\..\icu-sword\as_is\borland\icui18n.lib");
>>     USELIB("..\..\..\icu-sword\as_is\borland\icudatab.lib");
>>     USELIB("..\..\..\icu-sword\as_is\borland\icucommon.lib");
>> 
>>//--------------------------------------------------------------------
>>------
>>-
>>     This file is used by the project manager only and should be 
>>treated like the project file
>>
>>
>>     DllEntryPoint
>>
>>I've tried replacing the ICU libraries above with the five ICU 
>>libraries in the current CVS (icuuc.lib, icuin.lib, icuio.lib, 
>>icule.lib, iculx.lib), but I get an error on linking:
>>
>>[Linker Error] Unresolved external '_icuudt26_dat' referenced from 
>>ICU-SWOD\AS_IS\BORLAND\ICUUC.LIB|udata
>>
>>If anyone could give me a hint as to how to proceed, I would appreciate
> 
> it.
> 
>>Lest I be accused of complaining, I think that this is a great 
>>project, and I appreciate all the work you guys have done on it.
>>
>>Thanks,
>>
>>Charles Crary