Board index » cppbuilder » BDS (Delphi personality) output directories don't make sense

BDS (Delphi personality) output directories don't make sense


2006-08-04 04:19:05 AM
cppbuilder67
Can someone please explain how output directories work in BDS (particularly
with respect to the Dephi personality)? If things are left at their
defaults, files don't go where you'd expect (at least not when you're coming
from a C++Builder perspective), and changing the defaults just makes things
worse.
For example, in the Delphi personality, when compiling packages, DCP's
(whatever those are), BPL's and BPI's all go to MyDocs\BSP\BPL, LIB's go to
wherever the project files are, and the DCU's go to wherever the source
files are. If you change the "Output directory," then the BPL's go there,
but the DCP's and BPI's still end up in MyDocs\BSP\BPL, and LIB's still go
to the folder where the project files are. The help file says there should
be a "Package output directory" entry on the Project Options dialog, but
doesn't say if that means BPI's, LIB's, and/or BPL's, but since the entry
isn't there, I guess it doesn't matter! That entry does exist on the
Tools|Options|Delphi Options page -- but if you set it, it only affects BPL
output, not BPI's or LIB's. I don't think a Borland IDE has ever been so
confusing!
In the C++ personality, BPL's, BPI's, LIB's and TDS's all go to the same
place (MyDocs\BSP\BPL), and OBJ's go to the configuration's (release, debug,
etc) output folder. At least here they've followed the expected convention
of keeping OBJ's and RES's together (intermediate output) LIB's and BPI's
together (bpi/lib output), and keeping EXE's, DLL's, BPL's and TDS's
together (final output), and they gave us the ability to create multiple
configurations (which is nice).
But is it really so difficult for things to be consistent across
personalities? Shouldn't the Delphi personality allow one to send BPI's and
LIB's to the same location, the same way C++Builder does? I would think
Delphi users would appreciate this too.
Ideally, it would be nice if all output types [compiler output
(obj's/dcu's/res's), static libs (bpi's/lib's), and executables
(dll's/bpl's/exe's including tds's)], could each be set to go to some
default directory which could then be overridden on a per-project basis. It
seems like Borland tried to do this (at least in some form) with BDS2006,
but I think they missed the mark.
Here's what I want to do (with Delphi projects -- though it doesn't seem
possible with the current IDE):
1) I'd like BPI's and LIB's to go to the same place (especially when
compiling Delphi packages for use in C++Builder)
2) I'd like DCU's, RES's, and OBJ's to go to the same place
3) I'd like BPL's, DLL's, EXE's, and TDS's to go to the same place
Is it possible to configure BDS2006 to accomodate these (relatively simple)
desires?
- Dennis
 
 

Re:BDS (Delphi personality) output directories don't make sense

"Dennis Jones" < XXXX@XXXXX.COM >wrote in message
Quote
Can someone please explain how output directories work in BDS
(particularly with respect to the Dephi personality)?
Output directory: Final; BPL, EXE, DLL
Unit output directory: Intermediate; DCU, BPI, LIB
DCP output directory: DCP (self explanatory)
There is a hidden output directory that you can only access if you edit the
project file (.bdsproj). Under <BorlandProject><Delphi.Personality>
<Directories>you will find one with the name "OutputDir". This is not the
same as what the IDE calls "Output Directory" (which is
"PackageDLLOutputDir" in the project file). This entry is for routing the
generated HPP files.
Quote
For example, in the Delphi personality, when compiling packages, DCP's
(whatever those are)
DCP is like a BPI and static LIB wrapped up in one.
Quote
But is it really so difficult for things to be consistent across
personalities?
Agreed. There is at least one QC etnry to that affect.
Quote
Shouldn't the Delphi personality allow one to send BPI's and
LIB's to the same location
It does, "Unit Output Directory".
With regard to the C++ settings I haven't played with them much. I have
them set how I know they work and I don't touch 'em. Someday I might review
the organization.
- Clayton
 

Re:BDS (Delphi personality) output directories don't make sense

"Clayton Arends" < XXXX@XXXXX.COM >wrote in message
Quote
"Dennis Jones" < XXXX@XXXXX.COM >wrote in message
news:44d25a37$ XXXX@XXXXX.COM ...

>Can someone please explain how output directories work in BDS
>(particularly with respect to the Dephi personality)?

Output directory: Final; BPL, EXE, DLL
Unit output directory: Intermediate; DCU, BPI, LIB
DCP output directory: DCP (self explanatory)
That's not what I get (when building a Delphi package). Here's what I get:
Ouput directory: BPL
Unit directory: DCU, OBJ, LIB
DCP directory: DCP, BPI
This is certainly better than what I was getting before (with the defaults).
Quote
There is a hidden output directory that you can only access if you edit
the project file (.bdsproj). Under <BorlandProject><Delphi.Personality>
<Directories>you will find one with the name "OutputDir". This is not
the same as what the IDE calls "Output Directory" (which is
"PackageDLLOutputDir" in the project file). This entry is for routing the
generated HPP files.
This was true for BCB6 as well (it was "hidden").
Quote
>But is it really so difficult for things to be consistent across
>personalities?

Agreed. There is at least one QC etnry to that affect.
Well, that's good news, I guess.
Quote
>Shouldn't the Delphi personality allow one to send BPI's and
>LIB's to the same location

It does, "Unit Output Directory".
Not in any of my tests.
Quote
With regard to the C++ settings I haven't played with them much. I have
them set how I know they work and I don't touch 'em. Someday I might
review the organization.
I don't have a problem with the C++ settings. They work the same as they
did in BCB5/6. I only mentioned them because Delphi doesn't use the same
logic (C++ is what I'm used to).
- Dennis
 

{smallsort}

Re:BDS (Delphi personality) output directories don't make sense

"Dennis Jones" < XXXX@XXXXX.COM >wrote in message
Quote
Ouput directory: BPL
Unit directory: DCU, OBJ, LIB
DCP directory: DCP, BPI
My apologies. You are exactly correct. I was under the assumption that
"DCP Output Directory" would be for just that (as you were).
I checked my settings again. Basically I have three output directories.
One for the BPL/DLL/TDS files, one for every library type file
(LIB,BPI,DCP,OBJ,RES,DCU), and one for HPP files.
Quote
This was true for BCB6 as well (it was "hidden").
Right. It was hidden even more so in BCB6 and previous. You had to modify
the PFLAGS entry with "-E{path}". Though this way is a little better I
can't fathom why they don't add it in the IDE. :S
- Clayton
 

Re:BDS (Delphi personality) output directories don't make sense

"Clayton Arends" < XXXX@XXXXX.COM >wrote in message
Quote
"Dennis Jones" < XXXX@XXXXX.COM >wrote in message
news:44d37cf7$ XXXX@XXXXX.COM ...

>Ouput directory: BPL
>Unit directory: DCU, OBJ, LIB
>DCP directory: DCP, BPI

My apologies. You are exactly correct. I was under the assumption that
"DCP Output Directory" would be for just that (as you were).
Thank you for confirming this.
Quote
I checked my settings again. Basically I have three output directories.
One for the BPL/DLL/TDS files, one for every library type file
(LIB,BPI,DCP,OBJ,RES,DCU), and one for HPP files.
That's actually not a bad way to go; I think it could be made to work with
the C++ personality too, thereby providing a reasonably consistent output
organization for both personalities. I'll have to play with that.
Thanks,
- Dennis