From 825b906ec01e0dfc72d892846adc61fa9830fc40 Mon Sep 17 00:00:00 2001 From: Steven Watanabe Date: Sat, 27 Dec 2008 20:31:15 +0000 Subject: [PATCH] Make c-scanner use native path format for included headers in order to match the names of generated headers [SVN r50390] --- v2/test/implicit_dependency.py | 33 +++++++++++++++++++++++++++++++++ v2/tools/builtin.jam | 4 ++++ 2 files changed, 37 insertions(+) diff --git a/v2/test/implicit_dependency.py b/v2/test/implicit_dependency.py index 4fc103ac6..91e2644c8 100644 --- a/v2/test/implicit_dependency.py +++ b/v2/test/implicit_dependency.py @@ -45,4 +45,37 @@ t.run_build_system() t.expect_addition("bin/$toolset/debug/hello.exe") +t.rm("bin") + +t.write("jamroot.jam", """ +make dir/a.h : : gen-header ; +explicit dir/a.h ; + +exe hello : hello.cpp : dir/a.h ; + +import os ; +if [ os.name ] = NT +{ + actions gen-header + { + echo int i; > $(<) + } +} +else +{ + actions gen-header + { + echo "int i;" > $(<) + } +} +""") + +t.write("hello.cpp", """ +#include "dir/a.h" +int main() { return i; } +""") +t.run_build_system() + +t.expect_addition("bin/$toolset/debug/hello.exe") + t.cleanup() diff --git a/v2/tools/builtin.jam b/v2/tools/builtin.jam index 67c8c4397..d55f676b2 100644 --- a/v2/tools/builtin.jam +++ b/v2/tools/builtin.jam @@ -15,11 +15,13 @@ import feature ; import generators ; import numbers ; import os ; +import path ; import print ; import project ; import property ; import regex ; import scanner ; +import sequence ; import stage ; import symlink ; import toolset ; @@ -441,7 +443,9 @@ class c-scanner : scanner rule process ( target : matches * : binding ) { local angle = [ regex.transform $(matches) : "<(.*)>" ] ; + angle = [ sequence.transform path.native : $(angle) ] ; local quoted = [ regex.transform $(matches) : "\"(.*)\"" ] ; + quoted = [ sequence.transform path.native : $(quoted) ] ; # CONSIDER: the new scoping rule seem to defeat "on target" variables. local g = [ on $(target) return $(HDRGRIST) ] ;