Shared library test fixes. (Charles Crain)
authorstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Tue, 16 Apr 2002 03:24:39 +0000 (03:24 +0000)
committerstevenknight <stevenknight@fdb21ef1-2011-0410-befe-b5e4ea1792b1>
Tue, 16 Apr 2002 03:24:39 +0000 (03:24 +0000)
git-svn-id: http://scons.tigris.org/svn/scons/trunk@332 fdb21ef1-2011-0410-befe-b5e4ea1792b1

doc/man/scons.1
src/engine/SCons/Defaults.py
test/SHCXX.py
test/SHCXXFLAGS.py
test/SHLINK.py
test/SHLINKFLAGS.py
test/SharedLibrary.py

index ec2fbddc6795db9351113403346cc78a9d8c52d7..5fdc1aa9580c5534cf56ebc3c18a23ee4860eddb 100644 (file)
@@ -1281,6 +1281,7 @@ When this is set to true,
 a library build of a WIN32 shared library (.dll file)
 will also build a corresponding .def file at the same time,
 if a .def file is not already listed as a build target.
+The default is 0 (do not build a .def file).
 
 .IP WIN32DEFPREFIX
 The prefix used to build WIN32 .def files.
index 4fc745b2954ad0a41277c50591c74cc7e293332a..18233cf026e2131c0b05450d14d0d05e612b0a20 100644 (file)
@@ -441,7 +441,7 @@ def make_win32_env_from_paths(include, lib, path):
         'WIN32DEFSUFFIX'        : '.def',
         'WIN32DLLPREFIX'        : '/out:',
         'WIN32IMPLIBPREFIX'     : '/implib:',
-        'WIN32_INSERT_DEF'      : 1,
+        'WIN32_INSERT_DEF'      : 0,
         'ENV'        : {
             'INCLUDE'  : include,
             'LIB'      : lib,
index 0c3e2f2810ca5355d44cd8e7224721900c00d5bd..5825491b27a63181c782a507e98534ffeb4d7943 100644 (file)
@@ -50,11 +50,11 @@ test.write('SConstruct', """
 foo = Environment()
 shcxx = foo.Dictionary('SHCXX')
 bar = Environment(SHCXX = r'%s wrapper.py ' + shcxx)
-foo.Program(target = 'foo', source = 'foo.cc', shared = 1)
-bar.Program(target = 'bar', source = 'bar.cc', shared = 1)
+foo.Program(target = 'foo', source = 'foo.cpp', shared = 1)
+bar.Program(target = 'bar', source = 'bar.cpp', shared = 1)
 """ % python)
 
-test.write('foo.cc', r"""
+test.write('foo.cpp', r"""
 #include <stdio.h>
 #include <stdlib.h>
 int
@@ -66,7 +66,7 @@ main(int argc, char *argv[])
 }
 """)
 
-test.write('bar.cc', r"""
+test.write('bar.cpp', r"""
 #include <stdio.h>
 #include <stdlib.h>
 int
index af980fec0bb47c78b0da7eefeb47ccaf05cd49a5..5623795b4cf8174bcd1859bd3a88fc3c8ed43219 100644 (file)
@@ -42,13 +42,13 @@ test = TestSCons.TestSCons()
 test.write('SConstruct', """
 foo = Environment(SHCXXFLAGS = '%s')
 bar = Environment(SHCXXFLAGS = '%s')
-foo.Object(target = 'foo%s', source = 'prog.cc', shared = 1)
-bar.Object(target = 'bar%s', source = 'prog.cc', shared = 1)
+foo.Object(target = 'foo%s', source = 'prog.cpp', shared = 1)
+bar.Object(target = 'bar%s', source = 'prog.cpp', shared = 1)
 foo.Program(target = 'foo', source = 'foo%s', shared = 1)
 bar.Program(target = 'bar', source = 'bar%s', shared = 1)
 """ % (fooflags, barflags, _obj, _obj, _obj, _obj))
 
-test.write('prog.cc', r"""
+test.write('prog.cpp', r"""
 #include <stdio.h>
 #include <stdlib.h>
 int
@@ -73,8 +73,8 @@ test.run(program = test.workpath('bar'), stdout = "prog.c:  BAR\n")
 
 test.write('SConstruct', """
 bar = Environment(SHCXXFLAGS = '%s')
-bar.Object(target = 'foo%s', source = 'prog.cc', shared = 1)
-bar.Object(target = 'bar%s', source = 'prog.cc', shared = 1)
+bar.Object(target = 'foo%s', source = 'prog.cpp', shared = 1)
+bar.Object(target = 'bar%s', source = 'prog.cpp', shared = 1)
 bar.Program(target = 'foo', source = 'foo%s', shared = 1)
 bar.Program(target = 'bar', source = 'bar%s', shared = 1)
 """ % (barflags, _obj, _obj, _obj, _obj))
index 61060ee495ba1516235e18bf4d6c45349388128e..4d28e04220e31f173c12d31ba3011ff8f5fd5c14 100644 (file)
@@ -32,14 +32,14 @@ import TestSCons
 python = sys.executable
 
 if sys.platform == 'win32':
-    _exe = '.exe'
+    lib_ = ''
+    _shlib='.dll'
 else:
-    _exe = ''
-
+    lib_ = 'lib'
+    _shlib='.so'
+    
 test = TestSCons.TestSCons()
 
-test.pass_test()       #XXX Until someone can take a look and fix this.
-
 test.write("wrapper.py",
 """import os
 import string
@@ -52,36 +52,37 @@ test.write('SConstruct', """
 foo = Environment()
 shlink = foo.Dictionary('SHLINK')
 bar = Environment(SHLINK = r'%s wrapper.py ' + shlink)
-foo.Program(target = 'foo', source = 'foo.c', shared = 1)
-bar.Program(target = 'bar', source = 'bar.c', shared = 1)
+foo.Library(target = 'foo', source = 'foo.c', shared = 1)
+bar.Library(target = 'bar', source = 'bar.c', shared = 1)
 """ % python)
 
 test.write('foo.c', r"""
-int
-main(int argc, char *argv[])
+#include <stdio.h>
+
+void
+test()
 {
-       argv[argc++] = "--";
        printf("foo.c\n");
-       exit (0);
+       fflush(stdout);
 }
 """)
 
 test.write('bar.c', r"""
-int
-main(int argc, char *argv[])
+#include <stdio.h>
+
+void
+test()
 {
-       argv[argc++] = "--";
        printf("foo.c\n");
-       exit (0);
+       fflush(stdout);
 }
 """)
 
-
-test.run(arguments = 'foo' + _exe)
+test.run(arguments = lib_ + 'foo' + _shlib)
 
 test.fail_test(os.path.exists(test.workpath('wrapper.out')))
 
-test.run(arguments = 'bar' + _exe)
+test.run(arguments = lib_ + 'bar' + _shlib)
 
 test.fail_test(test.read('wrapper.out') != "wrapper.py\n")
 
index a885d84ca0b51e301e4d37ab191c103699f4e5f1..6494ad5cc3da259a1647a7c5ba2eec67b5408482 100644 (file)
@@ -32,14 +32,14 @@ import TestSCons
 python = sys.executable
 
 if sys.platform == 'win32':
-    _exe = '.exe'
+    lib_ = ''
+    _shlib = '.dll'
 else:
-    _exe = ''
+    lib_ = 'lib'
+    _shlib = '.so'
 
 test = TestSCons.TestSCons()
 
-test.pass_test()       #XXX Until someone can take a look and fix this.
-
 test.write("wrapper.py",
 """import os
 import string
@@ -51,38 +51,42 @@ os.system(string.join(sys.argv[1:], " "))
 test.write('SConstruct', """
 foo = Environment()
 shlink = foo.Dictionary('SHLINK')
-bar = Environment(SHLINK = '', SHLINKFLAGS = r'%s wrapper.py ' + shlink)
-foo.Program(target = 'foo', source = 'foo.c', shared = 1)
-bar.Program(target = 'bar', source = 'bar.c', shared = 1)
+shlinkflags = foo.Dictionary('SHLINKFLAGS')
+bar = Environment(SHLINK = '',
+                  SHLINKFLAGS = r'%s wrapper.py ' + shlink + ' ' + shlinkflags)
+foo.Library(target = 'foo', source = 'foo.c', shared = 1)
+bar.Library(target = 'bar', source = 'bar.c', shared = 1)
 """ % python)
 
 test.write('foo.c', r"""
-int
-main(int argc, char *argv[])
+#include <stdio.h>
+
+void
+test()
 {
-       argv[argc++] = "--";
        printf("foo.c\n");
-       exit (0);
+       fflush(stdout);
 }
 """)
 
 test.write('bar.c', r"""
-int
-main(int argc, char *argv[])
+#include <stdio.h>
+
+void
+test()
 {
-       argv[argc++] = "--";
        printf("foo.c\n");
-       exit (0);
+       fflush(stdout);
 }
 """)
 
-
-test.run(arguments = 'foo' + _exe)
+test.run(arguments = lib_ + 'foo' + _shlib)
 
 test.fail_test(os.path.exists(test.workpath('wrapper.out')))
 
-test.run(arguments = 'bar' + _exe)
+test.run(arguments = lib_ + 'bar' + _shlib)
 
 test.fail_test(test.read('wrapper.out') != "wrapper.py\n")
 
 test.pass_test()
+
index 038370b41a18247a53372cf3cc6550a43beeef0f..d00f5951beaef0550e465ecc1904cf8fcd37f943 100644 (file)
@@ -30,7 +30,7 @@ import os
 test = TestSCons.TestSCons()
 
 test.write('SConstruct', """
-env=Environment()
+env=Environment(WIN32_INSERT_DEF=1)
 env2 = Environment(LIBS = [ 'foo1', 'foo2', 'foo3' ],
                    LIBPATH = [ '.' ])
 env.Library(target = 'foo1', source = 'f1.c', shared=1)