Boost logo

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