|
View:
New views
5 Messages
—
Rating Filter:
Alert me
|
|
|
creating multiple targetsHi.
I have some projects, managed in an workspace like this: Jamroot ( workspace ) - Lib1 - Jamfile - Lib2 - Jamfile - exe1 - Jamfile - exe2 - Jamfile Everything works fine, except that I want to have a target in my Jamroot, to build all executables with one strike. I want to go to my workspace folder and type something like bjam all, and exe1 and exe2 will be created. How can I do that? Thanks and greetz Zingel -- GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT! Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01 _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build |
|
|
Re: creating multiple targetsAMDG
Stefan Zimmer wrote: > I have some projects, managed in an workspace like this: > > Jamroot ( workspace ) > - Lib1 > - Jamfile > - Lib2 > - Jamfile > - exe1 > - Jamfile > - exe2 > - Jamfile > > Everything works fine, except that I want to have a target in my Jamroot, to build all executables with one strike. I want to go to my workspace folder and type something like bjam all, and exe1 and exe2 will be created. > > How can I do that? > Use the alias rule: alias all : exe1 exe2 ; In Christ, Steven Watanabe _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build |
|
|
|
|
|
Re: creating multiple targetsStefan Zimmer wrote:
> Steven Watanabe wrote: >> Use the alias rule: >> >> alias all : exe1 exe2 ; >> > > Thanks, this works, but not as expected. > All my targets ( exe1 and exe2 ) get builded. But now the executables are only in their cryptic directorys "exe1/bin/gcc...". > I have written an install bin rule in each Jamfile, which shortens the path to $(BASE_DIR)/bin/[release or degug]. > this works fine, if I build the targets directly, but it doesn't work, with that alias rule. > Any idea to solve this? You can put targets which install exes into alias i.e. alias all : install_exe1 install_exe2 ; A simpler solution would be to replace alias with install (untested): install all : exe1 exe2 : <variant>debug:<location>bin/debug <variant>release:<location>bin/release ; _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build |
|
|
Re: creating multiple targetsStefan Zimmer wrote:
> Steven Watanabe wrote: > >> Use the alias rule: >> >> alias all : exe1 exe2 ; >> >> In Christ, >> Steven Watanabe >> > > Thanks, this works, but not as expected. > All my targets ( exe1 and exe2 ) get builded. But now the executables are only in their cryptic directorys "exe1/bin/gcc...". > I have written an install bin rule in each Jamfile, which shortens the path to $(BASE_DIR)/bin/[release or degug]. > this works fine, if I build the targets directly, but it doesn't work, with that alias rule. > Any idea to solve this? > > Tanks, > Zingel > You could do something like this: JAMFILE = [ modules.peek : JAMFILE ] ; local search_dirs = [ MATCH (.*)/.* : [ glob */$(JAMFILE) ] ] ; for local d in $(search_dirs) { ECHO "Will build project in" $(d) ; build-project $(d) ; } It should build the entire project (as if you had run bjam from that directory) for each sub-directory which has a jamfile. That may build more than you want, but it sounds like that should work for you. The "ECHO" is just in there so you can see what it does. JAMFILE on my system is "[Bb]uild.jam [Jj]amfile.v2 [Jj]amfile.jam", so it won't work if your JAMFILE is the same and your jamfiles are named "Jamfile". Phillip _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build |
| Free embeddable forum powered by Nabble | Forum Help |