diff options
author | Steven Knight <knight@baldmt.com> | 2002-08-23 01:15:21 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2002-08-23 01:15:21 (GMT) |
commit | d7079b4271cc358b515378e8b02bdf52637f3ee0 (patch) | |
tree | cb16674c1167c9b4a809d4ea2badd2e8e670186d | |
parent | 1e49c8ca34956b490c6e3e9a90b8322b983ebedf (diff) | |
download | SCons-d7079b4271cc358b515378e8b02bdf52637f3ee0.zip SCons-d7079b4271cc358b515378e8b02bdf52637f3ee0.tar.gz SCons-d7079b4271cc358b515378e8b02bdf52637f3ee0.tar.bz2 |
Make case differences not effect #include order. (Anthony Roach)
-rw-r--r-- | src/CHANGES.txt | 3 | ||||
-rw-r--r-- | src/engine/SCons/Scanner/C.py | 6 | ||||
-rw-r--r-- | src/engine/SCons/Scanner/Fortran.py | 6 | ||||
-rw-r--r-- | test/win32pathmadness.py | 32 |
4 files changed, 45 insertions, 2 deletions
diff --git a/src/CHANGES.txt b/src/CHANGES.txt index 4902256..fb8196e 100644 --- a/src/CHANGES.txt +++ b/src/CHANGES.txt @@ -29,6 +29,9 @@ RELEASE 0.09 - - Fix using an alias as a dependency of a target so that if one of the alias' dependencies gets rebuilt, the resulting target will, too. + - Fix differently ordered targets causing unnecessary rebuilds + on case insensitive systems. + RELEASE 0.08 - Mon, 15 Jul 2002 12:08:51 -0500 diff --git a/src/engine/SCons/Scanner/C.py b/src/engine/SCons/Scanner/C.py index f871551..d12fd45 100644 --- a/src/engine/SCons/Scanner/C.py +++ b/src/engine/SCons/Scanner/C.py @@ -129,7 +129,11 @@ def scan(node, env, target, fs = SCons.Node.FS.default_fs): return map(stripit, paired) def normalize(node): - return str(node) + # We don't want the order of includes to be + # modified by case changes on case insensitive OSes, so + # normalize the case of the filename here: + # (see test/win32pathmadness.py for a test of this) + return SCons.Node.FS._my_normcase(str(node)) node.found_includes[cpppath] = st(nodes, normalize) diff --git a/src/engine/SCons/Scanner/Fortran.py b/src/engine/SCons/Scanner/Fortran.py index 954510a..5e0d6d3 100644 --- a/src/engine/SCons/Scanner/Fortran.py +++ b/src/engine/SCons/Scanner/Fortran.py @@ -126,6 +126,10 @@ def scan(node, env, target, fs = SCons.Node.FS.default_fs): return map(stripit, paired) def normalize(node): - return str(node) + # We don't want the order of includes to be + # modified by case changes on case insensitive OSes, so + # normalize the case of the filename here: + # (see test/win32pathmadness.py for a test of this) + return SCons.Node.FS._my_normcase(str(node)) return st(nodes, normalize) diff --git a/test/win32pathmadness.py b/test/win32pathmadness.py index 745e24e..cb6cb57 100644 --- a/test/win32pathmadness.py +++ b/test/win32pathmadness.py @@ -97,5 +97,37 @@ scons: .* is up to date. scons: .* is up to date. """) +test.write('SConstruct', """ +env=Environment() +env.StaticLibrary('a', 'a.c') +env.StaticLibrary('b', 'b.c') +""") + +test.write('a.c', ''' +#include "a.h" +#include "b.h" +''') + +test.write('b.c', ''' +#include "a.h" +#include "B.h" +''') + +test.write('a.h', """ +#define A_H +""") + +test.write('b.h', """ +#define B_H +""") + +test.run(arguments='a.lib b.lib') +test.run(arguments='b.lib a.lib', stdout="""\ +scons: .* is up to date. +scons: .* is up to date. +""") + + + test.pass_test() |