f = _open(self._tmp_name, "wb", self._mode)
cPickle.dump(self._dict, f, 1)
f.close()
+ # Win32 doesn't allow renaming if the file exists, so unlink it first.
+ os.unlink(self._file_name)
os.rename(self._tmp_name, self._file_name)
self._needs_sync = 00000
if (keep_all_files):
import os
import string
+_exe = TestSCons._exe
+lib_ = TestSCons.lib_
+_lib = TestSCons._lib
+_obj = TestSCons._obj
+dll_ = TestSCons.dll_
+_dll = TestSCons._dll
+
if sys.platform == 'win32':
- _obj = '.obj'
fooflags = '/nologo -DFOO'
barflags = '/nologo -DBAR'
else:
- _obj = '.o'
fooflags = '-DFOO'
barflags = '-DBAR'
os.path.join('bld', 'subsrcdir', 'boo.c'),
]
-sub_build_nodes = [ os.path.join('bld','subsrcdir','boo.o'),
- os.path.join('bld','goo.o'),
- os.path.join('bld','goof.c'),
- os.path.join('bld','libgoo.a'),
+sub_build_nodes = [ os.path.join('bld', 'subsrcdir','boo' + _obj),
+ os.path.join('bld', 'goo' + _obj),
+ os.path.join('bld', 'goof.c'),
+ os.path.join('bld', lib_ + 'goo' + _lib),
]
-build_nodes = ['fooprog', 'libfoo.so', 'foo.o',
- 'barprog', 'libbar.so', 'bar.o',
+build_nodes = ['fooprog' + _exe,
+ dll_ + 'foo' + _dll,
+ 'foo' + _obj,
+ 'barprog' + _exe,
+ dll_ + 'bar' + _dll,
+ 'bar' + _obj,
- 'gooprog',
+ 'gooprog' + _exe,
] + builddir_srcnodes + sub_build_nodes
test.write('SConstruct4', r"""
env = Environment()
-env.Command('test.out', 'test.in', 'cp $SOURCE $TARGET')
+env.Command('test.out', 'test.in', Copy('$TARGET', '$SOURCE'))
env.InstallAs('test2.out', 'test.out')
# Mark test2.out as precious so we'll handle the exception in
# FunctionAction() rather than when the target is cleaned before building.