1. Binaries to be placed into subdirs per Visual Studio version
That is, instead of ./win32/bin, ./win32/obj/ to place /win32/vc8/bin, ./win32/vc9/bin,...
Values: vc7.1 (VS2003), vc8 (VS2005), vc9 (VS2008), vc10 (Dev 10)
Benefit: On workstations where compilation (and further execution) by different VS versions is required this allows to avoid manual temporary directory renaming
This approach is used by Qt, TBB, etc.
2. Name Debug libraries (*.dll and *.lib) adding a suffix (e.g. *d, like TKerneld.dll or *_debug, like TKGeom3d_debug.dll) and place into one directory (win32/*/bin or /lib).
- reduced maintenance costs on environment files used when starting Visual Studio or launch scripts (which currently have to set path to different directories)
- avoided annoyance of exiting and restarting Visual Studio when switching between Debug and Release modes (which can be time consuming for large projects)
- avoided probability of mix of Debug and Release libraries during testing (i.e. currently you might test your app using debug libraries by mistake to find out that when you ship release libs your customer will discover an error you never met)
This approach is used by MSFT (msvcr80.dll or msvcr80d.dll), Qt, TBB, etc.
This approach will require creation of subdirs in obj directory mode (e.g. ./win32/vc8/obj/debug and ./release)
We made some preliminary discussions with the OCC team on this last year but did not close. So comments from all parties (OCC and community) will be appreciated.