On 13/08/14 14:08, Jose Fonseca wrote: > On 13/08/14 13:38, Emil Velikov wrote: >> Modify oour custom function/method SourceListParser to avoid including >> headers to the sources list. The SCons documentation is not explicit on >> the topic yet building mesa with SCons and MSVC is known to have >> problems when headers are listed. So be safe just drop them for now. >> >> Bugzilla: >> https://urldefense.proofpoint.com/v1/url?u=https://bugs.freedesktop.org/show_bug.cgi?id%3D82534&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=NMr9uy2iTjWVixC0wOcYCWEIYhfo80qKwRgdodpoDzA%3D%0A&m=bSAxUvr%2BkZFQrdOVPzHXFpuKRlYsjbOdppwDtQwMYV4%3D%0A&s=eafc5db76341cca1e444f46c18e5d3a29e51cac22ff52f018621406a72291954 >> >> Signed-off-by: Emil Velikov <emil.l.veli...@gmail.com> >> --- >> scons/source_list.py | 9 ++++++++- >> 1 file changed, 8 insertions(+), 1 deletion(-) >> >> diff --git a/scons/source_list.py b/scons/source_list.py >> index e16d1f9..5a1bd96 100644 >> --- a/scons/source_list.py >> +++ b/scons/source_list.py >> @@ -85,6 +85,9 @@ class SourceListParser(object): >> """Parse a source list line.""" >> # more lines to come >> if line and line[-1] == '\\': >> + # do not include any headers >> + if line[:-1].rstrip().endswith('.h'): >> + return 0; >> # spaces around "\\\n" are replaced by a single space >> if self.line_cont: >> self.line_cont += line[:-1].strip() + ' ' >> @@ -94,7 +97,11 @@ class SourceListParser(object): >> >> # combine with previous lines >> if self.line_cont: >> - line = self.line_cont + line.lstrip() >> + # do not include any headers >> + if line and line.rstrip().endswith('.h'): >> + line = self.line_cont >> + else: >> + line = self.line_cont + line.lstrip() >> self.line_cont = '' >> >> if line: >> > > I think that scons/custom.py is a better place for this manipulation. There > are a bunch of similarly natured maniuplations there already: > AFAICT this one might have a slightly greater overhead as we're adding the headers to the sym_table first and then dropping the headers as we iterate (construct the proper sources list).
Either one is fine with me, as long as it makes SCons+MSVC happy :) -Emil > > diff --git a/scons/custom.py b/scons/custom.py > index 09c937e..88a0d34 100644 > --- a/scons/custom.py > +++ b/scons/custom.py > @@ -276,6 +276,9 @@ def parse_source_list(env, filename, names=None): > # Prefer relative source paths, as absolute files tend to > # cause duplicate actions. > f = f[len(cur_srcdir + '/'):] > + # do not include any headers > + if f.endswith('.h'): > + continue > srcs.append(f) > > src_lists[sym] = srcs > > > Jose _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev