Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2003-07-07 03:23:52


Hi Jürgen,

> Sorry, I ran into an unannounced meeting and unforeseen problems
> upgrading mit W2k Box to VC 7.1 last week. But now I should be able to
> check my mail regularly.

No problem!

> > It's probably possible to allow project-root.jam to change type of .c
> > files to C++, though it looks like a bad solution: we need this only
> > for a single project, not globally.
>
> Do you know how ?

Unfortunately, no... the obvious idea is to make suffix->type mapping
per-project, not global, but that's quite a bunch of work.

> > > 2. Platform dependent dependencies.
> >
> > contain code covering this.
> >
> > I think you're the third person who encounters this same issue, so it
> > should be addressed now.
> >
> >
> > "I'd like to use feature such-and-such, if it's already valid,
> > it's OK, otherwise, please make it valid".
> >
> > Something like:
> >
> > feature.ensure-valid <os>LINUX <os>NT ;
> >
> > What would you say about this approach.
>
> Sounds good. This would work for every feature, like <toolset>, right ?
> And bjam would catch typos when I the do <os>LINUS or so.

Yep, that's the motivation for this idea, as opposed to allowing any values.

> Where would I put this ? I guess boost-build.jam ?
> +1 from my side.

I think you should be able to put it everywhere, including project-root.jam,
Jamfile, and user/site config. "boost-build.jam" would not work however ---
it's loaded *before* the core of build system. Even before modules mechanism
is loaded.

> > > 3. STLport.
> > >
> > > Working great, but find a diff attached which eliminates annoying
> > >
> > > warning: target id '@/stlport/stlport uses deprecated syntax,
> > > warning: which may be removed in a future version.
> > > warning: reference is made from project at 'RailSys/simu'
> >
> > I've made the correction. Thanks!
>
> Could you please fix qt.jam. It also contains old syntax. Thanx !

Hmm... could you point specific place? I've built both qt and qt-uic examples
without any warnings at all.

> > > I wonder if bjam could support static linking of STLport on Win32
> > > using
> > >
> > > <define>_STLP_USE_STATIC_LIB
> > > <define>_RTLDLL
> > >
> > > somehow.
> > > This results in linking against static lib, using system runtime.
> > > It uses special stlport lib with _staticx extension, build by
> > > stlport make target "staticx". It is quite useful, because I dont
> > > have to deliver STLport .dll to my customers.
> >
> > So, to use stlport on windows with <link>static you'd have to
> > - use different name of library
> > - add those two defines ?
>
> Yes. You got it.

Good.

> > Yep, I think it is possible. Probably, you could try adding this
> > feature yourself, since I don't have static stlport readily
> > available? The name is computed in 'stlport-target-class.construct'
> > and additional requirements are in
> > 'stlport-target-class.compute-usage-requirements'.
>
> I'll take a look at that.

Okay.

> > > 4. Qt-Toolset
> > > I'm trying to add support for qt-uic "embedding" feature.
> > > This is used by Qt-Designer to embed *.png files in a C++ source
> > > code. The files are compiled with the command line
> > > uic -embed <unique id> <list-of .png files> - o embedded.cpp
> > >
> > > Thomas Witt and I have hacked some code for V1.
> > > Can someone drop me a hint how I can start to implement this on V2.
> > > And I thought I could add some more user friendliness on Win32
> > > (library name, defines etc.)
> >
> > What interface do you plan for the "embedding" feature. I never used
> > it (did not even know about it), so can't even imagine...
>
> Mmh. Let me see.
> When hacking V1, we simply added a list of .png Files to the target list
> of the executable. This "png-Files list" is then "embedded" as
> described above and the resulting .cpp is compiled into the
> application.
> Well, I think we could try:
>
> embed-images unique-id : image1.png image2.png : embedded.cpp ;
>
> exe app : main.cpp unique-id ;
>
> and then call
>
> uic -embed unique-id image1.png image2.png -o embedded.cpp
> in order to created embedded.cpp.

I think this interface is right.

> I'd like to have "embedded.cpp" optional and defaulting to
> "unique-id.cpp".

If I understand correctly "unique-id" will be "project name" for UIC, and
"embedded.cpp" -- output file? Yes, I think it's possible to support
arbitrary name for output file. Another option is name output file the same
as main-target (e.g. "unique" id and make an option for specifying project
name). Which one is best is up to you.

> Could you drop me some links to get more information about "hacking"
> bjam ?

There's beginnings of "extender manual" at
http://boost.sf.net/boost-build2/doc/extending.html

You can use the example as the starting point. Except that VERBATIM file type
will become PNG and the action body will be different. Also

"generator.register-standard"

will become

"generate.register-composing"

since you'll want to allow many PNG files as sources.

- Volodya

>
> Yours,
>
> Jürgen

 


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk