How to specify gcc flags (CXXFLAGS) particularly for a specific module?

c++, c++11, gcc, waf

Solution

Although @drahnr's answer is correct for vanilla waf, it won't work with NS-3's build system, which is apparently what OP wants. To add CXXFLAGS to an NS-3 program, you can add them to the build object instead of in the configuration stage.

For example:

def build(bld):   
    obj = bld.create_ns3_program('my_app', ['core', 'other-dependencies'])
    obj.source = 'MyApplication.cpp'
    obj.cxxflags = ['-std=c++11']

Problem

I am building a new NS3 module recently. In my code, I use something new features of the `C++11 (c++0x)`, I want to add a gcc flags (CXXFLAGS) `"-std=c++0x"` to the `waf` configuration system. I tried to this: `CXXFLAGS="-std=c++0x" waf configure`, and then build it. However, it turns out that some of the exsiting modules such as ipv4-address is not compatible to `c++11`. Thus, I want to specify this flag particularly for my new module so that other modules won't be complied on c++11. I tried to add this to the wscript in my new module: ``` def configure(conf): conf.env.append_value('CXXFLAGS', '-std=c++0x') ``` It fails as the first trial. How can I do that?

Original source