Commits

Anonymous committed 5379801

Add -I support.

  • Participants
  • Parent commits 63e4f28

Comments (0)

Files changed (2)

File src/scons.py

 local_help = None
 num_jobs = 1
 Scripts = []
+include_dirs = []
 
 # utility functions
 
 	short = 'i', long = ['ignore-errors'],
 	help = "Ignore errors from build actions.")
 
-    Option(func = opt_not_yet,
+    def opt_I(opt, arg):
+	global include_dirs
+	include_dirs = include_dirs + [arg]
+
+    Option(func = opt_I,
 	short = 'I', long = ['include-dir'], arg = 'DIRECTORY',
 	help = "Search DIRECTORY for imported Python modules.")
 
     #
     #sys.path = dirlist
 
+    sys.path = include_dirs + sys.path
+
     # initialize node factory
     init()
 

File test/option--I.py

                        workdir = '',
                        interpreter = 'python')
 
-test.write('SConstruct', "")
+test.subdir('sub1', 'sub2')
 
-test.run(chdir = '.', arguments = '-I foo')
+test.write(['sub1', 'foo.py'], """
+variable = "sub1/foo"
+""")
 
-test.fail_test(test.stderr() !=
-		"Warning:  the -I option is not yet implemented\n")
+test.write(['sub2', 'foo.py'], """
+variable = "sub2/foo"
+""")
 
-test.run(chdir = '.', arguments = '--include-dir=foo')
+test.write(['sub2', 'bar.py'], """
+variable = "sub2/bar"
+""")
 
-test.fail_test(test.stderr() !=
-		"Warning:  the --include-dir option is not yet implemented\n")
+test.write('SConstruct', """
+import foo
+print foo.variable
+import bar
+print bar.variable
+""")
+
+test.run(chdir = '.', arguments = '-I sub1 -I sub2')
+
+test.fail_test(test.stdout() != "sub1/foo\nsub2/bar\n")
+test.fail_test(test.stderr() != "")
+
+test.run(chdir = '.', arguments = '--include-dir=sub2 --include-dir=sub1')
+
+test.fail_test(test.stdout() != "sub2/foo\nsub2/bar\n")
+test.fail_test(test.stderr() != "")
 
 test.pass_test()