Board index » cppbuilder » BCB5 IDE Question

BCB5 IDE Question


2006-08-18 11:51:54 PM
cppbuilder100
Hey, is anyone still using BCB 5? If so, I have a question for you.
According to the documentation, if you set the "BPI/Lib output dir" under
the Tools->Environment Options menu, then this is "where Package BPI and LIB
files are placed by default." I can't seem to get this to happen. In other
words, when I build a DLL, it puts the import library in the same directory
the project is built from. Is this a known issue in the BCB5 IDE? Are there
any known workarounds?
Thanks for any help, I know this question goes waaayyy back ;-)
-Michael
 
 

Re:BCB5 IDE Question

Wow, I just answered my own questions moments after posting, and I don't
like the results.
Here's what I found. If you set the "BPI/LIB output dir" option in the
environment settings, then it will output the lib and bpi to the specified
directory **if the project is a Borland PACKAGE (.bpk)**.
If you attempt the same thing with a **normal Windows DLL project (.bpr)**,
then the .lib file IS NOT placed in the specified directory. It is placed,
by default, in the same directory as the project file.
I know that one can specify a new BPI/LIB output directory in the Project ->
Options ->Directories/Conditionals page. However, I *don't* want to
hard-code a drive in the path. That's the whole appeal of making this
setting at the environment level instead of the project level, so that
developers with different drive letter setups can customize their output
path.
Does anyone have a clever way of achieving this? I'd love to hear of a
solution.
Thanks,
-Michael
"Michael Skelton" < XXXX@XXXXX.COM >wrote in message
Quote
Hey, is anyone still using BCB 5? If so, I have a question for you.

According to the documentation, if you set the "BPI/Lib output dir" under
the Tools->Environment Options menu, then this is "where Package BPI and
LIB files are placed by default." I can't seem to get this to happen. In
other words, when I build a DLL, it puts the import library in the same
directory the project is built from. Is this a known issue in the BCB5
IDE? Are there any known workarounds?

Thanks for any help, I know this question goes waaayyy back ;-)

-Michael

 

Re:BCB5 IDE Question

"Michael Skelton" < XXXX@XXXXX.COM >wrote in message
Quote
Here's what I found.
That is by design, and is how the documentation for the IDE says it works.
The LIB refers to the import LIB for a BPL, not for a DLL. So it is a
BPI/LIB combination entry for packages only.
Quote
Does anyone have a clever way of achieving this?
You will have to use the Project Options on a per-project basis. Unless you
can find a third-party plugin that can move the files around (or call a
script that can then do it) after the compiler finishes its work.
Gambit
 

{smallsort}

Re:BCB5 IDE Question

Hi,
Quote
files are placed by default." I can't seem to get this to happen. In other
words, when I build a DLL, it puts the import library in the same directory
That option if for packages only. Each project including DLL's
has an option at Project | Options for final output dir.
--Craig
 

Re:BCB5 IDE Question

Craig,
Thanks for your reply, that was fast! I appreciate the information.
If you look at my second post, I had already discovered that fact mere
moments after my initial post. The question is, how do I specify the LIB
output path for the DLL project in a drive-neutral way? As I also mentioned
in my second post, I *don't* want to hard-code the path (including drive) in
the Project | Options field, because some of our developers have the source
tree installed on different drives. Relative paths are simply re-interpreted
to fixed path form when the options window is closed.
Someone must have figured out a way to do this in BCB5. If not, is this
issue resolved in BCB6? I do feel this to be an issue; why would Borland
intentionally implement such a harsh and inflexible way for setting output
directories?
-Michael
"Craig Farrell" < XXXX@XXXXX.COM >wrote in message
Quote
Hi,

>files are placed by default." I can't seem to get this to happen. In
>other words, when I build a DLL, it puts the import library in the same
>directory

That option if for packages only. Each project including DLL's
has an option at Project | Options for final output dir.

--Craig

 

Re:BCB5 IDE Question

Hi,
I thought the setting would remain relative if the output
dir was "under" the project dir? (might be wrong about that).
Other ideas (not really exactly what you want):
-Use a "subst" drive letter (the every deleveloper has to run
a "subst" command to the same drive).
-Have .bat file (part of the project or not) that moves the
final output whereever.
--Craig
 

Re:BCB5 IDE Question

"Michael Skelton" < XXXX@XXXXX.COM >wrote in message
Quote
how do I specify the LIB output path for the DLL project
in a drive-neutral way?
The short answer is that you cannot.
Quote
I *don't* want to hard-code the path (including drive) in
the Project | Options field
Sorry, but you have to.
Quote
some of our developers have the source tree installed on different
drives. Relative paths are simply re-interpreted to fixed path form
when the options window is closed.
For what you ask, you would have to upgrade to BCB 6. Then you can use
Environment Variables in your output paths. Each programmer can define the
same variable to point to a different local base folder.
Quote
Someone must have figured out a way to do this in BCB5.
It is not possible in BCB 5.
Gambit
 

Re:BCB5 IDE Question

"Craig Farrell" < XXXX@XXXXX.COM >wrote in message
Quote
I thought the setting would remain relative if the output
dir was "under" the project dir?
It does.
Quote
Other ideas (not really exactly what you want):
-Use a "subst" drive letter (the every deleveloper has to run
a "subst" command to the same drive).
-Have .bat file (part of the project or not) that moves the
final output whereever.
Those would work.
Gambit
 

Re:BCB5 IDE Question

Thanks again for your help, Gambit & Craig. I simply "caved in" and put our
company's source tree on the same drive as everyone else. Good 'ol C: ;->
Epilogue:
I found that if I were so brave as to manually edit the <LFLAGS>option tag
in the .bpr project file, and configure the "-l" sub-option to *use a
relative path*, then this forced the linker to save the import library
output (LIB) to an arbitrary location relative to the project's root folder.
However, this isn't a viable long term solution, because anytime a person
changes ANY setting in the Project ->Options, the relative path is
overwritten with an absolute path. So, in short, the linker can do what I'm
describing, but the BCB5 IDE shell just won't suffer relative paths. Again,
I can't use this method, but maybe this might help someone out there who can
afford to not change the Project ->Options through the IDE after manually
editing the .bpr XML file.
Cheers,
-Michael
"Michael Skelton" < XXXX@XXXXX.COM >wrote in message
Quote
Hey, is anyone still using BCB 5? If so, I have a question for you.

According to the documentation, if you set the "BPI/Lib output dir" under
the Tools->Environment Options menu, then this is "where Package BPI and
LIB files are placed by default." I can't seem to get this to happen. In
other words, when I build a DLL, it puts the import library in the same
directory the project is built from. Is this a known issue in the BCB5
IDE? Are there any known workarounds?

Thanks for any help, I know this question goes waaayyy back ;-)

-Michael