felix-lang/fbuild — Issue #7: passing string verbatim to fbuild and other issues
Author: thelastmammoth
Created: 2012-03-01 20:00:37+00:00
State: open

A) can we pass a string verbatim as one of the arguments, e.g. lflags, instead of passing in a vector of words?
Incidentally, that would solve the next problem (B).
That would also help migrating between a Makefile (or related) to Fbuild, since typically, arguments are given there as strings. Of course I wrote a 2-liner to go from string to vector of strings, but the problem in A remains.

B) Is there any way to build a C++ program/library that uses OSX frameworks ?
In WAF, you can simply provide:
bld.shlib(source='fun', target='libfun', framework=['A','B'])
There doesn't seem to be an equivalent in Fbuild.
I also tried passing those explicitly to

target = shared.build_lib('libfun', 'fun',lflags=['-framework','A','-framework','B'])

but that doesn't work as Fbuild converts it to :
/usr/bin/g++ -dynamiclib […] -framework A B […]
instead of
/usr/bin/g++ -dynamiclib […] -framework A -framework B […]
which fails (since B is not supposed to be a source)

C) problem when source file is absolute path:
when a source file /path/fun.cpp is absolute, the corresponding object file is in /path/fun.os instead of ./build/path/fun.cpp

D) support for multiple objects per source file
waf smartly compiles fun.cpp in fun.cpp.1.o , fun.cpp.2.o, etc. to support generating multiple object files for one source file.
It seems Fbuild only generates fun.os, which leads to having to recompile certain things and loses the intermediary files.

E) waf has a progress bar (indicating the percent of completion)
I'm not sure whether that'd be possible in Fbuild given the different build model used (and dynamic tasks), but I'm sure there should be some way to have at least an idea.. at the very least writing the task number

F) support for D, objective C, objective C++
Is there a way to at least let the user write his custom build for that?

G) does fbuild -j8have any effect (cf make -j8) ?
I couldn't see it in the (limited) doc