List Info

Thread: Setting the output file destination and name




Setting the output file destination and name
user name
2006-05-31 13:46:32
Hello all,

I have a project, which involves a bunch of libs.
I want to keep the sources separate from the output.
The "build-dir" rule helps to an extend, but it
doesn't do exactly what I
want.

Here's an example that should make things easier to
understand...
Assume my project is structured as follows:

Root:
   - libs
   --- math

   - projects
   --- helloWorld


After I build helloWorld (which depends on math), I'd like
the following to
happen:

1) /libs should stay exactly as it was...(i.e. there should
be no object or
.lib/.a files in there)

2) Everything but the final executable should go in
/output/projects/helloWorld

i.e. there should be

/output/projects/helloWorld/libs/math/someMathFile.o
/output/projects/helloWorld/libs/math/someOtherMathFile.o
/output/projects/helloWorld/libs/math/math.a ( <<<
the actual lib )
/output/projects/helloWorld/someHelloWorldFile.o
Etc.

3) The final executable (i.e. helloWorld) should go in
/projects/helloWorld/output/
(This is the only file that lives outside of the top level
/output).

4) I'd like to remove all the /gcc/link-static/ etc that
gets appended to
the path.
All I'm interested in is appedning to the _filename_ some
info...e.g.
helloWorld_debug or helloWorld_release_static.
The important thing is that the executables all go to the
same output
location, since this is where the data lives that helloWorld
needs.
(There is a separate data build process that makes all the
data and copies
it in the right place).

In the end, /projects/helloWorld/output would have all you
need to run
helloWorld...i.e. it might look something like:

/projects/helloWorld/output/helloWorld_debug
/projects/helloWorld/output/helloWorld_release
/projects/helloWorld/output/TexturesFolder/
/projects/helloWorld/output/AudioFolder/
Etc.

Hope that makes sense...The question is, what jam files do I
need to modify
and what rules, to get the desired effects?
I've started building with -d9 to see what actually
happens, and there is a
lot of stuff to do with path.jam and virtual-target.jam,
etc. but there is a
LOT of stuff in there...I was hoping someone could point me
to the right
direction and narrow things down a bit.

Cheers,
Kos.
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build
[1]

about | contact  Other archives ( Real Estate discussion Medical topics )