From 384ccd8cdf461a3b0933d164694d5d696d9437cf Mon Sep 17 00:00:00 2001 From: Gary Oberbrunner Date: Mon, 30 May 2011 14:23:24 +0000 Subject: Handle DOS line endings in RC scanner. Fixes #2747. --- src/CHANGES.txt | 3 +++ src/RELEASE.txt | 1 + src/engine/SCons/Scanner/RC.py | 2 +- src/engine/SCons/Scanner/RCTests.py | 11 +++++++++++ 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/CHANGES.txt b/src/CHANGES.txt index be557b7..7afc9d8 100644 --- a/src/CHANGES.txt +++ b/src/CHANGES.txt @@ -7,6 +7,9 @@ RELEASE 2.1.0.alpha.yyyymmdd - NEW DATE WILL BE INSERTED HERE + From Anton Lazarev: + - Fix Windows resource compiler scanner to accept DOS line endings. + From Matthias: - Update MSVS documents to remove note indicating that only one project is currently supported per solution file. diff --git a/src/RELEASE.txt b/src/RELEASE.txt index 8cd46a9..6f71dcb 100644 --- a/src/RELEASE.txt +++ b/src/RELEASE.txt @@ -56,6 +56,7 @@ FIXES + - Windows resource compiler (RC) scanner now handles DOS line endings - Visual Studio project generation now works when CPPPATH contains Dir nodes - Visual Studio projects are regenerated when CPPPATH or CPPDEFINES change NOTE: this will cause all MSVS projects to be regenerated with this version. diff --git a/src/engine/SCons/Scanner/RC.py b/src/engine/SCons/Scanner/RC.py index f8313fb..437b861 100644 --- a/src/engine/SCons/Scanner/RC.py +++ b/src/engine/SCons/Scanner/RC.py @@ -40,7 +40,7 @@ def RCScan(): res_re= r'^(?:\s*#\s*(?:include)|' \ '.*?\s+(?:ICON|BITMAP|CURSOR|HTML|FONT|MESSAGETABLE|TYPELIB|REGISTRY|D3DFX)' \ '\s*.*?)' \ - '\s*(<|"| )([^>"\s]+)(?:[>" ])*$' + '\s*(<|"| )([^>"\s]+)(?:[>"\s])*$' resScanner = SCons.Scanner.ClassicCPP( "ResourceScanner", "$RCSUFFIXES", "CPPPATH", diff --git a/src/engine/SCons/Scanner/RCTests.py b/src/engine/SCons/Scanner/RCTests.py index 2d97df5..8802885 100644 --- a/src/engine/SCons/Scanner/RCTests.py +++ b/src/engine/SCons/Scanner/RCTests.py @@ -57,6 +57,7 @@ TEST_D3DFX D3DFX DISCARDABLE "testEffect.fx" """) +test.write('t3.rc','#include "t1.h"\r\n') # Create dummy include files headers = ['t1.h', @@ -144,12 +145,22 @@ class RCScannerTestCase2(unittest.TestCase): 'testregis.rgs','testtypelib.tlb'] deps_match(self, deps, headers) +class RCScannerTestCase3(unittest.TestCase): + def runTest(self): + path = [] + env = DummyEnvironment(RCSUFFIXES=['.rc','.rc2'], + CPPPATH=path) + s = SCons.Scanner.RC.RCScan() + deps = s(env.File('t3.rc'), env, path) + headers = ['t1.h'] + deps_match(self, deps, headers) def suite(): suite = unittest.TestSuite() suite.addTest(RCScannerTestCase1()) suite.addTest(RCScannerTestCase2()) + suite.addTest(RCScannerTestCase3()) return suite if __name__ == "__main__": -- cgit v0.12