Issue 2279: Support $SWIGOUTDIR values with spaces in the
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Thu, 8 Jan 2009 16:40:36 +0000 (16:40 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Thu, 8 Jan 2009 16:40:36 +0000 (16:40 +0000)
directory name.  (Arve Knudsen)

git-svn-id: http://scons.tigris.org/svn/scons/trunk@3881 fdb21ef1-2011-0410-befe-b5e4ea1792b1

src/CHANGES.txt
src/engine/SCons/Tool/swig.py
test/SWIG/SWIGOUTDIR.py

index e793527be2e04ef83ea8319a6e12bff1c006928e..76cca21e039f008e172a6cce0a670a846ed47d89 100644 (file)
@@ -28,6 +28,8 @@ RELEASE 1.X - XXX
 
     - Document TestCommon.shobj_prefix variable.
 
+    - Support $SWIGOUTDIR values with spaces.
+
   From Gary Oberbrunner:
 
     - Allow AppendENVPath() and PrependENVPath() to interpret '#'
index eb4ca79857b8c619c8486d13495f6b8a2381e83e..08f8cd494201a0e8938abeb8112bf446c658b981 100644 (file)
@@ -112,7 +112,7 @@ def generate(env):
     env['SWIGFLAGS']         = SCons.Util.CLVar('')
     env['SWIGCFILESUFFIX']   = '_wrap$CFILESUFFIX'
     env['SWIGCXXFILESUFFIX'] = '_wrap$CXXFILESUFFIX'
-    env['_SWIGOUTDIR']       = '${"-outdir " + str(SWIGOUTDIR)}'
+    env['_SWIGOUTDIR']       = r'${"-outdir \"%s\"" % SWIGOUTDIR}'
     env['SWIGPATH']          = []
     env['SWIGINCPREFIX']     = '-I'
     env['SWIGINCSUFFIX']     = ''
index e0f3f25e46929e57b5999bd51441fdc638e76913..a875e801163aec363351cb4712c5a12c71da978b 100644 (file)
@@ -55,7 +55,7 @@ env = Environment(tools = ['default', 'swig'],
 Java_foo_interface = env.SharedLibrary(
     'Java_foo_interface', 
     'Java_foo_interface.i', 
-    SWIGOUTDIR = 'java/build',
+    SWIGOUTDIR = 'java/build dir',
     SWIGFLAGS = '-c++ -java -Wall',
     SWIGCXXFILESUFFIX = "_wrap.cpp")
 """ % locals())
@@ -64,19 +64,24 @@ test.write('Java_foo_interface.i', """\
 %module foopack
 """)
 
-# SCons should realize that it needs to create the java/build
-# subdirectory to hold the generate .java files.
+# SCons should realize that it needs to create the "java/build dir"
+# subdirectory to hold the generated .java files.
 test.run(arguments = '.')
 
+test.must_exist('java/build dir/foopackJNI.java')
+test.must_exist('java/build dir/foopack.java') 
+
 # SCons should remove the built .java files.
-test.run(arguments = '-c java/build/foopack.java java/build/foopackJNI.java')
+test.run(arguments = '-c')
 
-test.must_not_exist('java/build/foopackJNI.java')
-test.must_not_exist('java/build/foopack.java') 
+test.must_not_exist('java/build dir/foopackJNI.java')
+test.must_not_exist('java/build dir/foopack.java') 
 
 # SCons should realize it needs to rebuild the removed .java files.
 test.not_up_to_date(arguments = '.')
 
+test.must_exist('java/build dir/foopackJNI.java')
+test.must_exist('java/build dir/foopack.java') 
 
 
 test.pass_test()