[Scons-users] implicite include dependencies is not working in scons-2.x.x

Ronny De Clerck ronny.declerck at advalvas.be
Mon Jan 27 13:48:13 EST 2014


As from version 2 of scons a source file is not rebuild in case a dependent include file is changed. In version 1.3.1 the rebuilding is done correctly. Following is the output of a very small test that seems to confirm this.



+ python --version

Python 2.7.3



+ scons --version

[?1034hSCons by Steven Knight et al.:

script: v1.3.1.r5110, 2010/07/25 16:14:38, by bdeegan on cooldog

engine: v1.3.1.r5110, 2010/07/25 16:14:38, by bdeegan on cooldog

Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 The SCons Foundation



+ cat main.cpp

#include "main.h"

int main()

{

return RETURNVALUE;

}



+ cat main.h

#define RETURNVALUE 0



+ cat SConstruct

Program('main.cpp')



+ scons --tree=all

[?1034hscons: Reading SConscript files ...

scons: done reading SConscript files.

scons: Building targets ...

g++ -o main.o -c main.cpp

g++ -o main.exe main.o

+-.

+-main.cpp

+-main.exe

| +-main.o

| | +-main.cpp

| | +-main.h

| | +-/bin/g++

| +-/bin/g++

+-main.h

+-main.o

| +-main.cpp

| +-main.h

| +-/bin/g++

+-SConstruct

scons: done building targets.



+ scons

[?1034hscons: Reading SConscript files ...

scons: done reading SConscript files.

scons: Building targets ...

scons: `.' is up to date.

scons: done building targets.



+ echo rubbish > main.h



+ scons

[?1034hscons: Reading SConscript files ...

scons: done reading SConscript files.

scons: Building targets ...

g++ -o main.o -c main.cpp

In file included from main.cpp:1:0:

main.h:1:1: error: ‘rubbish’ does not name a type

rubbish

^

scons: *** [main.o] Error 1

scons: building terminated because of errors.





<<< install version 2.3.0 of scons

<<< remove .o, .exe, .socnsign.dblite

<<< repair main.h



+ scons --version

[?1034hSCons by Steven Knight et al.:

script: v2.3.0, 2013/03/03 09:48:35, by garyo on reepicheep

engine: v2.3.0, 2013/03/03 09:48:35, by garyo on reepicheep

engine path: ['/usr/lib/scons-2.3.0/SCons']

Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 The SCons Foundation



+ scons --tree=all

[?1034hscons: Reading SConscript files ...

scons: done reading SConscript files.

scons: Building targets ...

g++ -o main.o -c main.cpp

g++ -o main.exe main.o

+-.

+-main.cpp

+-main.exe

| +-main.o <<<< There is no main.h dependency !!!

| | +-main.cpp

| | +-/bin/g++

| +-/bin/g++

+-main.o

| +-main.cpp

| +-/bin/g++

+-SConstruct

scons: done building targets.



+ scons

[?1034hscons: Reading SConscript files ...

scons: done reading SConscript files.

scons: Building targets ...

scons: `.' is up to date.

scons: done building targets.



+ echo rubbish > main.h



+ scons

[?1034hscons: Reading SConscript files ...

scons: done reading SConscript files.

scons: Building targets ...

scons: `.' is up to date. <<<< main.o is not recompiled !!!

scons: done building targets.





Best regards,

Ronny.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://four.pairlist.net/pipermail/scons-users/attachments/20140127/ce1b5d61/attachment-0001.html


More information about the Scons-users mailing list