diff --git a/new/builtin.jam b/new/builtin.jam index c6870b97c..62a1787db 100644 --- a/new/builtin.jam +++ b/new/builtin.jam @@ -270,7 +270,7 @@ rule c-scanner ( includes * ) # Just propagate current scanner to includes, in a hope # that includes do not change scanners. - for local a in $(angle) + for local a in $(angle) $(quoted) { scanner.install $(__name__) : $(a) : $(target) ; } diff --git a/test/dependency-test/src1/b.h b/test/dependency-test/src1/b.h index 8b1378917..5af1f02bc 100644 --- a/test/dependency-test/src1/b.h +++ b/test/dependency-test/src1/b.h @@ -1 +1,2 @@ +#include "c.h" diff --git a/test/dependency-test/src1/c.h b/test/dependency-test/src1/c.h new file mode 100644 index 000000000..e69de29bb diff --git a/test/dependency_test.py b/test/dependency_test.py index 25004c09a..61326ce66 100644 --- a/test/dependency_test.py +++ b/test/dependency_test.py @@ -42,6 +42,12 @@ t.expect_touch("bin/gcc/debug/a.o") t.expect_touch("bin/gcc/debug/main-target-c/c" + exe_suffix) t.expect_nothing_more() +# included by "src/b.h". We had a bug: file included via "", +# like "b.h" is in this case was not scanned at all. +t.touch("src1/c.h") +t.run_build_system() +t.expect_touch("bin/gcc/debug/a" + exe_suffix) + t.touch("b.h") t.run_build_system() t.expect_nothing_more() diff --git a/test/module_actions.pyc b/test/module_actions.pyc index d9a2bd1dd..c40fcb0fd 100644 Binary files a/test/module_actions.pyc and b/test/module_actions.pyc differ diff --git a/v2/test/dependency-test/src1/b.h b/v2/test/dependency-test/src1/b.h index 8b1378917..5af1f02bc 100644 --- a/v2/test/dependency-test/src1/b.h +++ b/v2/test/dependency-test/src1/b.h @@ -1 +1,2 @@ +#include "c.h" diff --git a/v2/test/dependency-test/src1/c.h b/v2/test/dependency-test/src1/c.h new file mode 100644 index 000000000..e69de29bb diff --git a/v2/test/dependency_test.py b/v2/test/dependency_test.py index 25004c09a..61326ce66 100644 --- a/v2/test/dependency_test.py +++ b/v2/test/dependency_test.py @@ -42,6 +42,12 @@ t.expect_touch("bin/gcc/debug/a.o") t.expect_touch("bin/gcc/debug/main-target-c/c" + exe_suffix) t.expect_nothing_more() +# included by "src/b.h". We had a bug: file included via "", +# like "b.h" is in this case was not scanned at all. +t.touch("src1/c.h") +t.run_build_system() +t.expect_touch("bin/gcc/debug/a" + exe_suffix) + t.touch("b.h") t.run_build_system() t.expect_nothing_more() diff --git a/v2/test/module_actions.pyc b/v2/test/module_actions.pyc index d9a2bd1dd..c40fcb0fd 100644 Binary files a/v2/test/module_actions.pyc and b/v2/test/module_actions.pyc differ diff --git a/v2/tools/builtin.jam b/v2/tools/builtin.jam index c6870b97c..62a1787db 100644 --- a/v2/tools/builtin.jam +++ b/v2/tools/builtin.jam @@ -270,7 +270,7 @@ rule c-scanner ( includes * ) # Just propagate current scanner to includes, in a hope # that includes do not change scanners. - for local a in $(angle) + for local a in $(angle) $(quoted) { scanner.install $(__name__) : $(a) : $(target) ; }