mirror of
https://github.com/python/cpython.git
synced 2025-09-27 02:39:58 +00:00
Run svneol.py on all sources.
This commit is contained in:
parent
6733ef5273
commit
06510b2213
36 changed files with 19402 additions and 19402 deletions
|
@ -1,76 +1,76 @@
|
||||||
import unittest, os, errno
|
import unittest, os, errno
|
||||||
from ctypes import *
|
from ctypes import *
|
||||||
from ctypes.util import find_library
|
from ctypes.util import find_library
|
||||||
import threading
|
import threading
|
||||||
|
|
||||||
class Test(unittest.TestCase):
|
class Test(unittest.TestCase):
|
||||||
def test_open(self):
|
def test_open(self):
|
||||||
libc_name = find_library("c")
|
libc_name = find_library("c")
|
||||||
if libc_name is not None:
|
if libc_name is not None:
|
||||||
libc = CDLL(libc_name, use_errno=True)
|
libc = CDLL(libc_name, use_errno=True)
|
||||||
if os.name == "nt":
|
if os.name == "nt":
|
||||||
libc_open = libc._open
|
libc_open = libc._open
|
||||||
else:
|
else:
|
||||||
libc_open = libc.open
|
libc_open = libc.open
|
||||||
|
|
||||||
libc_open.argtypes = c_char_p, c_int
|
libc_open.argtypes = c_char_p, c_int
|
||||||
|
|
||||||
self.failUnlessEqual(libc_open("", 0), -1)
|
self.failUnlessEqual(libc_open("", 0), -1)
|
||||||
self.failUnlessEqual(get_errno(), errno.ENOENT)
|
self.failUnlessEqual(get_errno(), errno.ENOENT)
|
||||||
|
|
||||||
self.failUnlessEqual(set_errno(32), errno.ENOENT)
|
self.failUnlessEqual(set_errno(32), errno.ENOENT)
|
||||||
self.failUnlessEqual(get_errno(), 32)
|
self.failUnlessEqual(get_errno(), 32)
|
||||||
|
|
||||||
|
|
||||||
def _worker():
|
def _worker():
|
||||||
set_errno(0)
|
set_errno(0)
|
||||||
|
|
||||||
libc = CDLL(libc_name, use_errno=False)
|
libc = CDLL(libc_name, use_errno=False)
|
||||||
if os.name == "nt":
|
if os.name == "nt":
|
||||||
libc_open = libc._open
|
libc_open = libc._open
|
||||||
else:
|
else:
|
||||||
libc_open = libc.open
|
libc_open = libc.open
|
||||||
libc_open.argtypes = c_char_p, c_int
|
libc_open.argtypes = c_char_p, c_int
|
||||||
self.failUnlessEqual(libc_open("", 0), -1)
|
self.failUnlessEqual(libc_open("", 0), -1)
|
||||||
self.failUnlessEqual(get_errno(), 0)
|
self.failUnlessEqual(get_errno(), 0)
|
||||||
|
|
||||||
t = threading.Thread(target=_worker)
|
t = threading.Thread(target=_worker)
|
||||||
t.start()
|
t.start()
|
||||||
t.join()
|
t.join()
|
||||||
|
|
||||||
self.failUnlessEqual(get_errno(), 32)
|
self.failUnlessEqual(get_errno(), 32)
|
||||||
set_errno(0)
|
set_errno(0)
|
||||||
|
|
||||||
if os.name == "nt":
|
if os.name == "nt":
|
||||||
|
|
||||||
def test_GetLastError(self):
|
def test_GetLastError(self):
|
||||||
dll = WinDLL("kernel32", use_last_error=True)
|
dll = WinDLL("kernel32", use_last_error=True)
|
||||||
GetModuleHandle = dll.GetModuleHandleA
|
GetModuleHandle = dll.GetModuleHandleA
|
||||||
GetModuleHandle.argtypes = [c_wchar_p]
|
GetModuleHandle.argtypes = [c_wchar_p]
|
||||||
|
|
||||||
self.failUnlessEqual(0, GetModuleHandle("foo"))
|
self.failUnlessEqual(0, GetModuleHandle("foo"))
|
||||||
self.failUnlessEqual(get_last_error(), 126)
|
self.failUnlessEqual(get_last_error(), 126)
|
||||||
|
|
||||||
self.failUnlessEqual(set_last_error(32), 126)
|
self.failUnlessEqual(set_last_error(32), 126)
|
||||||
self.failUnlessEqual(get_last_error(), 32)
|
self.failUnlessEqual(get_last_error(), 32)
|
||||||
|
|
||||||
def _worker():
|
def _worker():
|
||||||
set_last_error(0)
|
set_last_error(0)
|
||||||
|
|
||||||
dll = WinDLL("kernel32", use_last_error=False)
|
dll = WinDLL("kernel32", use_last_error=False)
|
||||||
GetModuleHandle = dll.GetModuleHandleW
|
GetModuleHandle = dll.GetModuleHandleW
|
||||||
GetModuleHandle.argtypes = [c_wchar_p]
|
GetModuleHandle.argtypes = [c_wchar_p]
|
||||||
GetModuleHandle("bar")
|
GetModuleHandle("bar")
|
||||||
|
|
||||||
self.failUnlessEqual(get_last_error(), 0)
|
self.failUnlessEqual(get_last_error(), 0)
|
||||||
|
|
||||||
t = threading.Thread(target=_worker)
|
t = threading.Thread(target=_worker)
|
||||||
t.start()
|
t.start()
|
||||||
t.join()
|
t.join()
|
||||||
|
|
||||||
self.failUnlessEqual(get_last_error(), 32)
|
self.failUnlessEqual(get_last_error(), 32)
|
||||||
|
|
||||||
set_last_error(0)
|
set_last_error(0)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
|
|
@ -1,45 +1,45 @@
|
||||||
Received: from xcar [192.168.0.2] by jeeves.wooster.local
|
Received: from xcar [192.168.0.2] by jeeves.wooster.local
|
||||||
(SMTPD32-7.07 EVAL) id AFF92F0214; Sun, 12 May 2002 08:55:37 +0100
|
(SMTPD32-7.07 EVAL) id AFF92F0214; Sun, 12 May 2002 08:55:37 +0100
|
||||||
Date: Sun, 12 May 2002 08:56:15 +0100
|
Date: Sun, 12 May 2002 08:56:15 +0100
|
||||||
From: Father Time <father.time@xcar.wooster.local>
|
From: Father Time <father.time@xcar.wooster.local>
|
||||||
To: timbo@jeeves.wooster.local
|
To: timbo@jeeves.wooster.local
|
||||||
Subject: IMAP file test
|
Subject: IMAP file test
|
||||||
Message-ID: <6df65d354b.father.time@rpc.wooster.local>
|
Message-ID: <6df65d354b.father.time@rpc.wooster.local>
|
||||||
X-Organization: Home
|
X-Organization: Home
|
||||||
User-Agent: Messenger-Pro/2.50a (MsgServe/1.50) (RISC-OS/4.02) POPstar/2.03
|
User-Agent: Messenger-Pro/2.50a (MsgServe/1.50) (RISC-OS/4.02) POPstar/2.03
|
||||||
MIME-Version: 1.0
|
MIME-Version: 1.0
|
||||||
Content-Type: multipart/mixed; boundary="1618492860--2051301190--113853680"
|
Content-Type: multipart/mixed; boundary="1618492860--2051301190--113853680"
|
||||||
Status: R
|
Status: R
|
||||||
X-UIDL: 319998302
|
X-UIDL: 319998302
|
||||||
|
|
||||||
This message is in MIME format which your mailer apparently does not support.
|
This message is in MIME format which your mailer apparently does not support.
|
||||||
You either require a newer version of your software which supports MIME, or
|
You either require a newer version of your software which supports MIME, or
|
||||||
a separate MIME decoding utility. Alternatively, ask the sender of this
|
a separate MIME decoding utility. Alternatively, ask the sender of this
|
||||||
message to resend it in a different format.
|
message to resend it in a different format.
|
||||||
|
|
||||||
--1618492860--2051301190--113853680
|
--1618492860--2051301190--113853680
|
||||||
Content-Type: text/plain; charset=us-ascii
|
Content-Type: text/plain; charset=us-ascii
|
||||||
|
|
||||||
Simple email with attachment.
|
Simple email with attachment.
|
||||||
|
|
||||||
|
|
||||||
--1618492860--2051301190--113853680
|
--1618492860--2051301190--113853680
|
||||||
Content-Type: application/riscos; name="clock.bmp,69c"; type=BMP; load=&fff69c4b; exec=&355dd4d1; access=&03
|
Content-Type: application/riscos; name="clock.bmp,69c"; type=BMP; load=&fff69c4b; exec=&355dd4d1; access=&03
|
||||||
Content-Disposition: attachment; filename="clock.bmp"
|
Content-Disposition: attachment; filename="clock.bmp"
|
||||||
Content-Transfer-Encoding: base64
|
Content-Transfer-Encoding: base64
|
||||||
|
|
||||||
Qk12AgAAAAAAAHYAAAAoAAAAIAAAACAAAAABAAQAAAAAAAAAAADXDQAA1w0AAAAAAAAA
|
Qk12AgAAAAAAAHYAAAAoAAAAIAAAACAAAAABAAQAAAAAAAAAAADXDQAA1w0AAAAAAAAA
|
||||||
AAAAAAAAAAAAiAAAiAAAAIiIAIgAAACIAIgAiIgAALu7uwCIiIgAERHdACLuIgAz//8A
|
AAAAAAAAAAAAiAAAiAAAAIiIAIgAAACIAIgAiIgAALu7uwCIiIgAERHdACLuIgAz//8A
|
||||||
zAAAAN0R3QDu7iIA////AAAAAAAAAAAAAAAAAAAAAAAAAAi3AAAAAAAAADeAAAAAAAAA
|
zAAAAN0R3QDu7iIA////AAAAAAAAAAAAAAAAAAAAAAAAAAi3AAAAAAAAADeAAAAAAAAA
|
||||||
C3ADMzMzMANwAAAAAAAAAAAHMAAAAANwAAAAAAAAAACAMAd3zPfwAwgAAAAAAAAIAwd/
|
C3ADMzMzMANwAAAAAAAAAAAHMAAAAANwAAAAAAAAAACAMAd3zPfwAwgAAAAAAAAIAwd/
|
||||||
f8x/f3AwgAAAAAAAgDB0x/f3//zPAwgAAAAAAAcHfM9////8z/AwAAAAAAiwd/f3////
|
f8x/f3AwgAAAAAAAgDB0x/f3//zPAwgAAAAAAAcHfM9////8z/AwAAAAAAiwd/f3////
|
||||||
////A4AAAAAAcEx/f///////zAMAAAAAiwfM9////3///8zwOAAAAAcHf3////B/////
|
////A4AAAAAAcEx/f///////zAMAAAAAiwfM9////3///8zwOAAAAAcHf3////B/////
|
||||||
8DAAAAALB/f3///wd3d3//AwAAAABwTPf//wCQAAD/zAMAAAAAsEx/f///B////8wDAA
|
8DAAAAALB/f3///wd3d3//AwAAAABwTPf//wCQAAD/zAMAAAAAsEx/f///B////8wDAA
|
||||||
AAAHB39////wf/////AwAAAACwf39///8H/////wMAAAAIcHfM9///B////M8DgAAAAA
|
AAAHB39////wf/////AwAAAACwf39///8H/////wMAAAAIcHfM9///B////M8DgAAAAA
|
||||||
sHTH///wf///xAMAAAAACHB3f3//8H////cDgAAAAAALB3zH//D//M9wMAAAAAAAgLB0
|
sHTH///wf///xAMAAAAACHB3f3//8H////cDgAAAAAALB3zH//D//M9wMAAAAAAAgLB0
|
||||||
z39///xHAwgAAAAAAAgLB3d3RHd3cDCAAAAAAAAAgLAHd0R3cAMIAAAAAAAAgAgLcAAA
|
z39///xHAwgAAAAAAAgLB3d3RHd3cDCAAAAAAAAAgLAHd0R3cAMIAAAAAAAAgAgLcAAA
|
||||||
AAMwgAgAAAAACDAAAAu7t7cwAAgDgAAAAABzcIAAAAAAAAgDMwAAAAAAN7uwgAAAAAgH
|
AAMwgAgAAAAACDAAAAu7t7cwAAgDgAAAAABzcIAAAAAAAAgDMwAAAAAAN7uwgAAAAAgH
|
||||||
MzMAAAAACH97tzAAAAALu3c3gAAAAAAL+7tzDABAu7f7cAAAAAAACA+3MA7EQAv/sIAA
|
MzMAAAAACH97tzAAAAALu3c3gAAAAAAL+7tzDABAu7f7cAAAAAAACA+3MA7EQAv/sIAA
|
||||||
AAAAAAAIAAAAAAAAAIAAAAAA
|
AAAAAAAIAAAAAAAAAIAAAAAA
|
||||||
|
|
||||||
--1618492860--2051301190--113853680--
|
--1618492860--2051301190--113853680--
|
||||||
|
|
|
@ -1,415 +1,415 @@
|
||||||
import asyncore
|
import asyncore
|
||||||
import unittest
|
import unittest
|
||||||
import select
|
import select
|
||||||
import os
|
import os
|
||||||
import socket
|
import socket
|
||||||
import threading
|
import threading
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
|
|
||||||
from test import test_support
|
from test import test_support
|
||||||
from test.test_support import TESTFN, run_unittest, unlink
|
from test.test_support import TESTFN, run_unittest, unlink
|
||||||
from StringIO import StringIO
|
from StringIO import StringIO
|
||||||
|
|
||||||
HOST = test_support.HOST
|
HOST = test_support.HOST
|
||||||
|
|
||||||
class dummysocket:
|
class dummysocket:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.closed = False
|
self.closed = False
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
self.closed = True
|
self.closed = True
|
||||||
|
|
||||||
def fileno(self):
|
def fileno(self):
|
||||||
return 42
|
return 42
|
||||||
|
|
||||||
class dummychannel:
|
class dummychannel:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.socket = dummysocket()
|
self.socket = dummysocket()
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
self.socket.close()
|
self.socket.close()
|
||||||
|
|
||||||
class exitingdummy:
|
class exitingdummy:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def handle_read_event(self):
|
def handle_read_event(self):
|
||||||
raise asyncore.ExitNow()
|
raise asyncore.ExitNow()
|
||||||
|
|
||||||
handle_write_event = handle_read_event
|
handle_write_event = handle_read_event
|
||||||
handle_expt_event = handle_read_event
|
handle_expt_event = handle_read_event
|
||||||
|
|
||||||
class crashingdummy:
|
class crashingdummy:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.error_handled = False
|
self.error_handled = False
|
||||||
|
|
||||||
def handle_read_event(self):
|
def handle_read_event(self):
|
||||||
raise Exception()
|
raise Exception()
|
||||||
|
|
||||||
handle_write_event = handle_read_event
|
handle_write_event = handle_read_event
|
||||||
handle_expt_event = handle_read_event
|
handle_expt_event = handle_read_event
|
||||||
|
|
||||||
def handle_error(self):
|
def handle_error(self):
|
||||||
self.error_handled = True
|
self.error_handled = True
|
||||||
|
|
||||||
# used when testing senders; just collects what it gets until newline is sent
|
# used when testing senders; just collects what it gets until newline is sent
|
||||||
def capture_server(evt, buf, serv):
|
def capture_server(evt, buf, serv):
|
||||||
try:
|
try:
|
||||||
serv.listen(5)
|
serv.listen(5)
|
||||||
conn, addr = serv.accept()
|
conn, addr = serv.accept()
|
||||||
except socket.timeout:
|
except socket.timeout:
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
n = 200
|
n = 200
|
||||||
while n > 0:
|
while n > 0:
|
||||||
r, w, e = select.select([conn], [], [])
|
r, w, e = select.select([conn], [], [])
|
||||||
if r:
|
if r:
|
||||||
data = conn.recv(10)
|
data = conn.recv(10)
|
||||||
# keep everything except for the newline terminator
|
# keep everything except for the newline terminator
|
||||||
buf.write(data.replace('\n', ''))
|
buf.write(data.replace('\n', ''))
|
||||||
if '\n' in data:
|
if '\n' in data:
|
||||||
break
|
break
|
||||||
n -= 1
|
n -= 1
|
||||||
time.sleep(0.01)
|
time.sleep(0.01)
|
||||||
|
|
||||||
conn.close()
|
conn.close()
|
||||||
finally:
|
finally:
|
||||||
serv.close()
|
serv.close()
|
||||||
evt.set()
|
evt.set()
|
||||||
|
|
||||||
|
|
||||||
class HelperFunctionTests(unittest.TestCase):
|
class HelperFunctionTests(unittest.TestCase):
|
||||||
def test_readwriteexc(self):
|
def test_readwriteexc(self):
|
||||||
# Check exception handling behavior of read, write and _exception
|
# Check exception handling behavior of read, write and _exception
|
||||||
|
|
||||||
# check that ExitNow exceptions in the object handler method
|
# check that ExitNow exceptions in the object handler method
|
||||||
# bubbles all the way up through asyncore read/write/_exception calls
|
# bubbles all the way up through asyncore read/write/_exception calls
|
||||||
tr1 = exitingdummy()
|
tr1 = exitingdummy()
|
||||||
self.assertRaises(asyncore.ExitNow, asyncore.read, tr1)
|
self.assertRaises(asyncore.ExitNow, asyncore.read, tr1)
|
||||||
self.assertRaises(asyncore.ExitNow, asyncore.write, tr1)
|
self.assertRaises(asyncore.ExitNow, asyncore.write, tr1)
|
||||||
self.assertRaises(asyncore.ExitNow, asyncore._exception, tr1)
|
self.assertRaises(asyncore.ExitNow, asyncore._exception, tr1)
|
||||||
|
|
||||||
# check that an exception other than ExitNow in the object handler
|
# check that an exception other than ExitNow in the object handler
|
||||||
# method causes the handle_error method to get called
|
# method causes the handle_error method to get called
|
||||||
tr2 = crashingdummy()
|
tr2 = crashingdummy()
|
||||||
asyncore.read(tr2)
|
asyncore.read(tr2)
|
||||||
self.assertEqual(tr2.error_handled, True)
|
self.assertEqual(tr2.error_handled, True)
|
||||||
|
|
||||||
tr2 = crashingdummy()
|
tr2 = crashingdummy()
|
||||||
asyncore.write(tr2)
|
asyncore.write(tr2)
|
||||||
self.assertEqual(tr2.error_handled, True)
|
self.assertEqual(tr2.error_handled, True)
|
||||||
|
|
||||||
tr2 = crashingdummy()
|
tr2 = crashingdummy()
|
||||||
asyncore._exception(tr2)
|
asyncore._exception(tr2)
|
||||||
self.assertEqual(tr2.error_handled, True)
|
self.assertEqual(tr2.error_handled, True)
|
||||||
|
|
||||||
# asyncore.readwrite uses constants in the select module that
|
# asyncore.readwrite uses constants in the select module that
|
||||||
# are not present in Windows systems (see this thread:
|
# are not present in Windows systems (see this thread:
|
||||||
# http://mail.python.org/pipermail/python-list/2001-October/109973.html)
|
# http://mail.python.org/pipermail/python-list/2001-October/109973.html)
|
||||||
# These constants should be present as long as poll is available
|
# These constants should be present as long as poll is available
|
||||||
|
|
||||||
if hasattr(select, 'poll'):
|
if hasattr(select, 'poll'):
|
||||||
def test_readwrite(self):
|
def test_readwrite(self):
|
||||||
# Check that correct methods are called by readwrite()
|
# Check that correct methods are called by readwrite()
|
||||||
|
|
||||||
class testobj:
|
class testobj:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.read = False
|
self.read = False
|
||||||
self.write = False
|
self.write = False
|
||||||
self.expt = False
|
self.expt = False
|
||||||
|
|
||||||
def handle_read_event(self):
|
def handle_read_event(self):
|
||||||
self.read = True
|
self.read = True
|
||||||
|
|
||||||
def handle_write_event(self):
|
def handle_write_event(self):
|
||||||
self.write = True
|
self.write = True
|
||||||
|
|
||||||
def handle_expt_event(self):
|
def handle_expt_event(self):
|
||||||
self.expt = True
|
self.expt = True
|
||||||
|
|
||||||
def handle_error(self):
|
def handle_error(self):
|
||||||
self.error_handled = True
|
self.error_handled = True
|
||||||
|
|
||||||
for flag in (select.POLLIN, select.POLLPRI):
|
for flag in (select.POLLIN, select.POLLPRI):
|
||||||
tobj = testobj()
|
tobj = testobj()
|
||||||
self.assertEqual(tobj.read, False)
|
self.assertEqual(tobj.read, False)
|
||||||
asyncore.readwrite(tobj, flag)
|
asyncore.readwrite(tobj, flag)
|
||||||
self.assertEqual(tobj.read, True)
|
self.assertEqual(tobj.read, True)
|
||||||
|
|
||||||
# check that ExitNow exceptions in the object handler method
|
# check that ExitNow exceptions in the object handler method
|
||||||
# bubbles all the way up through asyncore readwrite call
|
# bubbles all the way up through asyncore readwrite call
|
||||||
tr1 = exitingdummy()
|
tr1 = exitingdummy()
|
||||||
self.assertRaises(asyncore.ExitNow, asyncore.readwrite, tr1, flag)
|
self.assertRaises(asyncore.ExitNow, asyncore.readwrite, tr1, flag)
|
||||||
|
|
||||||
# check that an exception other than ExitNow in the object handler
|
# check that an exception other than ExitNow in the object handler
|
||||||
# method causes the handle_error method to get called
|
# method causes the handle_error method to get called
|
||||||
tr2 = crashingdummy()
|
tr2 = crashingdummy()
|
||||||
asyncore.readwrite(tr2, flag)
|
asyncore.readwrite(tr2, flag)
|
||||||
self.assertEqual(tr2.error_handled, True)
|
self.assertEqual(tr2.error_handled, True)
|
||||||
|
|
||||||
tobj = testobj()
|
tobj = testobj()
|
||||||
self.assertEqual(tobj.write, False)
|
self.assertEqual(tobj.write, False)
|
||||||
asyncore.readwrite(tobj, select.POLLOUT)
|
asyncore.readwrite(tobj, select.POLLOUT)
|
||||||
self.assertEqual(tobj.write, True)
|
self.assertEqual(tobj.write, True)
|
||||||
|
|
||||||
# check that ExitNow exceptions in the object handler method
|
# check that ExitNow exceptions in the object handler method
|
||||||
# bubbles all the way up through asyncore readwrite call
|
# bubbles all the way up through asyncore readwrite call
|
||||||
tr1 = exitingdummy()
|
tr1 = exitingdummy()
|
||||||
self.assertRaises(asyncore.ExitNow, asyncore.readwrite, tr1,
|
self.assertRaises(asyncore.ExitNow, asyncore.readwrite, tr1,
|
||||||
select.POLLOUT)
|
select.POLLOUT)
|
||||||
|
|
||||||
# check that an exception other than ExitNow in the object handler
|
# check that an exception other than ExitNow in the object handler
|
||||||
# method causes the handle_error method to get called
|
# method causes the handle_error method to get called
|
||||||
tr2 = crashingdummy()
|
tr2 = crashingdummy()
|
||||||
asyncore.readwrite(tr2, select.POLLOUT)
|
asyncore.readwrite(tr2, select.POLLOUT)
|
||||||
self.assertEqual(tr2.error_handled, True)
|
self.assertEqual(tr2.error_handled, True)
|
||||||
|
|
||||||
for flag in (select.POLLERR, select.POLLHUP, select.POLLNVAL):
|
for flag in (select.POLLERR, select.POLLHUP, select.POLLNVAL):
|
||||||
tobj = testobj()
|
tobj = testobj()
|
||||||
self.assertEqual(tobj.expt, False)
|
self.assertEqual(tobj.expt, False)
|
||||||
asyncore.readwrite(tobj, flag)
|
asyncore.readwrite(tobj, flag)
|
||||||
self.assertEqual(tobj.expt, True)
|
self.assertEqual(tobj.expt, True)
|
||||||
|
|
||||||
# check that ExitNow exceptions in the object handler method
|
# check that ExitNow exceptions in the object handler method
|
||||||
# bubbles all the way up through asyncore readwrite calls
|
# bubbles all the way up through asyncore readwrite calls
|
||||||
tr1 = exitingdummy()
|
tr1 = exitingdummy()
|
||||||
self.assertRaises(asyncore.ExitNow, asyncore.readwrite, tr1, flag)
|
self.assertRaises(asyncore.ExitNow, asyncore.readwrite, tr1, flag)
|
||||||
|
|
||||||
# check that an exception other than ExitNow in the object handler
|
# check that an exception other than ExitNow in the object handler
|
||||||
# method causes the handle_error method to get called
|
# method causes the handle_error method to get called
|
||||||
tr2 = crashingdummy()
|
tr2 = crashingdummy()
|
||||||
asyncore.readwrite(tr2, flag)
|
asyncore.readwrite(tr2, flag)
|
||||||
self.assertEqual(tr2.error_handled, True)
|
self.assertEqual(tr2.error_handled, True)
|
||||||
|
|
||||||
def test_closeall(self):
|
def test_closeall(self):
|
||||||
self.closeall_check(False)
|
self.closeall_check(False)
|
||||||
|
|
||||||
def test_closeall_default(self):
|
def test_closeall_default(self):
|
||||||
self.closeall_check(True)
|
self.closeall_check(True)
|
||||||
|
|
||||||
def closeall_check(self, usedefault):
|
def closeall_check(self, usedefault):
|
||||||
# Check that close_all() closes everything in a given map
|
# Check that close_all() closes everything in a given map
|
||||||
|
|
||||||
l = []
|
l = []
|
||||||
testmap = {}
|
testmap = {}
|
||||||
for i in range(10):
|
for i in range(10):
|
||||||
c = dummychannel()
|
c = dummychannel()
|
||||||
l.append(c)
|
l.append(c)
|
||||||
self.assertEqual(c.socket.closed, False)
|
self.assertEqual(c.socket.closed, False)
|
||||||
testmap[i] = c
|
testmap[i] = c
|
||||||
|
|
||||||
if usedefault:
|
if usedefault:
|
||||||
socketmap = asyncore.socket_map
|
socketmap = asyncore.socket_map
|
||||||
try:
|
try:
|
||||||
asyncore.socket_map = testmap
|
asyncore.socket_map = testmap
|
||||||
asyncore.close_all()
|
asyncore.close_all()
|
||||||
finally:
|
finally:
|
||||||
testmap, asyncore.socket_map = asyncore.socket_map, socketmap
|
testmap, asyncore.socket_map = asyncore.socket_map, socketmap
|
||||||
else:
|
else:
|
||||||
asyncore.close_all(testmap)
|
asyncore.close_all(testmap)
|
||||||
|
|
||||||
self.assertEqual(len(testmap), 0)
|
self.assertEqual(len(testmap), 0)
|
||||||
|
|
||||||
for c in l:
|
for c in l:
|
||||||
self.assertEqual(c.socket.closed, True)
|
self.assertEqual(c.socket.closed, True)
|
||||||
|
|
||||||
def test_compact_traceback(self):
|
def test_compact_traceback(self):
|
||||||
try:
|
try:
|
||||||
raise Exception("I don't like spam!")
|
raise Exception("I don't like spam!")
|
||||||
except:
|
except:
|
||||||
real_t, real_v, real_tb = sys.exc_info()
|
real_t, real_v, real_tb = sys.exc_info()
|
||||||
r = asyncore.compact_traceback()
|
r = asyncore.compact_traceback()
|
||||||
else:
|
else:
|
||||||
self.fail("Expected exception")
|
self.fail("Expected exception")
|
||||||
|
|
||||||
(f, function, line), t, v, info = r
|
(f, function, line), t, v, info = r
|
||||||
self.assertEqual(os.path.split(f)[-1], 'test_asyncore.py')
|
self.assertEqual(os.path.split(f)[-1], 'test_asyncore.py')
|
||||||
self.assertEqual(function, 'test_compact_traceback')
|
self.assertEqual(function, 'test_compact_traceback')
|
||||||
self.assertEqual(t, real_t)
|
self.assertEqual(t, real_t)
|
||||||
self.assertEqual(v, real_v)
|
self.assertEqual(v, real_v)
|
||||||
self.assertEqual(info, '[%s|%s|%s]' % (f, function, line))
|
self.assertEqual(info, '[%s|%s|%s]' % (f, function, line))
|
||||||
|
|
||||||
|
|
||||||
class DispatcherTests(unittest.TestCase):
|
class DispatcherTests(unittest.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
asyncore.close_all()
|
asyncore.close_all()
|
||||||
|
|
||||||
def test_basic(self):
|
def test_basic(self):
|
||||||
d = asyncore.dispatcher()
|
d = asyncore.dispatcher()
|
||||||
self.assertEqual(d.readable(), True)
|
self.assertEqual(d.readable(), True)
|
||||||
self.assertEqual(d.writable(), True)
|
self.assertEqual(d.writable(), True)
|
||||||
|
|
||||||
def test_repr(self):
|
def test_repr(self):
|
||||||
d = asyncore.dispatcher()
|
d = asyncore.dispatcher()
|
||||||
self.assertEqual(repr(d), '<asyncore.dispatcher at %#x>' % id(d))
|
self.assertEqual(repr(d), '<asyncore.dispatcher at %#x>' % id(d))
|
||||||
|
|
||||||
def test_log(self):
|
def test_log(self):
|
||||||
d = asyncore.dispatcher()
|
d = asyncore.dispatcher()
|
||||||
|
|
||||||
# capture output of dispatcher.log() (to stderr)
|
# capture output of dispatcher.log() (to stderr)
|
||||||
fp = StringIO()
|
fp = StringIO()
|
||||||
stderr = sys.stderr
|
stderr = sys.stderr
|
||||||
l1 = "Lovely spam! Wonderful spam!"
|
l1 = "Lovely spam! Wonderful spam!"
|
||||||
l2 = "I don't like spam!"
|
l2 = "I don't like spam!"
|
||||||
try:
|
try:
|
||||||
sys.stderr = fp
|
sys.stderr = fp
|
||||||
d.log(l1)
|
d.log(l1)
|
||||||
d.log(l2)
|
d.log(l2)
|
||||||
finally:
|
finally:
|
||||||
sys.stderr = stderr
|
sys.stderr = stderr
|
||||||
|
|
||||||
lines = fp.getvalue().splitlines()
|
lines = fp.getvalue().splitlines()
|
||||||
self.assertEquals(lines, ['log: %s' % l1, 'log: %s' % l2])
|
self.assertEquals(lines, ['log: %s' % l1, 'log: %s' % l2])
|
||||||
|
|
||||||
def test_log_info(self):
|
def test_log_info(self):
|
||||||
d = asyncore.dispatcher()
|
d = asyncore.dispatcher()
|
||||||
|
|
||||||
# capture output of dispatcher.log_info() (to stdout via print)
|
# capture output of dispatcher.log_info() (to stdout via print)
|
||||||
fp = StringIO()
|
fp = StringIO()
|
||||||
stdout = sys.stdout
|
stdout = sys.stdout
|
||||||
l1 = "Have you got anything without spam?"
|
l1 = "Have you got anything without spam?"
|
||||||
l2 = "Why can't she have egg bacon spam and sausage?"
|
l2 = "Why can't she have egg bacon spam and sausage?"
|
||||||
l3 = "THAT'S got spam in it!"
|
l3 = "THAT'S got spam in it!"
|
||||||
try:
|
try:
|
||||||
sys.stdout = fp
|
sys.stdout = fp
|
||||||
d.log_info(l1, 'EGGS')
|
d.log_info(l1, 'EGGS')
|
||||||
d.log_info(l2)
|
d.log_info(l2)
|
||||||
d.log_info(l3, 'SPAM')
|
d.log_info(l3, 'SPAM')
|
||||||
finally:
|
finally:
|
||||||
sys.stdout = stdout
|
sys.stdout = stdout
|
||||||
|
|
||||||
lines = fp.getvalue().splitlines()
|
lines = fp.getvalue().splitlines()
|
||||||
if __debug__:
|
if __debug__:
|
||||||
expected = ['EGGS: %s' % l1, 'info: %s' % l2, 'SPAM: %s' % l3]
|
expected = ['EGGS: %s' % l1, 'info: %s' % l2, 'SPAM: %s' % l3]
|
||||||
else:
|
else:
|
||||||
expected = ['EGGS: %s' % l1, 'SPAM: %s' % l3]
|
expected = ['EGGS: %s' % l1, 'SPAM: %s' % l3]
|
||||||
|
|
||||||
self.assertEquals(lines, expected)
|
self.assertEquals(lines, expected)
|
||||||
|
|
||||||
def test_unhandled(self):
|
def test_unhandled(self):
|
||||||
d = asyncore.dispatcher()
|
d = asyncore.dispatcher()
|
||||||
|
|
||||||
# capture output of dispatcher.log_info() (to stdout via print)
|
# capture output of dispatcher.log_info() (to stdout via print)
|
||||||
fp = StringIO()
|
fp = StringIO()
|
||||||
stdout = sys.stdout
|
stdout = sys.stdout
|
||||||
try:
|
try:
|
||||||
sys.stdout = fp
|
sys.stdout = fp
|
||||||
d.handle_expt()
|
d.handle_expt()
|
||||||
d.handle_read()
|
d.handle_read()
|
||||||
d.handle_write()
|
d.handle_write()
|
||||||
d.handle_connect()
|
d.handle_connect()
|
||||||
d.handle_accept()
|
d.handle_accept()
|
||||||
finally:
|
finally:
|
||||||
sys.stdout = stdout
|
sys.stdout = stdout
|
||||||
|
|
||||||
lines = fp.getvalue().splitlines()
|
lines = fp.getvalue().splitlines()
|
||||||
expected = ['warning: unhandled exception',
|
expected = ['warning: unhandled exception',
|
||||||
'warning: unhandled read event',
|
'warning: unhandled read event',
|
||||||
'warning: unhandled write event',
|
'warning: unhandled write event',
|
||||||
'warning: unhandled connect event',
|
'warning: unhandled connect event',
|
||||||
'warning: unhandled accept event']
|
'warning: unhandled accept event']
|
||||||
self.assertEquals(lines, expected)
|
self.assertEquals(lines, expected)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class dispatcherwithsend_noread(asyncore.dispatcher_with_send):
|
class dispatcherwithsend_noread(asyncore.dispatcher_with_send):
|
||||||
def readable(self):
|
def readable(self):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def handle_connect(self):
|
def handle_connect(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
class DispatcherWithSendTests(unittest.TestCase):
|
class DispatcherWithSendTests(unittest.TestCase):
|
||||||
usepoll = False
|
usepoll = False
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
asyncore.close_all()
|
asyncore.close_all()
|
||||||
|
|
||||||
def test_send(self):
|
def test_send(self):
|
||||||
self.evt = threading.Event()
|
self.evt = threading.Event()
|
||||||
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
self.sock.settimeout(3)
|
self.sock.settimeout(3)
|
||||||
self.port = test_support.bind_port(self.sock)
|
self.port = test_support.bind_port(self.sock)
|
||||||
|
|
||||||
cap = StringIO()
|
cap = StringIO()
|
||||||
args = (self.evt, cap, self.sock)
|
args = (self.evt, cap, self.sock)
|
||||||
threading.Thread(target=capture_server, args=args).start()
|
threading.Thread(target=capture_server, args=args).start()
|
||||||
|
|
||||||
# wait a little longer for the server to initialize (it sometimes
|
# wait a little longer for the server to initialize (it sometimes
|
||||||
# refuses connections on slow machines without this wait)
|
# refuses connections on slow machines without this wait)
|
||||||
time.sleep(0.2)
|
time.sleep(0.2)
|
||||||
|
|
||||||
data = "Suppose there isn't a 16-ton weight?"
|
data = "Suppose there isn't a 16-ton weight?"
|
||||||
d = dispatcherwithsend_noread()
|
d = dispatcherwithsend_noread()
|
||||||
d.create_socket(socket.AF_INET, socket.SOCK_STREAM)
|
d.create_socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
d.connect((HOST, self.port))
|
d.connect((HOST, self.port))
|
||||||
|
|
||||||
# give time for socket to connect
|
# give time for socket to connect
|
||||||
time.sleep(0.1)
|
time.sleep(0.1)
|
||||||
|
|
||||||
d.send(data)
|
d.send(data)
|
||||||
d.send(data)
|
d.send(data)
|
||||||
d.send('\n')
|
d.send('\n')
|
||||||
|
|
||||||
n = 1000
|
n = 1000
|
||||||
while d.out_buffer and n > 0:
|
while d.out_buffer and n > 0:
|
||||||
asyncore.poll()
|
asyncore.poll()
|
||||||
n -= 1
|
n -= 1
|
||||||
|
|
||||||
self.evt.wait()
|
self.evt.wait()
|
||||||
|
|
||||||
self.assertEqual(cap.getvalue(), data*2)
|
self.assertEqual(cap.getvalue(), data*2)
|
||||||
|
|
||||||
|
|
||||||
class DispatcherWithSendTests_UsePoll(DispatcherWithSendTests):
|
class DispatcherWithSendTests_UsePoll(DispatcherWithSendTests):
|
||||||
usepoll = True
|
usepoll = True
|
||||||
|
|
||||||
if hasattr(asyncore, 'file_wrapper'):
|
if hasattr(asyncore, 'file_wrapper'):
|
||||||
class FileWrapperTest(unittest.TestCase):
|
class FileWrapperTest(unittest.TestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
self.d = "It's not dead, it's sleeping!"
|
self.d = "It's not dead, it's sleeping!"
|
||||||
file(TESTFN, 'w').write(self.d)
|
file(TESTFN, 'w').write(self.d)
|
||||||
|
|
||||||
def tearDown(self):
|
def tearDown(self):
|
||||||
unlink(TESTFN)
|
unlink(TESTFN)
|
||||||
|
|
||||||
def test_recv(self):
|
def test_recv(self):
|
||||||
fd = os.open(TESTFN, os.O_RDONLY)
|
fd = os.open(TESTFN, os.O_RDONLY)
|
||||||
w = asyncore.file_wrapper(fd)
|
w = asyncore.file_wrapper(fd)
|
||||||
|
|
||||||
self.assertNotEqual(w.fd, fd)
|
self.assertNotEqual(w.fd, fd)
|
||||||
self.assertNotEqual(w.fileno(), fd)
|
self.assertNotEqual(w.fileno(), fd)
|
||||||
self.assertEqual(w.recv(13), "It's not dead")
|
self.assertEqual(w.recv(13), "It's not dead")
|
||||||
self.assertEqual(w.read(6), ", it's")
|
self.assertEqual(w.read(6), ", it's")
|
||||||
w.close()
|
w.close()
|
||||||
self.assertRaises(OSError, w.read, 1)
|
self.assertRaises(OSError, w.read, 1)
|
||||||
|
|
||||||
def test_send(self):
|
def test_send(self):
|
||||||
d1 = "Come again?"
|
d1 = "Come again?"
|
||||||
d2 = "I want to buy some cheese."
|
d2 = "I want to buy some cheese."
|
||||||
fd = os.open(TESTFN, os.O_WRONLY | os.O_APPEND)
|
fd = os.open(TESTFN, os.O_WRONLY | os.O_APPEND)
|
||||||
w = asyncore.file_wrapper(fd)
|
w = asyncore.file_wrapper(fd)
|
||||||
|
|
||||||
w.write(d1)
|
w.write(d1)
|
||||||
w.send(d2)
|
w.send(d2)
|
||||||
w.close()
|
w.close()
|
||||||
self.assertEqual(file(TESTFN).read(), self.d + d1 + d2)
|
self.assertEqual(file(TESTFN).read(), self.d + d1 + d2)
|
||||||
|
|
||||||
|
|
||||||
def test_main():
|
def test_main():
|
||||||
tests = [HelperFunctionTests, DispatcherTests, DispatcherWithSendTests,
|
tests = [HelperFunctionTests, DispatcherTests, DispatcherWithSendTests,
|
||||||
DispatcherWithSendTests_UsePoll]
|
DispatcherWithSendTests_UsePoll]
|
||||||
if hasattr(asyncore, 'file_wrapper'):
|
if hasattr(asyncore, 'file_wrapper'):
|
||||||
tests.append(FileWrapperTest)
|
tests.append(FileWrapperTest)
|
||||||
|
|
||||||
run_unittest(*tests)
|
run_unittest(*tests)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
test_main()
|
test_main()
|
||||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
1058
PC/VS8.0/_msi.vcproj
1058
PC/VS8.0/_msi.vcproj
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
1090
PC/VS8.0/_ssl.vcproj
1090
PC/VS8.0/_ssl.vcproj
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,270 +1,270 @@
|
||||||
<?xml version="1.0" encoding="Windows-1252"?>
|
<?xml version="1.0" encoding="Windows-1252"?>
|
||||||
<VisualStudioProject
|
<VisualStudioProject
|
||||||
ProjectType="Visual C++"
|
ProjectType="Visual C++"
|
||||||
Version="8.00"
|
Version="8.00"
|
||||||
Name="bdist_wininst"
|
Name="bdist_wininst"
|
||||||
ProjectGUID="{EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}"
|
ProjectGUID="{EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}"
|
||||||
RootNamespace="wininst"
|
RootNamespace="wininst"
|
||||||
TargetFrameworkVersion="131072"
|
TargetFrameworkVersion="131072"
|
||||||
>
|
>
|
||||||
<Platforms>
|
<Platforms>
|
||||||
<Platform
|
<Platform
|
||||||
Name="Win32"
|
Name="Win32"
|
||||||
/>
|
/>
|
||||||
<Platform
|
<Platform
|
||||||
Name="x64"
|
Name="x64"
|
||||||
/>
|
/>
|
||||||
</Platforms>
|
</Platforms>
|
||||||
<ToolFiles>
|
<ToolFiles>
|
||||||
</ToolFiles>
|
</ToolFiles>
|
||||||
<Configurations>
|
<Configurations>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
OutputDirectory="..\..\lib\distutils\command"
|
OutputDirectory="..\..\lib\distutils\command"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
|
InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||||
CharacterSet="0"
|
CharacterSet="0"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"
|
Name="VCXMLDataGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
PreprocessorDefinitions="NDEBUG"
|
PreprocessorDefinitions="NDEBUG"
|
||||||
MkTypLibCompatible="true"
|
MkTypLibCompatible="true"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
TargetEnvironment="1"
|
TargetEnvironment="1"
|
||||||
TypeLibraryName=".\..\..\lib\distutils\command\wininst.tlb"
|
TypeLibraryName=".\..\..\lib\distutils\command\wininst.tlb"
|
||||||
HeaderFileName=""
|
HeaderFileName=""
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="1"
|
Optimization="1"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\PC\bdist_wininst;..\..\Include;..\..\Modules\zlib"
|
AdditionalIncludeDirectories="..\..\PC\bdist_wininst;..\..\Include;..\..\Modules\zlib"
|
||||||
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE"
|
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedResourceCompilerTool"
|
Name="VCManagedResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
PreprocessorDefinitions="NDEBUG"
|
PreprocessorDefinitions="NDEBUG"
|
||||||
Culture="0"
|
Culture="0"
|
||||||
AdditionalIncludeDirectories="..\..\PC;..\..\PC\bdist_wininst;..\..\Include"
|
AdditionalIncludeDirectories="..\..\PC;..\..\PC\bdist_wininst;..\..\Include"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"
|
Name="VCPreLinkEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies="comctl32.lib imagehlp.lib"
|
AdditionalDependencies="comctl32.lib imagehlp.lib"
|
||||||
OutputFile="..\..\lib\distutils\command\wininst-8.0.exe"
|
OutputFile="..\..\lib\distutils\command\wininst-8.0.exe"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
IgnoreDefaultLibraryNames="LIBC"
|
IgnoreDefaultLibraryNames="LIBC"
|
||||||
ProgramDatabaseFile="..\..\lib\distutils\command\wininst-8.0.pdb"
|
ProgramDatabaseFile="..\..\lib\distutils\command\wininst-8.0.pdb"
|
||||||
SubSystem="2"
|
SubSystem="2"
|
||||||
RandomizedBaseAddress="1"
|
RandomizedBaseAddress="1"
|
||||||
DataExecutionPrevention="0"
|
DataExecutionPrevention="0"
|
||||||
TargetMachine="1"
|
TargetMachine="1"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCALinkTool"
|
Name="VCALinkTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManifestTool"
|
Name="VCManifestTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXDCMakeTool"
|
Name="VCXDCMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCBscMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAppVerifierTool"
|
Name="VCAppVerifierTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|x64"
|
Name="Release|x64"
|
||||||
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
|
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
|
InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||||
CharacterSet="0"
|
CharacterSet="0"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"
|
Name="VCXMLDataGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
PreprocessorDefinitions="NDEBUG"
|
PreprocessorDefinitions="NDEBUG"
|
||||||
MkTypLibCompatible="true"
|
MkTypLibCompatible="true"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
TargetEnvironment="3"
|
TargetEnvironment="3"
|
||||||
TypeLibraryName=".\..\..\lib\distutils\command\wininst.tlb"
|
TypeLibraryName=".\..\..\lib\distutils\command\wininst.tlb"
|
||||||
HeaderFileName=""
|
HeaderFileName=""
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="1"
|
Optimization="1"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\..\PC\bdist_wininst;..\..\Include;..\..\Modules\zlib"
|
AdditionalIncludeDirectories="..\..\PC\bdist_wininst;..\..\Include;..\..\Modules\zlib"
|
||||||
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE"
|
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedResourceCompilerTool"
|
Name="VCManagedResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
PreprocessorDefinitions="NDEBUG"
|
PreprocessorDefinitions="NDEBUG"
|
||||||
Culture="0"
|
Culture="0"
|
||||||
AdditionalIncludeDirectories="..\..\PC;..\..\PC\bdist_wininst;..\..\Include"
|
AdditionalIncludeDirectories="..\..\PC;..\..\PC\bdist_wininst;..\..\Include"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"
|
Name="VCPreLinkEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies="comctl32.lib imagehlp.lib"
|
AdditionalDependencies="comctl32.lib imagehlp.lib"
|
||||||
OutputFile="..\..\lib\distutils\command\wininst-8.0-amd64.exe"
|
OutputFile="..\..\lib\distutils\command\wininst-8.0-amd64.exe"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
IgnoreDefaultLibraryNames="LIBC"
|
IgnoreDefaultLibraryNames="LIBC"
|
||||||
ProgramDatabaseFile="..\..\lib\distutils\command\wininst-8.0-amd64.pdb"
|
ProgramDatabaseFile="..\..\lib\distutils\command\wininst-8.0-amd64.pdb"
|
||||||
SubSystem="2"
|
SubSystem="2"
|
||||||
RandomizedBaseAddress="1"
|
RandomizedBaseAddress="1"
|
||||||
DataExecutionPrevention="0"
|
DataExecutionPrevention="0"
|
||||||
TargetMachine="17"
|
TargetMachine="17"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCALinkTool"
|
Name="VCALinkTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManifestTool"
|
Name="VCManifestTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXDCMakeTool"
|
Name="VCXDCMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCBscMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAppVerifierTool"
|
Name="VCAppVerifierTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
</Configurations>
|
</Configurations>
|
||||||
<References>
|
<References>
|
||||||
</References>
|
</References>
|
||||||
<Files>
|
<Files>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Source Files"
|
Name="Source Files"
|
||||||
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||||
>
|
>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\PC\bdist_wininst\extract.c"
|
RelativePath="..\..\PC\bdist_wininst\extract.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\PC\bdist_wininst\install.c"
|
RelativePath="..\..\PC\bdist_wininst\install.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<Filter
|
<Filter
|
||||||
Name="zlib"
|
Name="zlib"
|
||||||
>
|
>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\Modules\zlib\adler32.c"
|
RelativePath="..\..\Modules\zlib\adler32.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\Modules\zlib\crc32.c"
|
RelativePath="..\..\Modules\zlib\crc32.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\Modules\zlib\inffast.c"
|
RelativePath="..\..\Modules\zlib\inffast.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\Modules\zlib\inflate.c"
|
RelativePath="..\..\Modules\zlib\inflate.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\Modules\zlib\inftrees.c"
|
RelativePath="..\..\Modules\zlib\inftrees.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\Modules\zlib\zutil.c"
|
RelativePath="..\..\Modules\zlib\zutil.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Header Files"
|
Name="Header Files"
|
||||||
Filter="h;hpp;hxx;hm;inl"
|
Filter="h;hpp;hxx;hm;inl"
|
||||||
>
|
>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\PC\bdist_wininst\archive.h"
|
RelativePath="..\..\PC\bdist_wininst\archive.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Resource Files"
|
Name="Resource Files"
|
||||||
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||||
>
|
>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\PC\bdist_wininst\install.rc"
|
RelativePath="..\..\PC\bdist_wininst\install.rc"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\PC\bdist_wininst\PythonPowered.bmp"
|
RelativePath="..\..\PC\bdist_wininst\PythonPowered.bmp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
</Files>
|
</Files>
|
||||||
<Globals>
|
<Globals>
|
||||||
</Globals>
|
</Globals>
|
||||||
</VisualStudioProject>
|
</VisualStudioProject>
|
||||||
|
|
1090
PC/VS8.0/bz2.vcproj
1090
PC/VS8.0/bz2.vcproj
File diff suppressed because it is too large
Load diff
|
@ -1,178 +1,178 @@
|
||||||
/*
|
/*
|
||||||
* Helper program for killing lingering python[_d].exe processes before
|
* Helper program for killing lingering python[_d].exe processes before
|
||||||
* building, thus attempting to avoid build failures due to files being
|
* building, thus attempting to avoid build failures due to files being
|
||||||
* locked.
|
* locked.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#include <tlhelp32.h>
|
#include <tlhelp32.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#pragma comment(lib, "psapi")
|
#pragma comment(lib, "psapi")
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
#define PYTHON_EXE (L"python_d.exe")
|
#define PYTHON_EXE (L"python_d.exe")
|
||||||
#define PYTHON_EXE_LEN (12)
|
#define PYTHON_EXE_LEN (12)
|
||||||
#define KILL_PYTHON_EXE (L"kill_python_d.exe")
|
#define KILL_PYTHON_EXE (L"kill_python_d.exe")
|
||||||
#define KILL_PYTHON_EXE_LEN (17)
|
#define KILL_PYTHON_EXE_LEN (17)
|
||||||
#else
|
#else
|
||||||
#define PYTHON_EXE (L"python.exe")
|
#define PYTHON_EXE (L"python.exe")
|
||||||
#define PYTHON_EXE_LEN (10)
|
#define PYTHON_EXE_LEN (10)
|
||||||
#define KILL_PYTHON_EXE (L"kill_python.exe")
|
#define KILL_PYTHON_EXE (L"kill_python.exe")
|
||||||
#define KILL_PYTHON_EXE_LEN (15)
|
#define KILL_PYTHON_EXE_LEN (15)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int
|
int
|
||||||
main(int argc, char **argv)
|
main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
HANDLE hp, hsp, hsm; /* process, snapshot processes, snapshot modules */
|
HANDLE hp, hsp, hsm; /* process, snapshot processes, snapshot modules */
|
||||||
DWORD dac, our_pid;
|
DWORD dac, our_pid;
|
||||||
size_t len;
|
size_t len;
|
||||||
wchar_t path[MAX_PATH+1];
|
wchar_t path[MAX_PATH+1];
|
||||||
|
|
||||||
MODULEENTRY32W me;
|
MODULEENTRY32W me;
|
||||||
PROCESSENTRY32W pe;
|
PROCESSENTRY32W pe;
|
||||||
|
|
||||||
me.dwSize = sizeof(MODULEENTRY32W);
|
me.dwSize = sizeof(MODULEENTRY32W);
|
||||||
pe.dwSize = sizeof(PROCESSENTRY32W);
|
pe.dwSize = sizeof(PROCESSENTRY32W);
|
||||||
|
|
||||||
memset(path, 0, MAX_PATH+1);
|
memset(path, 0, MAX_PATH+1);
|
||||||
|
|
||||||
our_pid = GetCurrentProcessId();
|
our_pid = GetCurrentProcessId();
|
||||||
|
|
||||||
hsm = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, our_pid);
|
hsm = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, our_pid);
|
||||||
if (hsm == INVALID_HANDLE_VALUE) {
|
if (hsm == INVALID_HANDLE_VALUE) {
|
||||||
printf("CreateToolhelp32Snapshot[1] failed: %d\n", GetLastError());
|
printf("CreateToolhelp32Snapshot[1] failed: %d\n", GetLastError());
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Module32FirstW(hsm, &me)) {
|
if (!Module32FirstW(hsm, &me)) {
|
||||||
printf("Module32FirstW[1] failed: %d\n", GetLastError());
|
printf("Module32FirstW[1] failed: %d\n", GetLastError());
|
||||||
CloseHandle(hsm);
|
CloseHandle(hsm);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Enumerate over the modules for the current process in order to find
|
* Enumerate over the modules for the current process in order to find
|
||||||
* kill_process[_d].exe, then take a note of the directory it lives in.
|
* kill_process[_d].exe, then take a note of the directory it lives in.
|
||||||
*/
|
*/
|
||||||
do {
|
do {
|
||||||
if (_wcsnicmp(me.szModule, KILL_PYTHON_EXE, KILL_PYTHON_EXE_LEN))
|
if (_wcsnicmp(me.szModule, KILL_PYTHON_EXE, KILL_PYTHON_EXE_LEN))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
len = wcsnlen_s(me.szExePath, MAX_PATH) - KILL_PYTHON_EXE_LEN;
|
len = wcsnlen_s(me.szExePath, MAX_PATH) - KILL_PYTHON_EXE_LEN;
|
||||||
wcsncpy_s(path, MAX_PATH+1, me.szExePath, len);
|
wcsncpy_s(path, MAX_PATH+1, me.szExePath, len);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
} while (Module32NextW(hsm, &me));
|
} while (Module32NextW(hsm, &me));
|
||||||
|
|
||||||
CloseHandle(hsm);
|
CloseHandle(hsm);
|
||||||
|
|
||||||
if (path == NULL) {
|
if (path == NULL) {
|
||||||
printf("failed to discern directory of running process\n");
|
printf("failed to discern directory of running process\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Take a snapshot of system processes. Enumerate over the snapshot,
|
* Take a snapshot of system processes. Enumerate over the snapshot,
|
||||||
* looking for python processes. When we find one, verify it lives
|
* looking for python processes. When we find one, verify it lives
|
||||||
* in the same directory we live in. If it does, kill it. If we're
|
* in the same directory we live in. If it does, kill it. If we're
|
||||||
* unable to kill it, treat this as a fatal error and return 1.
|
* unable to kill it, treat this as a fatal error and return 1.
|
||||||
*
|
*
|
||||||
* The rationale behind this is that we're called at the start of the
|
* The rationale behind this is that we're called at the start of the
|
||||||
* build process on the basis that we'll take care of killing any
|
* build process on the basis that we'll take care of killing any
|
||||||
* running instances, such that the build won't encounter permission
|
* running instances, such that the build won't encounter permission
|
||||||
* denied errors during linking. If we can't kill one of the processes,
|
* denied errors during linking. If we can't kill one of the processes,
|
||||||
* we can't provide this assurance, and the build shouldn't start.
|
* we can't provide this assurance, and the build shouldn't start.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
hsp = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
|
hsp = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
|
||||||
if (hsp == INVALID_HANDLE_VALUE) {
|
if (hsp == INVALID_HANDLE_VALUE) {
|
||||||
printf("CreateToolhelp32Snapshot[2] failed: %d\n", GetLastError());
|
printf("CreateToolhelp32Snapshot[2] failed: %d\n", GetLastError());
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Process32FirstW(hsp, &pe)) {
|
if (!Process32FirstW(hsp, &pe)) {
|
||||||
printf("Process32FirstW failed: %d\n", GetLastError());
|
printf("Process32FirstW failed: %d\n", GetLastError());
|
||||||
CloseHandle(hsp);
|
CloseHandle(hsp);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
dac = PROCESS_QUERY_INFORMATION | PROCESS_VM_READ | PROCESS_TERMINATE;
|
dac = PROCESS_QUERY_INFORMATION | PROCESS_VM_READ | PROCESS_TERMINATE;
|
||||||
do {
|
do {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XXX TODO: if we really wanted to be fancy, we could check the
|
* XXX TODO: if we really wanted to be fancy, we could check the
|
||||||
* modules for all processes (not just the python[_d].exe ones)
|
* modules for all processes (not just the python[_d].exe ones)
|
||||||
* and see if any of our DLLs are loaded (i.e. python30[_d].dll),
|
* and see if any of our DLLs are loaded (i.e. python30[_d].dll),
|
||||||
* as that would also inhibit our ability to rebuild the solution.
|
* as that would also inhibit our ability to rebuild the solution.
|
||||||
* Not worth loosing sleep over though; for now, a simple check
|
* Not worth loosing sleep over though; for now, a simple check
|
||||||
* for just the python executable should be sufficient.
|
* for just the python executable should be sufficient.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (_wcsnicmp(pe.szExeFile, PYTHON_EXE, PYTHON_EXE_LEN))
|
if (_wcsnicmp(pe.szExeFile, PYTHON_EXE, PYTHON_EXE_LEN))
|
||||||
/* This isn't a python process. */
|
/* This isn't a python process. */
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* It's a python process, so figure out which directory it's in... */
|
/* It's a python process, so figure out which directory it's in... */
|
||||||
hsm = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pe.th32ProcessID);
|
hsm = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pe.th32ProcessID);
|
||||||
if (hsm == INVALID_HANDLE_VALUE)
|
if (hsm == INVALID_HANDLE_VALUE)
|
||||||
/*
|
/*
|
||||||
* If our module snapshot fails (which will happen if we don't own
|
* If our module snapshot fails (which will happen if we don't own
|
||||||
* the process), just ignore it and continue. (It seems different
|
* the process), just ignore it and continue. (It seems different
|
||||||
* versions of Windows return different values for GetLastError()
|
* versions of Windows return different values for GetLastError()
|
||||||
* in this situation; it's easier to just ignore it and move on vs.
|
* in this situation; it's easier to just ignore it and move on vs.
|
||||||
* stopping the build for what could be a false positive.)
|
* stopping the build for what could be a false positive.)
|
||||||
*/
|
*/
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!Module32FirstW(hsm, &me)) {
|
if (!Module32FirstW(hsm, &me)) {
|
||||||
printf("Module32FirstW[2] failed: %d\n", GetLastError());
|
printf("Module32FirstW[2] failed: %d\n", GetLastError());
|
||||||
CloseHandle(hsp);
|
CloseHandle(hsp);
|
||||||
CloseHandle(hsm);
|
CloseHandle(hsm);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
do {
|
do {
|
||||||
if (_wcsnicmp(me.szModule, PYTHON_EXE, PYTHON_EXE_LEN))
|
if (_wcsnicmp(me.szModule, PYTHON_EXE, PYTHON_EXE_LEN))
|
||||||
/* Wrong module, we're looking for python[_d].exe... */
|
/* Wrong module, we're looking for python[_d].exe... */
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (_wcsnicmp(path, me.szExePath, len))
|
if (_wcsnicmp(path, me.szExePath, len))
|
||||||
/* Process doesn't live in our directory. */
|
/* Process doesn't live in our directory. */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* Python process residing in the right directory, kill it! */
|
/* Python process residing in the right directory, kill it! */
|
||||||
hp = OpenProcess(dac, FALSE, pe.th32ProcessID);
|
hp = OpenProcess(dac, FALSE, pe.th32ProcessID);
|
||||||
if (!hp) {
|
if (!hp) {
|
||||||
printf("OpenProcess failed: %d\n", GetLastError());
|
printf("OpenProcess failed: %d\n", GetLastError());
|
||||||
CloseHandle(hsp);
|
CloseHandle(hsp);
|
||||||
CloseHandle(hsm);
|
CloseHandle(hsm);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!TerminateProcess(hp, 1)) {
|
if (!TerminateProcess(hp, 1)) {
|
||||||
printf("TerminateProcess failed: %d\n", GetLastError());
|
printf("TerminateProcess failed: %d\n", GetLastError());
|
||||||
CloseHandle(hsp);
|
CloseHandle(hsp);
|
||||||
CloseHandle(hsm);
|
CloseHandle(hsm);
|
||||||
CloseHandle(hp);
|
CloseHandle(hp);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
CloseHandle(hp);
|
CloseHandle(hp);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
} while (Module32NextW(hsm, &me));
|
} while (Module32NextW(hsm, &me));
|
||||||
|
|
||||||
CloseHandle(hsm);
|
CloseHandle(hsm);
|
||||||
|
|
||||||
} while (Process32NextW(hsp, &pe));
|
} while (Process32NextW(hsp, &pe));
|
||||||
|
|
||||||
CloseHandle(hsp);
|
CloseHandle(hsp);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* vi: set ts=8 sw=4 sts=4 expandtab */
|
/* vi: set ts=8 sw=4 sts=4 expandtab */
|
||||||
|
|
|
@ -1,279 +1,279 @@
|
||||||
<?xml version="1.0" encoding="Windows-1252"?>
|
<?xml version="1.0" encoding="Windows-1252"?>
|
||||||
<VisualStudioProject
|
<VisualStudioProject
|
||||||
ProjectType="Visual C++"
|
ProjectType="Visual C++"
|
||||||
Version="8.00"
|
Version="8.00"
|
||||||
Name="kill_python"
|
Name="kill_python"
|
||||||
ProjectGUID="{6DE10744-E396-40A5-B4E2-1B69AA7C8D31}"
|
ProjectGUID="{6DE10744-E396-40A5-B4E2-1B69AA7C8D31}"
|
||||||
RootNamespace="kill_python"
|
RootNamespace="kill_python"
|
||||||
Keyword="Win32Proj"
|
Keyword="Win32Proj"
|
||||||
TargetFrameworkVersion="196613"
|
TargetFrameworkVersion="196613"
|
||||||
>
|
>
|
||||||
<Platforms>
|
<Platforms>
|
||||||
<Platform
|
<Platform
|
||||||
Name="Win32"
|
Name="Win32"
|
||||||
/>
|
/>
|
||||||
<Platform
|
<Platform
|
||||||
Name="x64"
|
Name="x64"
|
||||||
/>
|
/>
|
||||||
</Platforms>
|
</Platforms>
|
||||||
<ToolFiles>
|
<ToolFiles>
|
||||||
</ToolFiles>
|
</ToolFiles>
|
||||||
<Configurations>
|
<Configurations>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Debug|Win32"
|
Name="Debug|Win32"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
InheritedPropertySheets=".\pyproject.vsprops;.\debug.vsprops"
|
InheritedPropertySheets=".\pyproject.vsprops;.\debug.vsprops"
|
||||||
CharacterSet="0"
|
CharacterSet="0"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"
|
Name="VCXMLDataGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedResourceCompilerTool"
|
Name="VCManagedResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"
|
Name="VCPreLinkEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
OutputFile="$(OutDir)\$(ProjectName)_d.exe"
|
OutputFile="$(OutDir)\$(ProjectName)_d.exe"
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCALinkTool"
|
Name="VCALinkTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManifestTool"
|
Name="VCManifestTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXDCMakeTool"
|
Name="VCXDCMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCBscMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAppVerifierTool"
|
Name="VCAppVerifierTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Debug|x64"
|
Name="Debug|x64"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
InheritedPropertySheets=".\pyproject.vsprops;.\debug.vsprops;.\x64.vsprops"
|
InheritedPropertySheets=".\pyproject.vsprops;.\debug.vsprops;.\x64.vsprops"
|
||||||
CharacterSet="0"
|
CharacterSet="0"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"
|
Name="VCXMLDataGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
TargetEnvironment="3"
|
TargetEnvironment="3"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedResourceCompilerTool"
|
Name="VCManagedResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"
|
Name="VCPreLinkEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
OutputFile="$(OutDir)\$(ProjectName)_d.exe"
|
OutputFile="$(OutDir)\$(ProjectName)_d.exe"
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCALinkTool"
|
Name="VCALinkTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManifestTool"
|
Name="VCManifestTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXDCMakeTool"
|
Name="VCXDCMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCBscMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAppVerifierTool"
|
Name="VCAppVerifierTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
|
InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
|
||||||
CharacterSet="0"
|
CharacterSet="0"
|
||||||
WholeProgramOptimization="1"
|
WholeProgramOptimization="1"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"
|
Name="VCXMLDataGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedResourceCompilerTool"
|
Name="VCManagedResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"
|
Name="VCPreLinkEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCALinkTool"
|
Name="VCALinkTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManifestTool"
|
Name="VCManifestTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXDCMakeTool"
|
Name="VCXDCMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCBscMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAppVerifierTool"
|
Name="VCAppVerifierTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|x64"
|
Name="Release|x64"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops;.\x64.vsprops"
|
InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops;.\x64.vsprops"
|
||||||
CharacterSet="0"
|
CharacterSet="0"
|
||||||
WholeProgramOptimization="1"
|
WholeProgramOptimization="1"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"
|
Name="VCXMLDataGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
TargetEnvironment="3"
|
TargetEnvironment="3"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedResourceCompilerTool"
|
Name="VCManagedResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"
|
Name="VCPreLinkEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCALinkTool"
|
Name="VCALinkTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManifestTool"
|
Name="VCManifestTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXDCMakeTool"
|
Name="VCXDCMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCBscMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAppVerifierTool"
|
Name="VCAppVerifierTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
</Configurations>
|
</Configurations>
|
||||||
<References>
|
<References>
|
||||||
</References>
|
</References>
|
||||||
<Files>
|
<Files>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Source Files"
|
Name="Source Files"
|
||||||
>
|
>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\kill_python.c"
|
RelativePath=".\kill_python.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
</Files>
|
</Files>
|
||||||
<Globals>
|
<Globals>
|
||||||
</Globals>
|
</Globals>
|
||||||
</VisualStudioProject>
|
</VisualStudioProject>
|
||||||
|
|
|
@ -1,162 +1,162 @@
|
||||||
<?xml version="1.0" encoding="windows-1250"?>
|
<?xml version="1.0" encoding="windows-1250"?>
|
||||||
<VisualStudioProject
|
<VisualStudioProject
|
||||||
ProjectType="Visual C++"
|
ProjectType="Visual C++"
|
||||||
Version="8.00"
|
Version="8.00"
|
||||||
Name="make_buildinfo"
|
Name="make_buildinfo"
|
||||||
ProjectGUID="{C73F0EC1-358B-4177-940F-0846AC8B04CD}"
|
ProjectGUID="{C73F0EC1-358B-4177-940F-0846AC8B04CD}"
|
||||||
RootNamespace="make_buildinfo"
|
RootNamespace="make_buildinfo"
|
||||||
Keyword="Win32Proj"
|
Keyword="Win32Proj"
|
||||||
TargetFrameworkVersion="131072"
|
TargetFrameworkVersion="131072"
|
||||||
>
|
>
|
||||||
<Platforms>
|
<Platforms>
|
||||||
<Platform
|
<Platform
|
||||||
Name="Win32"
|
Name="Win32"
|
||||||
/>
|
/>
|
||||||
<Platform
|
<Platform
|
||||||
Name="x64"
|
Name="x64"
|
||||||
/>
|
/>
|
||||||
</Platforms>
|
</Platforms>
|
||||||
<ToolFiles>
|
<ToolFiles>
|
||||||
</ToolFiles>
|
</ToolFiles>
|
||||||
<Configurations>
|
<Configurations>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
|
InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
|
||||||
CharacterSet="0"
|
CharacterSet="0"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"
|
Name="VCXMLDataGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
PreprocessorDefinitions="_CONSOLE"
|
PreprocessorDefinitions="_CONSOLE"
|
||||||
RuntimeLibrary="0"
|
RuntimeLibrary="0"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedResourceCompilerTool"
|
Name="VCManagedResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"
|
Name="VCPreLinkEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
OutputFile="$(OutDir)/make_buildinfo.exe"
|
OutputFile="$(OutDir)/make_buildinfo.exe"
|
||||||
ProgramDatabaseFile="$(TargetDir)$(TargetName).pdb"
|
ProgramDatabaseFile="$(TargetDir)$(TargetName).pdb"
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCALinkTool"
|
Name="VCALinkTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManifestTool"
|
Name="VCManifestTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXDCMakeTool"
|
Name="VCXDCMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCBscMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAppVerifierTool"
|
Name="VCAppVerifierTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|x64"
|
Name="Release|x64"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\release.vsprops"
|
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\release.vsprops"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"
|
Name="VCXMLDataGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
PreprocessorDefinitions="_CONSOLE"
|
PreprocessorDefinitions="_CONSOLE"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedResourceCompilerTool"
|
Name="VCManagedResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"
|
Name="VCPreLinkEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCALinkTool"
|
Name="VCALinkTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManifestTool"
|
Name="VCManifestTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXDCMakeTool"
|
Name="VCXDCMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCBscMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAppVerifierTool"
|
Name="VCAppVerifierTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
</Configurations>
|
</Configurations>
|
||||||
<References>
|
<References>
|
||||||
</References>
|
</References>
|
||||||
<Files>
|
<Files>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Source Files"
|
Name="Source Files"
|
||||||
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
|
||||||
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
|
||||||
>
|
>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\make_buildinfo.c"
|
RelativePath=".\make_buildinfo.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
</Files>
|
</Files>
|
||||||
<Globals>
|
<Globals>
|
||||||
</Globals>
|
</Globals>
|
||||||
</VisualStudioProject>
|
</VisualStudioProject>
|
||||||
|
|
|
@ -1,324 +1,324 @@
|
||||||
<?xml version="1.0" encoding="Windows-1252"?>
|
<?xml version="1.0" encoding="Windows-1252"?>
|
||||||
<VisualStudioProject
|
<VisualStudioProject
|
||||||
ProjectType="Visual C++"
|
ProjectType="Visual C++"
|
||||||
Version="8.00"
|
Version="8.00"
|
||||||
Name="make_versioninfo"
|
Name="make_versioninfo"
|
||||||
ProjectGUID="{F0E0541E-F17D-430B-97C4-93ADF0DD284E}"
|
ProjectGUID="{F0E0541E-F17D-430B-97C4-93ADF0DD284E}"
|
||||||
RootNamespace="make_versioninfo"
|
RootNamespace="make_versioninfo"
|
||||||
TargetFrameworkVersion="131072"
|
TargetFrameworkVersion="131072"
|
||||||
>
|
>
|
||||||
<Platforms>
|
<Platforms>
|
||||||
<Platform
|
<Platform
|
||||||
Name="Win32"
|
Name="Win32"
|
||||||
/>
|
/>
|
||||||
<Platform
|
<Platform
|
||||||
Name="x64"
|
Name="x64"
|
||||||
/>
|
/>
|
||||||
</Platforms>
|
</Platforms>
|
||||||
<ToolFiles>
|
<ToolFiles>
|
||||||
</ToolFiles>
|
</ToolFiles>
|
||||||
<Configurations>
|
<Configurations>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
|
InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||||
CharacterSet="2"
|
CharacterSet="2"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Build PC/pythonnt_rc(_d).h"
|
Description="Build PC/pythonnt_rc(_d).h"
|
||||||
CommandLine="cd $(SolutionDir)
make_versioninfo.exe > ..\..\PC\pythonnt_rc.h
"
|
CommandLine="cd $(SolutionDir)
make_versioninfo.exe > ..\..\PC\pythonnt_rc.h
"
|
||||||
Outputs="$(SolutionDir)..\..\PC\pythonnt_rc.h"
|
Outputs="$(SolutionDir)..\..\PC\pythonnt_rc.h"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"
|
Name="VCXMLDataGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="2"
|
Optimization="2"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
EnableIntrinsicFunctions="true"
|
EnableIntrinsicFunctions="true"
|
||||||
AdditionalIncludeDirectories=""
|
AdditionalIncludeDirectories=""
|
||||||
PreprocessorDefinitions="_CONSOLE"
|
PreprocessorDefinitions="_CONSOLE"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
CompileAs="0"
|
CompileAs="0"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedResourceCompilerTool"
|
Name="VCManagedResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"
|
Name="VCPreLinkEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
OutputFile="$(SolutionDir)make_versioninfo.exe"
|
OutputFile="$(SolutionDir)make_versioninfo.exe"
|
||||||
ProgramDatabaseFile="$(TargetDir)$(TargetName).pdb"
|
ProgramDatabaseFile="$(TargetDir)$(TargetName).pdb"
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
BaseAddress="0x1d000000"
|
BaseAddress="0x1d000000"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCALinkTool"
|
Name="VCALinkTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManifestTool"
|
Name="VCManifestTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXDCMakeTool"
|
Name="VCXDCMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCBscMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAppVerifierTool"
|
Name="VCAppVerifierTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
CommandLine="cd $(SolutionDir)
make_versioninfo.exe > ..\..\PC\python_nt.h
"
|
CommandLine="cd $(SolutionDir)
make_versioninfo.exe > ..\..\PC\python_nt.h
"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|x64"
|
Name="Release|x64"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\release.vsprops"
|
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\release.vsprops"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Build PC/pythonnt_rc(_d).h"
|
Description="Build PC/pythonnt_rc(_d).h"
|
||||||
CommandLine="cd $(SolutionDir)
make_versioninfo.exe > ..\..\PC\pythonnt_rc.h
"
|
CommandLine="cd $(SolutionDir)
make_versioninfo.exe > ..\..\PC\pythonnt_rc.h
"
|
||||||
Outputs="$(SolutionDir)..\..\PC\pythonnt_rc.h"
|
Outputs="$(SolutionDir)..\..\PC\pythonnt_rc.h"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"
|
Name="VCXMLDataGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="2"
|
Optimization="2"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
EnableIntrinsicFunctions="true"
|
EnableIntrinsicFunctions="true"
|
||||||
PreprocessorDefinitions="_CONSOLE"
|
PreprocessorDefinitions="_CONSOLE"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedResourceCompilerTool"
|
Name="VCManagedResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"
|
Name="VCPreLinkEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
OutputFile="$(SolutionDir)make_versioninfo.exe"
|
OutputFile="$(SolutionDir)make_versioninfo.exe"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCALinkTool"
|
Name="VCALinkTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManifestTool"
|
Name="VCManifestTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXDCMakeTool"
|
Name="VCXDCMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCBscMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAppVerifierTool"
|
Name="VCAppVerifierTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
CommandLine="cd $(SolutionDir)
make_versioninfo.exe > ..\..\PC\python_nt.h
"
|
CommandLine="cd $(SolutionDir)
make_versioninfo.exe > ..\..\PC\python_nt.h
"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Debug|Win32"
|
Name="Debug|Win32"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
InheritedPropertySheets=".\pyproject.vsprops;.\debug.vsprops"
|
InheritedPropertySheets=".\pyproject.vsprops;.\debug.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||||
CharacterSet="0"
|
CharacterSet="0"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Build PC/pythonnt_rc(_d).h"
|
Description="Build PC/pythonnt_rc(_d).h"
|
||||||
CommandLine="cd $(SolutionDir)
make_versioninfo_d.exe > ..\..\PC\pythonnt_rc_d.h
"
|
CommandLine="cd $(SolutionDir)
make_versioninfo_d.exe > ..\..\PC\pythonnt_rc_d.h
"
|
||||||
Outputs="$(SolutionDir)..\..\PC\pythonnt_rc_d.h"
|
Outputs="$(SolutionDir)..\..\PC\pythonnt_rc_d.h"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"
|
Name="VCXMLDataGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
EnableIntrinsicFunctions="false"
|
EnableIntrinsicFunctions="false"
|
||||||
AdditionalIncludeDirectories=""
|
AdditionalIncludeDirectories=""
|
||||||
PreprocessorDefinitions="_CONSOLE"
|
PreprocessorDefinitions="_CONSOLE"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
CompileAs="0"
|
CompileAs="0"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedResourceCompilerTool"
|
Name="VCManagedResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"
|
Name="VCPreLinkEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
OutputFile="$(SolutionDir)make_versioninfo_d.exe"
|
OutputFile="$(SolutionDir)make_versioninfo_d.exe"
|
||||||
ProgramDatabaseFile="$(TargetDir)$(TargetName).pdb"
|
ProgramDatabaseFile="$(TargetDir)$(TargetName).pdb"
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
BaseAddress="0x1d000000"
|
BaseAddress="0x1d000000"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCALinkTool"
|
Name="VCALinkTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManifestTool"
|
Name="VCManifestTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXDCMakeTool"
|
Name="VCXDCMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCBscMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAppVerifierTool"
|
Name="VCAppVerifierTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
CommandLine="cd $(SolutionDir)
make_versioninfo_d.exe > ..\..\PC\python_nt_d.h
"
|
CommandLine="cd $(SolutionDir)
make_versioninfo_d.exe > ..\..\PC\python_nt_d.h
"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Debug|x64"
|
Name="Debug|x64"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\debug.vsprops"
|
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\debug.vsprops"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
Description="Build PC/pythonnt_rc(_d).h"
|
Description="Build PC/pythonnt_rc(_d).h"
|
||||||
CommandLine="cd $(SolutionDir)
make_versioninfo_d.exe > ..\..\PC\pythonnt_rc_d.h
"
|
CommandLine="cd $(SolutionDir)
make_versioninfo_d.exe > ..\..\PC\pythonnt_rc_d.h
"
|
||||||
Outputs="$(SolutionDir)..\..\PC\pythonnt_rc_d.h"
|
Outputs="$(SolutionDir)..\..\PC\pythonnt_rc_d.h"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"
|
Name="VCXMLDataGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
TargetEnvironment="3"
|
TargetEnvironment="3"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="0"
|
Optimization="0"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
EnableIntrinsicFunctions="false"
|
EnableIntrinsicFunctions="false"
|
||||||
PreprocessorDefinitions="_CONSOLE"
|
PreprocessorDefinitions="_CONSOLE"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedResourceCompilerTool"
|
Name="VCManagedResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"
|
Name="VCPreLinkEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
OutputFile="$(SolutionDir)make_versioninfo_d.exe"
|
OutputFile="$(SolutionDir)make_versioninfo_d.exe"
|
||||||
TargetMachine="17"
|
TargetMachine="17"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCALinkTool"
|
Name="VCALinkTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManifestTool"
|
Name="VCManifestTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXDCMakeTool"
|
Name="VCXDCMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCBscMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAppVerifierTool"
|
Name="VCAppVerifierTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
CommandLine="cd $(SolutionDir)
make_versioninfo_d.exe > ..\..\PC\python_nt_d.h
"
|
CommandLine="cd $(SolutionDir)
make_versioninfo_d.exe > ..\..\PC\python_nt_d.h
"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
</Configurations>
|
</Configurations>
|
||||||
<References>
|
<References>
|
||||||
</References>
|
</References>
|
||||||
<Files>
|
<Files>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Source Files"
|
Name="Source Files"
|
||||||
>
|
>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\PC\make_versioninfo.c"
|
RelativePath="..\..\PC\make_versioninfo.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
</Files>
|
</Files>
|
||||||
<Globals>
|
<Globals>
|
||||||
</Globals>
|
</Globals>
|
||||||
</VisualStudioProject>
|
</VisualStudioProject>
|
||||||
|
|
1162
PC/VS8.0/pcbuild.sln
1162
PC/VS8.0/pcbuild.sln
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,270 +1,270 @@
|
||||||
<?xml version="1.0" encoding="Windows-1252"?>
|
<?xml version="1.0" encoding="Windows-1252"?>
|
||||||
<VisualStudioProject
|
<VisualStudioProject
|
||||||
ProjectType="Visual C++"
|
ProjectType="Visual C++"
|
||||||
Version="9.00"
|
Version="9.00"
|
||||||
Name="bdist_wininst"
|
Name="bdist_wininst"
|
||||||
ProjectGUID="{EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}"
|
ProjectGUID="{EB1C19C1-1F18-421E-9735-CAEE69DC6A3C}"
|
||||||
RootNamespace="wininst"
|
RootNamespace="wininst"
|
||||||
TargetFrameworkVersion="131072"
|
TargetFrameworkVersion="131072"
|
||||||
>
|
>
|
||||||
<Platforms>
|
<Platforms>
|
||||||
<Platform
|
<Platform
|
||||||
Name="Win32"
|
Name="Win32"
|
||||||
/>
|
/>
|
||||||
<Platform
|
<Platform
|
||||||
Name="x64"
|
Name="x64"
|
||||||
/>
|
/>
|
||||||
</Platforms>
|
</Platforms>
|
||||||
<ToolFiles>
|
<ToolFiles>
|
||||||
</ToolFiles>
|
</ToolFiles>
|
||||||
<Configurations>
|
<Configurations>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
OutputDirectory="..\lib\distutils\command"
|
OutputDirectory="..\lib\distutils\command"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
|
InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||||
CharacterSet="0"
|
CharacterSet="0"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"
|
Name="VCXMLDataGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
PreprocessorDefinitions="NDEBUG"
|
PreprocessorDefinitions="NDEBUG"
|
||||||
MkTypLibCompatible="true"
|
MkTypLibCompatible="true"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
TargetEnvironment="1"
|
TargetEnvironment="1"
|
||||||
TypeLibraryName=".\..\lib\distutils\command\wininst.tlb"
|
TypeLibraryName=".\..\lib\distutils\command\wininst.tlb"
|
||||||
HeaderFileName=""
|
HeaderFileName=""
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="1"
|
Optimization="1"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\PC\bdist_wininst;..\Include;..\Modules\zlib"
|
AdditionalIncludeDirectories="..\PC\bdist_wininst;..\Include;..\Modules\zlib"
|
||||||
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE"
|
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedResourceCompilerTool"
|
Name="VCManagedResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
PreprocessorDefinitions="NDEBUG"
|
PreprocessorDefinitions="NDEBUG"
|
||||||
Culture="0"
|
Culture="0"
|
||||||
AdditionalIncludeDirectories="..\PC;..\PC\bdist_wininst;..\Include"
|
AdditionalIncludeDirectories="..\PC;..\PC\bdist_wininst;..\Include"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"
|
Name="VCPreLinkEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies="comctl32.lib imagehlp.lib"
|
AdditionalDependencies="comctl32.lib imagehlp.lib"
|
||||||
OutputFile="..\lib\distutils\command\wininst-9.0.exe"
|
OutputFile="..\lib\distutils\command\wininst-9.0.exe"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
IgnoreDefaultLibraryNames="LIBC"
|
IgnoreDefaultLibraryNames="LIBC"
|
||||||
ProgramDatabaseFile="..\lib\distutils\command\wininst-9.0.pdb"
|
ProgramDatabaseFile="..\lib\distutils\command\wininst-9.0.pdb"
|
||||||
SubSystem="2"
|
SubSystem="2"
|
||||||
RandomizedBaseAddress="1"
|
RandomizedBaseAddress="1"
|
||||||
DataExecutionPrevention="0"
|
DataExecutionPrevention="0"
|
||||||
TargetMachine="1"
|
TargetMachine="1"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCALinkTool"
|
Name="VCALinkTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManifestTool"
|
Name="VCManifestTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXDCMakeTool"
|
Name="VCXDCMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCBscMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAppVerifierTool"
|
Name="VCAppVerifierTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|x64"
|
Name="Release|x64"
|
||||||
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
|
OutputDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
|
InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
|
||||||
UseOfMFC="0"
|
UseOfMFC="0"
|
||||||
ATLMinimizesCRunTimeLibraryUsage="false"
|
ATLMinimizesCRunTimeLibraryUsage="false"
|
||||||
CharacterSet="0"
|
CharacterSet="0"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"
|
Name="VCXMLDataGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
PreprocessorDefinitions="NDEBUG"
|
PreprocessorDefinitions="NDEBUG"
|
||||||
MkTypLibCompatible="true"
|
MkTypLibCompatible="true"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
TargetEnvironment="3"
|
TargetEnvironment="3"
|
||||||
TypeLibraryName=".\..\lib\distutils\command\wininst.tlb"
|
TypeLibraryName=".\..\lib\distutils\command\wininst.tlb"
|
||||||
HeaderFileName=""
|
HeaderFileName=""
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
Optimization="1"
|
Optimization="1"
|
||||||
InlineFunctionExpansion="1"
|
InlineFunctionExpansion="1"
|
||||||
AdditionalIncludeDirectories="..\PC\bdist_wininst;..\Include;..\Modules\zlib"
|
AdditionalIncludeDirectories="..\PC\bdist_wininst;..\Include;..\Modules\zlib"
|
||||||
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE"
|
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_DEPRECATE"
|
||||||
StringPooling="true"
|
StringPooling="true"
|
||||||
RuntimeLibrary="2"
|
RuntimeLibrary="2"
|
||||||
EnableFunctionLevelLinking="true"
|
EnableFunctionLevelLinking="true"
|
||||||
WarningLevel="3"
|
WarningLevel="3"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedResourceCompilerTool"
|
Name="VCManagedResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
PreprocessorDefinitions="NDEBUG"
|
PreprocessorDefinitions="NDEBUG"
|
||||||
Culture="0"
|
Culture="0"
|
||||||
AdditionalIncludeDirectories="..\PC;..\PC\bdist_wininst;..\Include"
|
AdditionalIncludeDirectories="..\PC;..\PC\bdist_wininst;..\Include"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"
|
Name="VCPreLinkEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies="comctl32.lib imagehlp.lib"
|
AdditionalDependencies="comctl32.lib imagehlp.lib"
|
||||||
OutputFile="..\lib\distutils\command\wininst-9.0-amd64.exe"
|
OutputFile="..\lib\distutils\command\wininst-9.0-amd64.exe"
|
||||||
LinkIncremental="1"
|
LinkIncremental="1"
|
||||||
SuppressStartupBanner="true"
|
SuppressStartupBanner="true"
|
||||||
IgnoreDefaultLibraryNames="LIBC"
|
IgnoreDefaultLibraryNames="LIBC"
|
||||||
ProgramDatabaseFile="..\lib\distutils\command\wininst-9.0-amd64.pdb"
|
ProgramDatabaseFile="..\lib\distutils\command\wininst-9.0-amd64.pdb"
|
||||||
SubSystem="2"
|
SubSystem="2"
|
||||||
RandomizedBaseAddress="1"
|
RandomizedBaseAddress="1"
|
||||||
DataExecutionPrevention="0"
|
DataExecutionPrevention="0"
|
||||||
TargetMachine="17"
|
TargetMachine="17"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCALinkTool"
|
Name="VCALinkTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManifestTool"
|
Name="VCManifestTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXDCMakeTool"
|
Name="VCXDCMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCBscMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAppVerifierTool"
|
Name="VCAppVerifierTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
</Configurations>
|
</Configurations>
|
||||||
<References>
|
<References>
|
||||||
</References>
|
</References>
|
||||||
<Files>
|
<Files>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Source Files"
|
Name="Source Files"
|
||||||
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
|
||||||
>
|
>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\PC\bdist_wininst\extract.c"
|
RelativePath="..\PC\bdist_wininst\extract.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\PC\bdist_wininst\install.c"
|
RelativePath="..\PC\bdist_wininst\install.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<Filter
|
<Filter
|
||||||
Name="zlib"
|
Name="zlib"
|
||||||
>
|
>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\Modules\zlib\adler32.c"
|
RelativePath="..\Modules\zlib\adler32.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\Modules\zlib\crc32.c"
|
RelativePath="..\Modules\zlib\crc32.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\Modules\zlib\inffast.c"
|
RelativePath="..\Modules\zlib\inffast.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\Modules\zlib\inflate.c"
|
RelativePath="..\Modules\zlib\inflate.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\Modules\zlib\inftrees.c"
|
RelativePath="..\Modules\zlib\inftrees.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\Modules\zlib\zutil.c"
|
RelativePath="..\Modules\zlib\zutil.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Header Files"
|
Name="Header Files"
|
||||||
Filter="h;hpp;hxx;hm;inl"
|
Filter="h;hpp;hxx;hm;inl"
|
||||||
>
|
>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\PC\bdist_wininst\archive.h"
|
RelativePath="..\PC\bdist_wininst\archive.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Resource Files"
|
Name="Resource Files"
|
||||||
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
|
||||||
>
|
>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\PC\bdist_wininst\install.rc"
|
RelativePath="..\PC\bdist_wininst\install.rc"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\PC\bdist_wininst\PythonPowered.bmp"
|
RelativePath="..\PC\bdist_wininst\PythonPowered.bmp"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
</Files>
|
</Files>
|
||||||
<Globals>
|
<Globals>
|
||||||
</Globals>
|
</Globals>
|
||||||
</VisualStudioProject>
|
</VisualStudioProject>
|
||||||
|
|
|
@ -1,178 +1,178 @@
|
||||||
/*
|
/*
|
||||||
* Helper program for killing lingering python[_d].exe processes before
|
* Helper program for killing lingering python[_d].exe processes before
|
||||||
* building, thus attempting to avoid build failures due to files being
|
* building, thus attempting to avoid build failures due to files being
|
||||||
* locked.
|
* locked.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <wchar.h>
|
#include <wchar.h>
|
||||||
#include <tlhelp32.h>
|
#include <tlhelp32.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#pragma comment(lib, "psapi")
|
#pragma comment(lib, "psapi")
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
#define PYTHON_EXE (L"python_d.exe")
|
#define PYTHON_EXE (L"python_d.exe")
|
||||||
#define PYTHON_EXE_LEN (12)
|
#define PYTHON_EXE_LEN (12)
|
||||||
#define KILL_PYTHON_EXE (L"kill_python_d.exe")
|
#define KILL_PYTHON_EXE (L"kill_python_d.exe")
|
||||||
#define KILL_PYTHON_EXE_LEN (17)
|
#define KILL_PYTHON_EXE_LEN (17)
|
||||||
#else
|
#else
|
||||||
#define PYTHON_EXE (L"python.exe")
|
#define PYTHON_EXE (L"python.exe")
|
||||||
#define PYTHON_EXE_LEN (10)
|
#define PYTHON_EXE_LEN (10)
|
||||||
#define KILL_PYTHON_EXE (L"kill_python.exe")
|
#define KILL_PYTHON_EXE (L"kill_python.exe")
|
||||||
#define KILL_PYTHON_EXE_LEN (15)
|
#define KILL_PYTHON_EXE_LEN (15)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int
|
int
|
||||||
main(int argc, char **argv)
|
main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
HANDLE hp, hsp, hsm; /* process, snapshot processes, snapshot modules */
|
HANDLE hp, hsp, hsm; /* process, snapshot processes, snapshot modules */
|
||||||
DWORD dac, our_pid;
|
DWORD dac, our_pid;
|
||||||
size_t len;
|
size_t len;
|
||||||
wchar_t path[MAX_PATH+1];
|
wchar_t path[MAX_PATH+1];
|
||||||
|
|
||||||
MODULEENTRY32W me;
|
MODULEENTRY32W me;
|
||||||
PROCESSENTRY32W pe;
|
PROCESSENTRY32W pe;
|
||||||
|
|
||||||
me.dwSize = sizeof(MODULEENTRY32W);
|
me.dwSize = sizeof(MODULEENTRY32W);
|
||||||
pe.dwSize = sizeof(PROCESSENTRY32W);
|
pe.dwSize = sizeof(PROCESSENTRY32W);
|
||||||
|
|
||||||
memset(path, 0, MAX_PATH+1);
|
memset(path, 0, MAX_PATH+1);
|
||||||
|
|
||||||
our_pid = GetCurrentProcessId();
|
our_pid = GetCurrentProcessId();
|
||||||
|
|
||||||
hsm = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, our_pid);
|
hsm = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, our_pid);
|
||||||
if (hsm == INVALID_HANDLE_VALUE) {
|
if (hsm == INVALID_HANDLE_VALUE) {
|
||||||
printf("CreateToolhelp32Snapshot[1] failed: %d\n", GetLastError());
|
printf("CreateToolhelp32Snapshot[1] failed: %d\n", GetLastError());
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Module32FirstW(hsm, &me)) {
|
if (!Module32FirstW(hsm, &me)) {
|
||||||
printf("Module32FirstW[1] failed: %d\n", GetLastError());
|
printf("Module32FirstW[1] failed: %d\n", GetLastError());
|
||||||
CloseHandle(hsm);
|
CloseHandle(hsm);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Enumerate over the modules for the current process in order to find
|
* Enumerate over the modules for the current process in order to find
|
||||||
* kill_process[_d].exe, then take a note of the directory it lives in.
|
* kill_process[_d].exe, then take a note of the directory it lives in.
|
||||||
*/
|
*/
|
||||||
do {
|
do {
|
||||||
if (_wcsnicmp(me.szModule, KILL_PYTHON_EXE, KILL_PYTHON_EXE_LEN))
|
if (_wcsnicmp(me.szModule, KILL_PYTHON_EXE, KILL_PYTHON_EXE_LEN))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
len = wcsnlen_s(me.szExePath, MAX_PATH) - KILL_PYTHON_EXE_LEN;
|
len = wcsnlen_s(me.szExePath, MAX_PATH) - KILL_PYTHON_EXE_LEN;
|
||||||
wcsncpy_s(path, MAX_PATH+1, me.szExePath, len);
|
wcsncpy_s(path, MAX_PATH+1, me.szExePath, len);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
} while (Module32NextW(hsm, &me));
|
} while (Module32NextW(hsm, &me));
|
||||||
|
|
||||||
CloseHandle(hsm);
|
CloseHandle(hsm);
|
||||||
|
|
||||||
if (path == NULL) {
|
if (path == NULL) {
|
||||||
printf("failed to discern directory of running process\n");
|
printf("failed to discern directory of running process\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Take a snapshot of system processes. Enumerate over the snapshot,
|
* Take a snapshot of system processes. Enumerate over the snapshot,
|
||||||
* looking for python processes. When we find one, verify it lives
|
* looking for python processes. When we find one, verify it lives
|
||||||
* in the same directory we live in. If it does, kill it. If we're
|
* in the same directory we live in. If it does, kill it. If we're
|
||||||
* unable to kill it, treat this as a fatal error and return 1.
|
* unable to kill it, treat this as a fatal error and return 1.
|
||||||
*
|
*
|
||||||
* The rationale behind this is that we're called at the start of the
|
* The rationale behind this is that we're called at the start of the
|
||||||
* build process on the basis that we'll take care of killing any
|
* build process on the basis that we'll take care of killing any
|
||||||
* running instances, such that the build won't encounter permission
|
* running instances, such that the build won't encounter permission
|
||||||
* denied errors during linking. If we can't kill one of the processes,
|
* denied errors during linking. If we can't kill one of the processes,
|
||||||
* we can't provide this assurance, and the build shouldn't start.
|
* we can't provide this assurance, and the build shouldn't start.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
hsp = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
|
hsp = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
|
||||||
if (hsp == INVALID_HANDLE_VALUE) {
|
if (hsp == INVALID_HANDLE_VALUE) {
|
||||||
printf("CreateToolhelp32Snapshot[2] failed: %d\n", GetLastError());
|
printf("CreateToolhelp32Snapshot[2] failed: %d\n", GetLastError());
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Process32FirstW(hsp, &pe)) {
|
if (!Process32FirstW(hsp, &pe)) {
|
||||||
printf("Process32FirstW failed: %d\n", GetLastError());
|
printf("Process32FirstW failed: %d\n", GetLastError());
|
||||||
CloseHandle(hsp);
|
CloseHandle(hsp);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
dac = PROCESS_QUERY_INFORMATION | PROCESS_VM_READ | PROCESS_TERMINATE;
|
dac = PROCESS_QUERY_INFORMATION | PROCESS_VM_READ | PROCESS_TERMINATE;
|
||||||
do {
|
do {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* XXX TODO: if we really wanted to be fancy, we could check the
|
* XXX TODO: if we really wanted to be fancy, we could check the
|
||||||
* modules for all processes (not just the python[_d].exe ones)
|
* modules for all processes (not just the python[_d].exe ones)
|
||||||
* and see if any of our DLLs are loaded (i.e. python30[_d].dll),
|
* and see if any of our DLLs are loaded (i.e. python30[_d].dll),
|
||||||
* as that would also inhibit our ability to rebuild the solution.
|
* as that would also inhibit our ability to rebuild the solution.
|
||||||
* Not worth loosing sleep over though; for now, a simple check
|
* Not worth loosing sleep over though; for now, a simple check
|
||||||
* for just the python executable should be sufficient.
|
* for just the python executable should be sufficient.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (_wcsnicmp(pe.szExeFile, PYTHON_EXE, PYTHON_EXE_LEN))
|
if (_wcsnicmp(pe.szExeFile, PYTHON_EXE, PYTHON_EXE_LEN))
|
||||||
/* This isn't a python process. */
|
/* This isn't a python process. */
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* It's a python process, so figure out which directory it's in... */
|
/* It's a python process, so figure out which directory it's in... */
|
||||||
hsm = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pe.th32ProcessID);
|
hsm = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pe.th32ProcessID);
|
||||||
if (hsm == INVALID_HANDLE_VALUE)
|
if (hsm == INVALID_HANDLE_VALUE)
|
||||||
/*
|
/*
|
||||||
* If our module snapshot fails (which will happen if we don't own
|
* If our module snapshot fails (which will happen if we don't own
|
||||||
* the process), just ignore it and continue. (It seems different
|
* the process), just ignore it and continue. (It seems different
|
||||||
* versions of Windows return different values for GetLastError()
|
* versions of Windows return different values for GetLastError()
|
||||||
* in this situation; it's easier to just ignore it and move on vs.
|
* in this situation; it's easier to just ignore it and move on vs.
|
||||||
* stopping the build for what could be a false positive.)
|
* stopping the build for what could be a false positive.)
|
||||||
*/
|
*/
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (!Module32FirstW(hsm, &me)) {
|
if (!Module32FirstW(hsm, &me)) {
|
||||||
printf("Module32FirstW[2] failed: %d\n", GetLastError());
|
printf("Module32FirstW[2] failed: %d\n", GetLastError());
|
||||||
CloseHandle(hsp);
|
CloseHandle(hsp);
|
||||||
CloseHandle(hsm);
|
CloseHandle(hsm);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
do {
|
do {
|
||||||
if (_wcsnicmp(me.szModule, PYTHON_EXE, PYTHON_EXE_LEN))
|
if (_wcsnicmp(me.szModule, PYTHON_EXE, PYTHON_EXE_LEN))
|
||||||
/* Wrong module, we're looking for python[_d].exe... */
|
/* Wrong module, we're looking for python[_d].exe... */
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (_wcsnicmp(path, me.szExePath, len))
|
if (_wcsnicmp(path, me.szExePath, len))
|
||||||
/* Process doesn't live in our directory. */
|
/* Process doesn't live in our directory. */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* Python process residing in the right directory, kill it! */
|
/* Python process residing in the right directory, kill it! */
|
||||||
hp = OpenProcess(dac, FALSE, pe.th32ProcessID);
|
hp = OpenProcess(dac, FALSE, pe.th32ProcessID);
|
||||||
if (!hp) {
|
if (!hp) {
|
||||||
printf("OpenProcess failed: %d\n", GetLastError());
|
printf("OpenProcess failed: %d\n", GetLastError());
|
||||||
CloseHandle(hsp);
|
CloseHandle(hsp);
|
||||||
CloseHandle(hsm);
|
CloseHandle(hsm);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!TerminateProcess(hp, 1)) {
|
if (!TerminateProcess(hp, 1)) {
|
||||||
printf("TerminateProcess failed: %d\n", GetLastError());
|
printf("TerminateProcess failed: %d\n", GetLastError());
|
||||||
CloseHandle(hsp);
|
CloseHandle(hsp);
|
||||||
CloseHandle(hsm);
|
CloseHandle(hsm);
|
||||||
CloseHandle(hp);
|
CloseHandle(hp);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
CloseHandle(hp);
|
CloseHandle(hp);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
} while (Module32NextW(hsm, &me));
|
} while (Module32NextW(hsm, &me));
|
||||||
|
|
||||||
CloseHandle(hsm);
|
CloseHandle(hsm);
|
||||||
|
|
||||||
} while (Process32NextW(hsp, &pe));
|
} while (Process32NextW(hsp, &pe));
|
||||||
|
|
||||||
CloseHandle(hsp);
|
CloseHandle(hsp);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* vi: set ts=8 sw=4 sts=4 expandtab */
|
/* vi: set ts=8 sw=4 sts=4 expandtab */
|
||||||
|
|
|
@ -1,279 +1,279 @@
|
||||||
<?xml version="1.0" encoding="Windows-1252"?>
|
<?xml version="1.0" encoding="Windows-1252"?>
|
||||||
<VisualStudioProject
|
<VisualStudioProject
|
||||||
ProjectType="Visual C++"
|
ProjectType="Visual C++"
|
||||||
Version="9.00"
|
Version="9.00"
|
||||||
Name="kill_python"
|
Name="kill_python"
|
||||||
ProjectGUID="{6DE10744-E396-40A5-B4E2-1B69AA7C8D31}"
|
ProjectGUID="{6DE10744-E396-40A5-B4E2-1B69AA7C8D31}"
|
||||||
RootNamespace="kill_python"
|
RootNamespace="kill_python"
|
||||||
Keyword="Win32Proj"
|
Keyword="Win32Proj"
|
||||||
TargetFrameworkVersion="196613"
|
TargetFrameworkVersion="196613"
|
||||||
>
|
>
|
||||||
<Platforms>
|
<Platforms>
|
||||||
<Platform
|
<Platform
|
||||||
Name="Win32"
|
Name="Win32"
|
||||||
/>
|
/>
|
||||||
<Platform
|
<Platform
|
||||||
Name="x64"
|
Name="x64"
|
||||||
/>
|
/>
|
||||||
</Platforms>
|
</Platforms>
|
||||||
<ToolFiles>
|
<ToolFiles>
|
||||||
</ToolFiles>
|
</ToolFiles>
|
||||||
<Configurations>
|
<Configurations>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Debug|Win32"
|
Name="Debug|Win32"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
InheritedPropertySheets=".\pyproject.vsprops;.\debug.vsprops"
|
InheritedPropertySheets=".\pyproject.vsprops;.\debug.vsprops"
|
||||||
CharacterSet="0"
|
CharacterSet="0"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"
|
Name="VCXMLDataGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedResourceCompilerTool"
|
Name="VCManagedResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"
|
Name="VCPreLinkEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
OutputFile="$(OutDir)\$(ProjectName)_d.exe"
|
OutputFile="$(OutDir)\$(ProjectName)_d.exe"
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCALinkTool"
|
Name="VCALinkTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManifestTool"
|
Name="VCManifestTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXDCMakeTool"
|
Name="VCXDCMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCBscMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAppVerifierTool"
|
Name="VCAppVerifierTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Debug|x64"
|
Name="Debug|x64"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
InheritedPropertySheets=".\pyproject.vsprops;.\debug.vsprops;.\x64.vsprops"
|
InheritedPropertySheets=".\pyproject.vsprops;.\debug.vsprops;.\x64.vsprops"
|
||||||
CharacterSet="0"
|
CharacterSet="0"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"
|
Name="VCXMLDataGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
TargetEnvironment="3"
|
TargetEnvironment="3"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedResourceCompilerTool"
|
Name="VCManagedResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"
|
Name="VCPreLinkEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
OutputFile="$(OutDir)\$(ProjectName)_d.exe"
|
OutputFile="$(OutDir)\$(ProjectName)_d.exe"
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCALinkTool"
|
Name="VCALinkTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManifestTool"
|
Name="VCManifestTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXDCMakeTool"
|
Name="VCXDCMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCBscMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAppVerifierTool"
|
Name="VCAppVerifierTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
|
InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops"
|
||||||
CharacterSet="0"
|
CharacterSet="0"
|
||||||
WholeProgramOptimization="1"
|
WholeProgramOptimization="1"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"
|
Name="VCXMLDataGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedResourceCompilerTool"
|
Name="VCManagedResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"
|
Name="VCPreLinkEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCALinkTool"
|
Name="VCALinkTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManifestTool"
|
Name="VCManifestTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXDCMakeTool"
|
Name="VCXDCMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCBscMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAppVerifierTool"
|
Name="VCAppVerifierTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|x64"
|
Name="Release|x64"
|
||||||
ConfigurationType="1"
|
ConfigurationType="1"
|
||||||
InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops;.\x64.vsprops"
|
InheritedPropertySheets=".\pyproject.vsprops;.\release.vsprops;.\x64.vsprops"
|
||||||
CharacterSet="0"
|
CharacterSet="0"
|
||||||
WholeProgramOptimization="1"
|
WholeProgramOptimization="1"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreBuildEventTool"
|
Name="VCPreBuildEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXMLDataGeneratorTool"
|
Name="VCXMLDataGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCMIDLTool"
|
Name="VCMIDLTool"
|
||||||
TargetEnvironment="3"
|
TargetEnvironment="3"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManagedResourceCompilerTool"
|
Name="VCManagedResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCResourceCompilerTool"
|
Name="VCResourceCompilerTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPreLinkEventTool"
|
Name="VCPreLinkEventTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
SubSystem="1"
|
SubSystem="1"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCALinkTool"
|
Name="VCALinkTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCManifestTool"
|
Name="VCManifestTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCXDCMakeTool"
|
Name="VCXDCMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCBscMakeTool"
|
Name="VCBscMakeTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCFxCopTool"
|
Name="VCFxCopTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCAppVerifierTool"
|
Name="VCAppVerifierTool"
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
</Configurations>
|
</Configurations>
|
||||||
<References>
|
<References>
|
||||||
</References>
|
</References>
|
||||||
<Files>
|
<Files>
|
||||||
<Filter
|
<Filter
|
||||||
Name="Source Files"
|
Name="Source Files"
|
||||||
>
|
>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\kill_python.c"
|
RelativePath=".\kill_python.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
</Filter>
|
</Filter>
|
||||||
</Files>
|
</Files>
|
||||||
<Globals>
|
<Globals>
|
||||||
</Globals>
|
</Globals>
|
||||||
</VisualStudioProject>
|
</VisualStudioProject>
|
||||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue