diff options
author | Steven Knight <knight@baldmt.com> | 2002-04-22 22:34:14 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2002-04-22 22:34:14 (GMT) |
commit | 094f305d5d6e668a8273b1efc67d89e2414314f6 (patch) | |
tree | 1a030795e86f42558436373081ff06a3b1ad6b9f /test/CC.py | |
parent | 7a20266245e3cccfbec62c01ee62c037ec13d162 (diff) | |
download | SCons-094f305d5d6e668a8273b1efc67d89e2414314f6.zip SCons-094f305d5d6e668a8273b1efc67d89e2414314f6.tar.gz SCons-094f305d5d6e668a8273b1efc67d89e2414314f6.tar.bz2 |
Treat .c (lower case) and .C (upper case) files the same on case-insensitive systems.
Diffstat (limited to 'test/CC.py')
-rw-r--r-- | test/CC.py | 111 |
1 files changed, 111 insertions, 0 deletions
@@ -38,6 +38,117 @@ else: test = TestSCons.TestSCons() + + +if sys.platform == 'win32': + + test.write('mylink.py', r""" +import string +import sys +args = sys.argv[1:] +while args: + a = args[0] + if a[0] != '/': + break + args = args[1:] + if string.lower(a[:5]) == '/out:': out = a[5:] +infile = open(args[0], 'rb') +outfile = open(out, 'wb') +for l in infile.readlines(): + if l[:8] != '/*link*/': + outfile.write(l) +sys.exit(0) +""") + + test.write('mycc.py', r""" +import sys +args = sys.argv[1:] +inf = None +while args: + a = args[0] + args = args[1:] + if a[0] != '/': + if not inf: + inf = a + continue + if a[:3] == '/Fo': out = a[3:] +infile = open(inf, 'rb') +outfile = open(out, 'wb') +for l in infile.readlines(): + if l[:6] != '/*cc*/': + outfile.write(l) +sys.exit(0) +""") + +else: + + test.write('mylink.py', r""" +import getopt +import sys +opts, args = getopt.getopt(sys.argv[1:], 'o:') +for opt, arg in opts: + if opt == '-o': out = arg +infile = open(args[0], 'rb') +outfile = open(out, 'wb') +for l in infile.readlines(): + if l[:8] != '/*link*/': + outfile.write(l) +sys.exit(0) +""") + + test.write('mycc.py', r""" +import getopt +import sys +opts, args = getopt.getopt(sys.argv[1:], 'co:') +for opt, arg in opts: + if opt == '-o': out = arg +infile = open(args[0], 'rb') +outfile = open(out, 'wb') +for l in infile.readlines(): + if l[:6] != '/*cc*/': + outfile.write(l) +sys.exit(0) +""") + +test.write('SConstruct', """ +cc = Environment().Dictionary('CC') +env = Environment(LINK = r'%s mylink.py', + CC = r'%s mycc.py', + CXX = cc) +env.Program(target = 'test1', source = 'test1.c') +""" % (python, python)) + +test.write('test1.c', r"""This is a .c file. +/*cc*/ +/*link*/ +""") + +test.run(arguments = '.', stderr = None) + +test.fail_test(test.read('test1' + _exe) != "This is a .c file.\n") + +if os.path.normcase('.c') == os.path.normcase('.C'): + + test.write('SConstruct', """ +cc = Environment().Dictionary('CC') +env = Environment(LINK = r'%s mylink.py', + CC = r'%s mycc.py', + CXX = cc) +env.Program(target = 'test2', source = 'test2.C') +""" % (python, python)) + + test.write('test2.C', r"""This is a .C file. +/*cc*/ +/*link*/ +""") + + test.run(arguments = '.', stderr = None) + + test.fail_test(test.read('test2' + _exe) != "This is a .C file.\n") + + + + test.write("wrapper.py", """import os import string |