|
Boost : |
From: Patrick Frants (patrick_at_[hidden])
Date: 2001-09-11 09:10:17
Hi,
I have looked at JAM in the past, but did not really need it then. We are now going to port our products to multiple
platforms and I suspect that boost can handle both our directory structure and other requirements gracefully. The
problem is that I am not a JAM/boost pro. So maybe some of you guys can show me the right direction
The goals are:
1. Use as few jamfiles as possible (I suspect the directory structure should allow this)
2. No intermediate libraries, because all C++ static objects need to be initialized at startup
3. No need to write out dependencies at the lowest level (MinorProject to individual .cpp files)
4. Separate intermediate files from source tree with ALL_LOCATE_TARGET
We have this directory structure:
Root
MajorProject1
MinorProject11
MinorProject11File1.cpp
MinorProject11File2.cpp
MinorProject11File3.cpp
...
MinorProject12
MinorProject12File1.cpp
MinorProject12File2.cpp
MinorProject12File3.cpp
...
MinorProject13
MinorProject13File1.cpp
MinorProject13File2.cpp
MinorProject13File3.cpp
...
...
MajorProject2
MinorProject21
MinorProject21File1.cpp
MinorProject21File2.cpp
MinorProject21File3.cpp
...
MinorSubProjec212
MinorProject22File1.cpp
MinorProject22File2.cpp
MinorProject22File3.cpp
...
MinorProject23
MinorProject23File1.cpp
MinorProject23File2.cpp
MinorProject23File3.cpp
...
...
...
Executable1 # depends on MajorProject2, MajorProject7 and Executable1MainFile.cpp
Executable1MainFile.cpp
Executable2 # depends on MajorProject6, MajorProject8 and Executable2MainFile.cpp
Executable1MainFile.cpp
...
Executables depend on a number of MajorProjects and a specific ExecutablNMainFile.cpp. Each MajorProject can be
used by multiple Executables.
The separation of MajorProjects into MinorProjects is a logical separation only.
I was thinking of a kind of jamfile at the MajorProject level that is generic. It makes that pseudotarget MajorProjectN
automatically dependent on all the .cpp files in it's MinorProjects (*/*.cpp).
Also I would like to have a toplevel jamfile like:
subinclude Executable1 ;
subinclude Executable2 ;
And in the jamfile in the Executable1 directory:
DEPENDS Executable1 : Executable1MainFile.cpp MajorProject2 MajorProject7 ;
And in the jamfile in the Executable2 directory:
DEPENDS Executable2 : Executable2MainFile.cpp MajorProject6 MajorProject8 ;
Is this possible? If not, is there another way to reach the same goals?
Patrick Frants
-- Patrick Frants Senior Software Engineer Quintiq BV Het Wielsem 10 5201 AG 's-Hertogenbosch Phone: +31(0)736910739 Fax: +31(0)736910754
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk