Look for SConstruct, Sconstruct, and sconstruct files.
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Mon, 10 Sep 2001 20:30:28 +0000 (20:30 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Mon, 10 Sep 2001 20:30:28 +0000 (20:30 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@37 fdb21ef1-2011-0410-befe-b5e4ea1792b1

doc/design/native.sgml
doc/man/desc.sgml
doc/man/options.sgml
doc/scons.mod
src/scons.py
test/SConstruct.py [new file with mode: 0644]

index c9fd4bf64c719b96ac99ead8ce501107d5ac7843..e2a756c654c5889757a143b8046835453fb09b3b 100644 (file)
 
  <para>
 
-  By default, the &SCons; utility reads a configuration file named
-  &SConstruct; in the current directory.  A <option>-f</option>
-  command-line option exists to read a different file name.
+  By default, the &SCons; utility searches for a file named
+  &SConstruct;, &Sconstruct; or &sconstruct (in that order) in the
+  current directory, and reads its configuration from the first file
+  found.  A <option>-f</option> command-line option exists to read a
+  different file name.
 
  </para>
 
index da2961ee2cd738e0880158b45c034e4bd239ba7d..75ac82ac65f6fb56948b8dcd3f593d1f791bdd84 100644 (file)
 
  <para>
 
-   By default, &scons; reads configuration information from the
-   file named  <filename>SConstruct</filename> in the current
-   directory.  An alternate file name may be specified via the
-    <option>-f</option> option.  If the alternate file is not in
-   the local directory, &scons; will internally change its working
-   directory (chdir) to the directory containing the file.
+   By default, &scons; searches for a file named &SConstruct;,
+   &Sconstruct; or &sconstruct (in that order) in the current directory
+   and reads its configuration from the first file found.  An alternate
+   file name may be specified via the <option>-f</option> option.  If
+   the specified file is not in the local directory, &scons; will
+   internally change its working directory (chdir) to the directory
+   containing the file.
 
  </para>
 
index a231908b113d17ed45b6bab15e9b531fd5c5fa57..b24c18fae5162b2e4008d13cbde32ec1deff740d 100644 (file)
       <para>
 
         Change to the specified <replaceable>directory</replaceable>
-        before reading <filename>SConstruct</filename> or doing
-        anything else.  Multiple <option>-C</option> options are
-        interpreted relative to the previous one.  (This is nearly
-        equivalent to <literal>-f directory/SConstruct</literal>,
-        except that it will search for <filename>SConstruct</filename>,
+        before searching for the <filename>SConstruct</filename>,
+        <filename>Sconstruct</filename> or
+        <filename>sconstruct</filename> file, or doing anything
+        else.  Multiple <option>-C</option> options are interpreted
+        relative to the previous one.  (This is nearly equivalent
+        to <literal>-f directory/SConstruct</literal>, except
+        that it will search for <filename>SConstruct</filename>,
         <filename>Sconstruct</filename>, or
         <filename>sconstruct</filename> in the directory.)
 
index b8a231a06efa7728d28c0ce8abd937751a13824a..7e5470e4ac57246a2afd8ef1dd15c3646fd67383 100644 (file)
@@ -49,6 +49,8 @@
 <!ENTITY Makefile "<filename>Makefile</filename>">
 <!ENTITY SConscript "<filename>SConscript</filename>">
 <!ENTITY SConstruct "<filename>SConstruct</filename>">
+<!ENTITY Sconstruct "<filename>Sconstruct</filename>">
+<!ENTITY sconstruct "<filename>sconstruct</filename>">
 <!ENTITY sconsign "<filename>.consign</filename>">
 
 
index 7f86d1528b34d558014e7a95aceb770dbfab48be..f624fba5e62094b88afa32f0818fb1bc2a3f4086 100644 (file)
@@ -448,9 +448,12 @@ def main():
        opt_func[opt](opt, arg)
 
     if not Scripts:
-        Scripts.append('SConstruct')
+        for file in ['SConstruct', 'Sconstruct', 'sconstruct']:
+            if os.path.isfile(file):
+                Scripts.append(file)
+                break
 
-    if local_help and not os.path.isfile(Scripts[0]):
+    if local_help and not Scripts:
        # They specified -h, but there's no SConstruct.  Give them
        # the options usage before we try to read it and fail.
        PrintUsage()
diff --git a/test/SConstruct.py b/test/SConstruct.py
new file mode 100644 (file)
index 0000000..b68bed4
--- /dev/null
@@ -0,0 +1,40 @@
+#!/usr/bin/env python
+
+__revision__ = "test/SConstruct.py __REVISION__ __DATE__ __DEVELOPER__"
+
+import TestCmd
+
+test = TestCmd.TestCmd(program = 'scons.py',
+                       workdir = '',
+                       interpreter = 'python')
+
+wpath = test.workpath()
+
+test.write('sconstruct', """
+import os
+print "sconstruct", os.getcwd()
+""")
+
+test.run(chdir = '.')
+
+test.fail_test(test.stdout() != ("sconstruct %s\n" % wpath))
+
+test.write('Sconstruct', """
+import os
+print "Sconstruct", os.getcwd()
+""")
+
+test.run(chdir = '.')
+
+test.fail_test(test.stdout() != ("Sconstruct %s\n" % wpath))
+
+test.write('SConstruct', """
+import os
+print "SConstruct", os.getcwd()
+""")
+
+test.run(chdir = '.')
+
+test.fail_test(test.stdout() != ("SConstruct %s\n" % wpath))
+
+test.pass_test()