Re: [DM-dev] New Release
Brought to you by:
acdalton,
henningsen
From: stephan b. <st...@s1...> - 2005-12-09 16:37:35
|
On Friday 09 December 2005 00:17, Aaron Dalton wrote: > Yeah, I'm not sure how I'll organize CVS, but we'll work it out =3D)=20 If i may say so, i've got a lot of experience structuring C++ source=20 trees, and a &h!t load of opinions on the topic ;). The current tree is really flat, i'd like to see it separated like so: src/ src/dm =3D core lib code. name needn't be 'dm' src/ui or src/dm/ui =3D UI-centric lib code. src/client =3D client app(s) go here. e.g. src/client/console src/client/sdl src/client/example include/sf.net/dm2 The includes can live under src/dm, but should be copied/symlinked under=20 include/... during the build process. Another alternative is to move=20 the headers under include/... The sources should only reference the=20 headers using <sf.net/dm2/foo.hpp>, rather than "foo.hpp", IMO. This general structure has shown to be very extendable as a project=20 grows. The headers conventions also enforce non-circular dependencies=20 in the various subcomponents. If the copy/symlink approach is used,=20 cyclic deps become impossible because they'll break the first time the=20 tree is built (before all headers are installed under include/...). i've got lots more to say on build trees, but i'll shut up :). =2D-=20 =2D---- st...@s1... http://s11n.net "...pleasure is a grace and is not obedient to the commands of the will." -- Alan W. Watts |