[sword-devel] bcpp project files

Troy A. Griffitts sword-devel@crosswire.org
Thu, 04 Dec 2003 11:22:01 -0700


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
> 
> 
> _______________________________________________
> sword-devel mailing list
> sword-devel@crosswire.org
> http://www.crosswire.org/mailman/listinfo/sword-devel