Building Boost 1.33.1 with different #defines for release and debug

View: New views
7 Messages — Rating Filter:   Alert me  

Building Boost 1.33.1 with different #defines for release and debug

by Ben Pope :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

NOTE: This is a duplicate of a post to boost.users where I got no
response for 24 hours, I'm reposting here to hit the correct audience.

Hi all,

I'm sure this must have been covered before, but I am completely
unable to find what I'm after, so apologies if that is the case.

I seem to have a feeling that BBv2 as shipped with 1.33.1 is not
completely ready for compiling with msvc 8 on Windows with
autolinking, but I'm not sure where I go that from.

What I would like to do is build the following configurations with VC8:
 * debug with shared libraries
 * release shared and static libraries with _SECURE_SCL=0 defined.

Can that be done in a single call of bjam?  I don't mind if we get
debug static at the same time.

And for completeness and the sake of comparison (and for when we move
to 1.34) what is the equivalent with BBv2?  I've noticed that there is
some conditional stuff:
<variant>release:<define>_SECURE_SCL=0
But couldn't work out how to do it on the command line, do I need to
create some jam config files?

Thanks for your time,

Ben
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build

Re: Building Boost 1.33.1 with different #defines for release and debug

by Vladimir Prus :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Ben Pope wrote:

> NOTE: This is a duplicate of a post to boost.users where I got no
> response for 24 hours, I'm reposting here to hit the correct audience.
>
> Hi all,
>
> I'm sure this must have been covered before, but I am completely
> unable to find what I'm after, so apologies if that is the case.
>
> I seem to have a feeling that BBv2 as shipped with 1.33.1 is not
> completely ready for compiling with msvc 8 on Windows with
> autolinking, but I'm not sure where I go that from.

1.33.1? I would say that autolink is not likely to work with V2
is that release.

> What I would like to do is build the following configurations with VC8:
>  * debug with shared libraries
>  * release shared and static libraries with _SECURE_SCL=0 defined.
>
> Can that be done in a single call of bjam?  I don't mind if we get
> debug static at the same time.
>
> And for completeness and the sake of comparison (and for when we move
> to 1.34) what is the equivalent with BBv2?  I've noticed that there is
> some conditional stuff:
> <variant>release:<define>_SECURE_SCL=0
> But couldn't work out how to do it on the command line, do I need to
> create some jam config files?

In 1.34, you'd have to:

1. Add

        <toolset>msvc:<define>_SECURE_SCL_0

to 'requirements' section in boost_root/Jamfile

2. Say

   bjam debug link=shared --prefix=whatever install toolset=msvc

HTH,
Volodya


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build

Re: Building Boost 1.33.1 with different #defines for release and debug

by Ben Pope :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 01/06/07, Vladimir Prus <ghost@...> wrote:
> Ben Pope wrote:
>
> >
> > I seem to have a feeling that BBv2 as shipped with 1.33.1 is not
> > completely ready for compiling with msvc 8 on Windows with
> > autolinking, but I'm not sure where I go that from.
>
> 1.33.1? I would say that autolink is not likely to work with V2
> is that release.

Indeed, so how do you do the following with BBv1?

> > What I would like to do is build the following configurations with VC8:
> >  * debug with shared libraries
> >  * release shared and static libraries with _SECURE_SCL=0 defined.
> >
> > Can that be done in a single call of bjam?  I don't mind if we get
> > debug static at the same time.

Thanks

Ben Pope
--
I'm not just a number. To many, I'm known as a string...
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build

Re: Building Boost 1.33.1 with different #defines for release and debug

by Vladimir Prus :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Friday 01 June 2007 21:04, Ben Pope wrote:

> On 01/06/07, Vladimir Prus <ghost@...> wrote:
> > Ben Pope wrote:
> >
> > >
> > > I seem to have a feeling that BBv2 as shipped with 1.33.1 is not
> > > completely ready for compiling with msvc 8 on Windows with
> > > autolinking, but I'm not sure where I go that from.
> >
> > 1.33.1? I would say that autolink is not likely to work with V2
> > is that release.
>
> Indeed, so how do you do the following with BBv1?

I don't remember :-(  Rene probably does ;-)

- Volodya
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build

Re: Building Boost 1.33.1 with different #defines for release and debug

by Ben Pope :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Well, failing all else I modified my Jamfile, but I'm not sure it's
entirely correct, can anybody check?

Starting at Line 199:

local lib-sources = [ install-sources lib ] ;

if $(lib-sources)
{
    local gNOWARN_INCOMPATIBLE_BUILDS = TRUE ;
    local gUNVERSIONED_VARIANT_TAG = [ cond $(layout-system) : TRUE ] ;

    local lib-build =
        debug release
        [ cond $(with-debug-python) : debug-python ]
        [ cond $(NT) : <runtime-link>static/dynamic ]
        <release><define>_SECURE_SCL=0
        <threading>single/multi
        ;
    local lib-target =
        [ cond $(with-install) : install : all ]
        [ cond $(with-stage) : stage : all ]
        ;


I just added this line:
<release><define>_SECURE_SCL=0

It seemed to work for a very simple "library" I added to the source
tree, but I'm not sure it will catch every library, can anybody
confirm?

Cheers,

Ben
--
I'm not just a number. To many, I'm known as a string...
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build

Re: Building Boost 1.33.1 with different #defines for release and debug

by Loïc Joly :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


Vladimir Prus wrote:
Ben Pope wrote:
> And for completeness and the sake of comparison (and for when we move
> to 1.34) what is the equivalent with BBv2?  I've noticed that there is
> some conditional stuff:
> <variant>release:<define>_SECURE_SCL=0
> But couldn't work out how to do it on the command line, do I need to
> create some jam config files?

In 1.34, you'd have to:

1. Add

        <toolset>msvc:<define>_SECURE_SCL_0

to 'requirements' section in boost_root/Jamfile
Hello,

I have the same problem, with boost 1.34, but could not understand your answer: I did not find what you call the 'requirements' section in boost_root/Jamfile. The closest I could find is:

project boost
    : requirements <include>.
      # disable auto-linking for all targets here,
      # primarily because it caused troubles with V2
      <define>BOOST_ALL_NO_LIB=1
      # Used to encode variant in target name. See the
      # 'tag' rule below.
      <tag>@$(__name__).tag
      <conditional>@handle-static-runtime
           
    : usage-requirements <include>.
    : build-dir bin.v2
    : default-build $(default-build)
    ;

Should I add it there ? Morever, in the line you specify, I cannot see where you specify that the flag should not be used for debug builds.

Finally, I'm a little bit nervous in modifying those kind of files... Couldn't such an option be set by modifying user-config.jam ? The best I could find was adding the following line in this file:
using msvc : : : <compileflags>-D_SECURE_SCL=0 ;

But I could not find a way to set a different value depending on the variant. Currently, I modify this file before recompiling.

Best regards,

--
Loïc

Re: Building Boost 1.33.1 with different #defines for release and debug

by Vladimir Prus :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Loïc Joly wrote:

>
>
>
> Vladimir Prus wrote:
>>
>> Ben Pope wrote:
>>> And for completeness and the sake of comparison (and for when we move
>>> to 1.34) what is the equivalent with BBv2?  I've noticed that there is
>>> some conditional stuff:
>>> <variant>release:<define>_SECURE_SCL=0
>>> But couldn't work out how to do it on the command line, do I need to
>>> create some jam config files?
>>
>> In 1.34, you'd have to:
>>
>> 1. Add
>>
>>         <toolset>msvc:<define>_SECURE_SCL_0
>>
>> to 'requirements' section in boost_root/Jamfile
>>
> Hello,
>
> I have the same problem, with boost 1.34, but could not understand your
> answer: I did not find what you call the 'requirements' section in
> boost_root/Jamfile. The closest I could find is:
>
> project boost
>     : requirements <include>.

Yes, it's it.

> Should I add it there ? Morever, in the line you specify, I cannot see
> where you specify that the flag should not be used for debug builds.

Err, I have no idea what what define is, and if it should be on for
release builds, or not. Something like:

        <toolset>msvc,<variant>release:<define>_SECURE_SCL_0

should catch just release builds.

> Finally, I'm a little bit nervous in modifying those kind of files...
> Couldn't such an option be set by modifying user-config.jam ?

Yes, add said thing to project requirements on user-config.jam.

- Volodya


_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost-build