Convert CRLF to LF

This commit is contained in:
Micke Prag 2012-08-13 16:45:35 +02:00
parent 4065f7dc40
commit 4ff3cfd56c
5 changed files with 1276 additions and 1276 deletions

View file

@ -1,3 +1,3 @@
include telldus.c include telldus.c
include telldus-core.h include telldus-core.h
recursive-include example/* recursive-include example/*

View file

@ -1,47 +1,47 @@
import telldus import telldus
import time import time
telldus.tdInit() telldus.tdInit()
devices = telldus.tdGetNumberOfDevices() devices = telldus.tdGetNumberOfDevices()
print "Devices: %d\n" % devices print "Devices: %d\n" % devices
allMethods = telldus.TELLSTICK_TURNON | telldus.TELLSTICK_TURNOFF | telldus.TELLSTICK_BELL | telldus.TELLSTICK_DIM allMethods = telldus.TELLSTICK_TURNON | telldus.TELLSTICK_TURNOFF | telldus.TELLSTICK_BELL | telldus.TELLSTICK_DIM
for i in xrange(devices): for i in xrange(devices):
deviceid = telldus.tdGetDeviceId(i) deviceid = telldus.tdGetDeviceId(i)
if deviceid: if deviceid:
name = telldus.tdGetName(deviceid) name = telldus.tdGetName(deviceid)
print "%s - %s\n" % (deviceid, name) print "%s - %s\n" % (deviceid, name)
methods = telldus.tdMethods(deviceid, allMethods) methods = telldus.tdMethods(deviceid, allMethods)
if methods & telldus.TELLSTICK_TURNON: if methods & telldus.TELLSTICK_TURNON:
print " * TurnOn\n" print " * TurnOn\n"
telldus.tdTurnOn(deviceid) telldus.tdTurnOn(deviceid)
time.sleep(1) time.sleep(1)
if methods & telldus.TELLSTICK_TURNOFF: if methods & telldus.TELLSTICK_TURNOFF:
print " * TurnOff\n" print " * TurnOff\n"
telldus.tdTurnOff(deviceid) telldus.tdTurnOff(deviceid)
time.sleep(1) time.sleep(1)
if methods & telldus.TELLSTICK_BELL: if methods & telldus.TELLSTICK_BELL:
print " * Bell\n" print " * Bell\n"
telldus.tdBell(deviceid) telldus.tdBell(deviceid)
time.sleep(1) time.sleep(1)
if methods & telldus.TELLSTICK_TOGGLE: if methods & telldus.TELLSTICK_TOGGLE:
print " * Toggle\n" print " * Toggle\n"
if methods & telldus.TELLSTICK_DIM: if methods & telldus.TELLSTICK_DIM:
print " * Dim\n" print " * Dim\n"
telldus.tdDim(deviceid, 128) telldus.tdDim(deviceid, 128)
time.sleep(1) time.sleep(1)
telldus.tdClose() telldus.tdClose()

View file

@ -1,38 +1,38 @@
import threading import threading
import telldus import telldus
import time import time
telldus.tdInit() telldus.tdInit()
def turnOn(): def turnOn():
print "turning on" print "turning on"
telldus.tdTurnOn(1) telldus.tdTurnOn(1)
def turnOff(): def turnOff():
print "turning off" print "turning off"
telldus.tdTurnOff(1) telldus.tdTurnOff(1)
def callback(deviceId, method, value, callbackId): def callback(deviceId, method, value, callbackId):
print "callback" print "callback"
print "DeviceId: %i Method: %i Value: %s" % (deviceId, method, value) print "DeviceId: %i Method: %i Value: %s" % (deviceId, method, value)
return True return True
#function to be called when device event occurs, even for unregistered devices #function to be called when device event occurs, even for unregistered devices
def rawcallback(data, controllerId, callbackId): def rawcallback(data, controllerId, callbackId):
print "raw callback" print "raw callback"
print "Data: %s ControllerId: %i" % (data, controllerId) print "Data: %s ControllerId: %i" % (data, controllerId)
return True return True
callbackid = telldus.tdRegisterDeviceEvent(callback) callbackid = telldus.tdRegisterDeviceEvent(callback)
rawcallbackid = telldus.tdRegisterRawDeviceEvent(rawcallback) rawcallbackid = telldus.tdRegisterRawDeviceEvent(rawcallback)
print callbackid, rawcallbackid print callbackid, rawcallbackid
try: try:
while(1): while(1):
time.sleep(0.5) #don't exit time.sleep(0.5) #don't exit
except KeyboardInterrupt: except KeyboardInterrupt:
print "Exiting" print "Exiting"
telldus.tdUnregisterCallback(callbackid) telldus.tdUnregisterCallback(callbackid)
telldus.tdUnregisterCallback(rawcallbackid) telldus.tdUnregisterCallback(rawcallbackid)
telldus.tdClose() telldus.tdClose()

View file

@ -1,345 +1,345 @@
import sys import sys
from distutils.core import setup, Extension from distutils.core import setup, Extension
DEBUG = True DEBUG = True
PLATFORM_IS_WINDOWS = sys.platform.lower().startswith('win') PLATFORM_IS_WINDOWS = sys.platform.lower().startswith('win')
if PLATFORM_IS_WINDOWS: if PLATFORM_IS_WINDOWS:
__doc__="""This is a distutils setup-script for the telldus extension __doc__="""This is a distutils setup-script for the telldus extension
To build the telldus extensions, simply execute: To build the telldus extensions, simply execute:
python setup.py -q build python setup.py -q build
or or
python setup.py -q install python setup.py -q install
to build and install into your current Python installation. to build and install into your current Python installation.
These extensions require a number of libraries to build, some of which may These extensions require a number of libraries to build, some of which may
require you to install special SDKs or toolkits. This script will attempt require you to install special SDKs or toolkits. This script will attempt
to build as many as it can, and at the end of the build will report any to build as many as it can, and at the end of the build will report any
extension modules that could not be built and why. extension modules that could not be built and why.
This has got complicated due to the various different versions of This has got complicated due to the various different versions of
Visual Studio used - some VS versions are not compatible with some SDK Visual Studio used - some VS versions are not compatible with some SDK
versions. Below are the Windows SDK versions required (and the URL - although versions. Below are the Windows SDK versions required (and the URL - although
these are subject to being changed by MS at any time:) these are subject to being changed by MS at any time:)
Python 2.6+: Python 2.6+:
Build using Microsoft Visual Studio 2008 Express Edition: Build using Microsoft Visual Studio 2008 Express Edition:
http://www.microsoft.com/en-us/download/details.aspx?id=6506 http://www.microsoft.com/en-us/download/details.aspx?id=6506
http://jenshuebel.wordpress.com/2009/02/12/visual-c-2008-express-edition-and-64-bit-targets/ http://jenshuebel.wordpress.com/2009/02/12/visual-c-2008-express-edition-and-64-bit-targets/
http://www.cppblog.com/Files/xcpp/VCE64BIT_WIN7SDK.zip http://www.cppblog.com/Files/xcpp/VCE64BIT_WIN7SDK.zip
For 32bit build: For 32bit build:
Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 Microsoft Windows SDK for Windows 7 and .NET Framework 3.5
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=6b6c21d2-2006-4afa-9702-529fa782d63b http://www.microsoft.com/downloads/en/details.aspx?FamilyID=6b6c21d2-2006-4afa-9702-529fa782d63b
Copy C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvars32.bat to Copy C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvars32.bat to
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat
For 64bit build: For 64bit build:
Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1 (ISO) GRMSDKX_EN_DVD.iso Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1 (ISO) GRMSDKX_EN_DVD.iso
http://www.microsoft.com/en-us/download/details.aspx?id=18950 http://www.microsoft.com/en-us/download/details.aspx?id=18950
Copy C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvars64.bat to Copy C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvars64.bat to
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat
Python 2.3->2.5: Python 2.3->2.5:
Microsoft Windows Software Development Kit Update for Windows Vista (version 6.0) Microsoft Windows Software Development Kit Update for Windows Vista (version 6.0)
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=4377f86d-c913-4b5c-b87e-ef72e5b4e065 http://www.microsoft.com/downloads/en/details.aspx?FamilyID=4377f86d-c913-4b5c-b87e-ef72e5b4e065
** If you want to build Python 2.3, be sure to install the SDK compilers ** If you want to build Python 2.3, be sure to install the SDK compilers
too - although we don't use them, this setup option installs some .lib too - although we don't use them, this setup option installs some .lib
files we do need. files we do need.
** **
If you multiple SDK versions on a single machine, set the MSSDK environment If you multiple SDK versions on a single machine, set the MSSDK environment
variable to point at the one you want to use. Note that using the SDK for variable to point at the one you want to use. Note that using the SDK for
a particular platform (eg, Windows 7) doesn't force you to use that OS as your a particular platform (eg, Windows 7) doesn't force you to use that OS as your
build environment. If the links above don't work, use google to find them. build environment. If the links above don't work, use google to find them.
Building: Building:
--------- ---------
To install the telldus extension, execute: To install the telldus extension, execute:
python setup.py -q install python setup.py -q install
This will install the built extensions into your site-packages directory, This will install the built extensions into your site-packages directory,
create an appropriate .pth file, and should leave everything ready to use. create an appropriate .pth file, and should leave everything ready to use.
There is no need to modify the registry. There is no need to modify the registry.
To build or install debug (_d) versions of these extensions, ensure you have To build or install debug (_d) versions of these extensions, ensure you have
built or installed a debug version of Python itself, then pass the "--debug" built or installed a debug version of Python itself, then pass the "--debug"
flag to the build command - eg: flag to the build command - eg:
python setup.py -q build --debug python setup.py -q build --debug
or to build and install a debug version: or to build and install a debug version:
python setup.py -q build --debug install python setup.py -q build --debug install
To build 64bit versions of this: To build 64bit versions of this:
* py2.5 and earlier - sorry, I've given up in disgust. Using VS2003 with * py2.5 and earlier - sorry, I've given up in disgust. Using VS2003 with
the Vista SDK is just too painful to make work, and VS2005 is not used for the Vista SDK is just too painful to make work, and VS2005 is not used for
any released versions of Python. See revision 1.69 of this file for the any released versions of Python. See revision 1.69 of this file for the
last version that attempted to support and document this process. last version that attempted to support and document this process.
* 2.6 and later: On a 64bit OS, just build as you would on a 32bit platform. * 2.6 and later: On a 64bit OS, just build as you would on a 32bit platform.
On a 32bit platform (ie, to cross-compile), you must use VS2008 to On a 32bit platform (ie, to cross-compile), you must use VS2008 to
cross-compile Python itself. Note that by default, the 64bit tools are not cross-compile Python itself. Note that by default, the 64bit tools are not
installed with VS2008, so you may need to adjust your VS2008 setup (see "For 64bit build"). Then installed with VS2008, so you may need to adjust your VS2008 setup (see "For 64bit build"). Then
use: use:
vcs vcs
setup.py build --plat-name=win-amd64 setup.py build --plat-name=win-amd64
see the distutils cross-compilation documentation for more details. see the distutils cross-compilation documentation for more details.
""" """
# Originally by Thomas Heller, started in 2000 or so. # Originally by Thomas Heller, started in 2000 or so.
import os import os
import shutil import shutil
is_py3k = sys.version_info > (3,) # get this out of the way early on... is_py3k = sys.version_info > (3,) # get this out of the way early on...
# We have special handling for _winreg so our setup3.py script can avoid # We have special handling for _winreg so our setup3.py script can avoid
# using the 'imports' fixer and therefore start much faster... # using the 'imports' fixer and therefore start much faster...
if is_py3k: if is_py3k:
import winreg as _winreg import winreg as _winreg
else: else:
import _winreg import _winreg
try: try:
from distutils import log from distutils import log
except ImportError: except ImportError:
class Log: class Log:
def debug(self, msg, *args): def debug(self, msg, *args):
print msg % args print msg % args
def info(self, msg, *args): def info(self, msg, *args):
print msg % args print msg % args
log = Log() log = Log()
try: try:
this_file = __file__ this_file = __file__
except NameError: except NameError:
this_file = sys.argv[0] this_file = sys.argv[0]
this_file = os.path.abspath(this_file) this_file = os.path.abspath(this_file)
# We get upset if the cwd is not our source dir, but it is a PITA to # We get upset if the cwd is not our source dir, but it is a PITA to
# insist people manually CD there first! # insist people manually CD there first!
if os.path.dirname(this_file): if os.path.dirname(this_file):
os.chdir(os.path.dirname(this_file)) os.chdir(os.path.dirname(this_file))
# We need to know the platform SDK dir before we can list the extensions. # We need to know the platform SDK dir before we can list the extensions.
def find_platform_sdk_dir(): def find_platform_sdk_dir():
# Finding the Platform SDK install dir is a treat. There can be some # Finding the Platform SDK install dir is a treat. There can be some
# dead ends so we only consider the job done if we find the "windows.h" # dead ends so we only consider the job done if we find the "windows.h"
# landmark. # landmark.
landmark = "include\\windows.h" landmark = "include\\windows.h"
# 1. The use might have their current environment setup for the # 1. The use might have their current environment setup for the
# SDK, in which case the "MSSdk" env var is set. # SDK, in which case the "MSSdk" env var is set.
sdkdir = os.environ.get("MSSdk") sdkdir = os.environ.get("MSSdk")
if sdkdir: if sdkdir:
if DEBUG: if DEBUG:
print "PSDK: try %%MSSdk%%: '%s'" % sdkdir print "PSDK: try %%MSSdk%%: '%s'" % sdkdir
if os.path.isfile(os.path.join(sdkdir, landmark)): if os.path.isfile(os.path.join(sdkdir, landmark)):
return sdkdir return sdkdir
# 2. The "Install Dir" value in the # 2. The "Install Dir" value in the
# HKLM\Software\Microsoft\MicrosoftSDK\Directories registry key # HKLM\Software\Microsoft\MicrosoftSDK\Directories registry key
# sometimes points to the right thing. However, after upgrading to # sometimes points to the right thing. However, after upgrading to
# the "Platform SDK for Windows Server 2003 SP1" this is dead end. # the "Platform SDK for Windows Server 2003 SP1" this is dead end.
try: try:
key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE,
r"Software\Microsoft\MicrosoftSDK\Directories") r"Software\Microsoft\MicrosoftSDK\Directories")
sdkdir, ignore = _winreg.QueryValueEx(key, "Install Dir") sdkdir, ignore = _winreg.QueryValueEx(key, "Install Dir")
except EnvironmentError: except EnvironmentError:
pass pass
else: else:
if DEBUG: if DEBUG:
print r"PSDK: try 'HKLM\Software\Microsoft\MicrosoftSDK"\ print r"PSDK: try 'HKLM\Software\Microsoft\MicrosoftSDK"\
"\Directories\Install Dir': '%s'" % sdkdir "\Directories\Install Dir': '%s'" % sdkdir
if os.path.isfile(os.path.join(sdkdir, landmark)): if os.path.isfile(os.path.join(sdkdir, landmark)):
return sdkdir return sdkdir
# 3. Each installed SDK (not just the platform SDK) seems to have GUID # 3. Each installed SDK (not just the platform SDK) seems to have GUID
# subkey of HKLM\Software\Microsoft\MicrosoftSDK\InstalledSDKs and # subkey of HKLM\Software\Microsoft\MicrosoftSDK\InstalledSDKs and
# it *looks* like the latest installed Platform SDK will be the # it *looks* like the latest installed Platform SDK will be the
# only one with an "Install Dir" sub-value. # only one with an "Install Dir" sub-value.
try: try:
key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE,
r"Software\Microsoft\MicrosoftSDK\InstalledSDKs") r"Software\Microsoft\MicrosoftSDK\InstalledSDKs")
i = 0 i = 0
while True: while True:
guid = _winreg.EnumKey(key, i) guid = _winreg.EnumKey(key, i)
guidkey = _winreg.OpenKey(key, guid) guidkey = _winreg.OpenKey(key, guid)
try: try:
sdkdir, ignore = _winreg.QueryValueEx(guidkey, "Install Dir") sdkdir, ignore = _winreg.QueryValueEx(guidkey, "Install Dir")
except EnvironmentError: except EnvironmentError:
pass pass
else: else:
if DEBUG: if DEBUG:
print r"PSDK: try 'HKLM\Software\Microsoft\MicrosoftSDK"\ print r"PSDK: try 'HKLM\Software\Microsoft\MicrosoftSDK"\
"\InstallSDKs\%s\Install Dir': '%s'"\ "\InstallSDKs\%s\Install Dir': '%s'"\
% (guid, sdkdir) % (guid, sdkdir)
if os.path.isfile(os.path.join(sdkdir, landmark)): if os.path.isfile(os.path.join(sdkdir, landmark)):
return sdkdir return sdkdir
i += 1 i += 1
except EnvironmentError: except EnvironmentError:
pass pass
# 4. Vista's SDK # 4. Vista's SDK
try: try:
key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE,
r"Software\Microsoft\Microsoft SDKs\Windows") r"Software\Microsoft\Microsoft SDKs\Windows")
sdkdir, ignore = _winreg.QueryValueEx(key, "CurrentInstallFolder") sdkdir, ignore = _winreg.QueryValueEx(key, "CurrentInstallFolder")
except EnvironmentError: except EnvironmentError:
pass pass
else: else:
if DEBUG: if DEBUG:
print r"PSDK: try 'HKLM\Software\Microsoft\MicrosoftSDKs"\ print r"PSDK: try 'HKLM\Software\Microsoft\MicrosoftSDKs"\
"\Windows\CurrentInstallFolder': '%s'" % sdkdir "\Windows\CurrentInstallFolder': '%s'" % sdkdir
if os.path.isfile(os.path.join(sdkdir, landmark)): if os.path.isfile(os.path.join(sdkdir, landmark)):
return sdkdir return sdkdir
# 5. Failing this just try a few well-known default install locations. # 5. Failing this just try a few well-known default install locations.
progfiles = os.environ.get("ProgramFiles", r"C:\Program Files") progfiles = os.environ.get("ProgramFiles", r"C:\Program Files")
defaultlocs = [ defaultlocs = [
os.path.join(progfiles, "Microsoft Platform SDK"), os.path.join(progfiles, "Microsoft Platform SDK"),
os.path.join(progfiles, "Microsoft SDK"), os.path.join(progfiles, "Microsoft SDK"),
] ]
for sdkdir in defaultlocs: for sdkdir in defaultlocs:
if DEBUG: if DEBUG:
print "PSDK: try default location: '%s'" % sdkdir print "PSDK: try default location: '%s'" % sdkdir
if os.path.isfile(os.path.join(sdkdir, landmark)): if os.path.isfile(os.path.join(sdkdir, landmark)):
return sdkdir return sdkdir
# Some nasty hacks to prevent most of our extensions using a manifest, as # Some nasty hacks to prevent most of our extensions using a manifest, as
# the manifest - even without a reference to the CRT assembly - is enough # the manifest - even without a reference to the CRT assembly - is enough
# to prevent the extension from loading. For more details, see # to prevent the extension from loading. For more details, see
# http://bugs.python.org/issue7833 - that issue has a patch, but it is # http://bugs.python.org/issue7833 - that issue has a patch, but it is
# languishing and will probably never be fixed for Python 2.6... # languishing and will probably never be fixed for Python 2.6...
if sys.version_info > (2,6): if sys.version_info > (2,6):
from distutils.spawn import spawn from distutils.spawn import spawn
from distutils.msvc9compiler import MSVCCompiler from distutils.msvc9compiler import MSVCCompiler
MSVCCompiler._orig_spawn = MSVCCompiler.spawn MSVCCompiler._orig_spawn = MSVCCompiler.spawn
MSVCCompiler._orig_link = MSVCCompiler.link MSVCCompiler._orig_link = MSVCCompiler.link
# We need to override this method for versions where issue7833 *has* landed # We need to override this method for versions where issue7833 *has* landed
# (ie, 2.7 and 3.2+) # (ie, 2.7 and 3.2+)
def manifest_get_embed_info(self, target_desc, ld_args): def manifest_get_embed_info(self, target_desc, ld_args):
_want_assembly_kept = getattr(self, '_want_assembly_kept', False) _want_assembly_kept = getattr(self, '_want_assembly_kept', False)
if not _want_assembly_kept: if not _want_assembly_kept:
return None return None
for arg in ld_args: for arg in ld_args:
if arg.startswith("/MANIFESTFILE:"): if arg.startswith("/MANIFESTFILE:"):
orig_manifest = arg.split(":", 1)[1] orig_manifest = arg.split(":", 1)[1]
if target_desc==self.EXECUTABLE: if target_desc==self.EXECUTABLE:
rid = 1 rid = 1
else: else:
rid = 2 rid = 2
return orig_manifest, rid return orig_manifest, rid
return None return None
# always monkeypatch it in even though it will only be called in 2.7 # always monkeypatch it in even though it will only be called in 2.7
# and 3.2+. # and 3.2+.
MSVCCompiler.manifest_get_embed_info = manifest_get_embed_info MSVCCompiler.manifest_get_embed_info = manifest_get_embed_info
def monkeypatched_spawn(self, cmd): def monkeypatched_spawn(self, cmd):
is_link = cmd[0].endswith("link.exe") or cmd[0].endswith('"link.exe"') is_link = cmd[0].endswith("link.exe") or cmd[0].endswith('"link.exe"')
is_mt = cmd[0].endswith("mt.exe") or cmd[0].endswith('"mt.exe"') is_mt = cmd[0].endswith("mt.exe") or cmd[0].endswith('"mt.exe"')
_want_assembly_kept = getattr(self, '_want_assembly_kept', False) _want_assembly_kept = getattr(self, '_want_assembly_kept', False)
if not _want_assembly_kept and is_mt: if not _want_assembly_kept and is_mt:
# We don't want mt.exe run... # We don't want mt.exe run...
return return
if not _want_assembly_kept and is_link: if not _want_assembly_kept and is_link:
# remove /MANIFESTFILE:... and add MANIFEST:NO # remove /MANIFESTFILE:... and add MANIFEST:NO
# (but note that for winxpgui, which specifies a manifest via a # (but note that for winxpgui, which specifies a manifest via a
# .rc file, this is ignored by the linker - the manifest specified # .rc file, this is ignored by the linker - the manifest specified
# in the .rc file is still added) # in the .rc file is still added)
for i in range(len(cmd)): for i in range(len(cmd)):
if cmd[i].startswith("/MANIFESTFILE:"): if cmd[i].startswith("/MANIFESTFILE:"):
cmd[i] = "/MANIFEST:NO" cmd[i] = "/MANIFEST:NO"
break break
if _want_assembly_kept and is_mt: if _want_assembly_kept and is_mt:
# We want mt.exe run with the original manifest # We want mt.exe run with the original manifest
for i in range(len(cmd)): for i in range(len(cmd)):
if cmd[i] == "-manifest": if cmd[i] == "-manifest":
cmd[i+1] = cmd[i+1] + ".orig" cmd[i+1] = cmd[i+1] + ".orig"
break break
self._orig_spawn(cmd) self._orig_spawn(cmd)
if _want_assembly_kept and is_link: if _want_assembly_kept and is_link:
# We want a copy of the original manifest so we can use it later. # We want a copy of the original manifest so we can use it later.
for i in range(len(cmd)): for i in range(len(cmd)):
if cmd[i].startswith("/MANIFESTFILE:"): if cmd[i].startswith("/MANIFESTFILE:"):
mfname = cmd[i][14:] mfname = cmd[i][14:]
shutil.copyfile(mfname, mfname + ".orig") shutil.copyfile(mfname, mfname + ".orig")
break break
def monkeypatched_link(self, target_desc, objects, output_filename, *args, **kw): def monkeypatched_link(self, target_desc, objects, output_filename, *args, **kw):
# no manifests for 3.3+ # no manifests for 3.3+
self._want_assembly_kept = sys.version_info < (3,3) and \ self._want_assembly_kept = sys.version_info < (3,3) and \
(os.path.basename(output_filename).startswith("PyISAPI_loader.dll") or \ (os.path.basename(output_filename).startswith("PyISAPI_loader.dll") or \
os.path.basename(output_filename).startswith("perfmondata.dll") or \ os.path.basename(output_filename).startswith("perfmondata.dll") or \
os.path.basename(output_filename).startswith("win32ui.pyd") or \ os.path.basename(output_filename).startswith("win32ui.pyd") or \
target_desc==self.EXECUTABLE) target_desc==self.EXECUTABLE)
try: try:
return self._orig_link(target_desc, objects, output_filename, *args, **kw) return self._orig_link(target_desc, objects, output_filename, *args, **kw)
finally: finally:
delattr(self, '_want_assembly_kept') delattr(self, '_want_assembly_kept')
MSVCCompiler.spawn = monkeypatched_spawn MSVCCompiler.spawn = monkeypatched_spawn
MSVCCompiler.link = monkeypatched_link MSVCCompiler.link = monkeypatched_link
def find_telldus_dev_dir(): def find_telldus_dev_dir():
landmark = "telldus-core.h" landmark = "telldus-core.h"
dev_dir = os.environ.get("TELLDUS_DEVDIR") dev_dir = os.environ.get("TELLDUS_DEVDIR")
if dev_dir: if dev_dir:
if DEBUG: if DEBUG:
print "Telldus dev dir:" % dev_dir print "Telldus dev dir:" % dev_dir
if os.path.isfile(os.path.join(dev_dir, landmark)): if os.path.isfile(os.path.join(dev_dir, landmark)):
return dev_dir return dev_dir
progfiles = os.environ.get("ProgramFiles", r"C:\Program Files") progfiles = os.environ.get("ProgramFiles", r"C:\Program Files")
defaultlocs = [ defaultlocs = [
os.path.join(progfiles + ' (x86)', "Telldus", "Development"), os.path.join(progfiles + ' (x86)', "Telldus", "Development"),
os.path.join(progfiles, "Telldus", "Development"), os.path.join(progfiles, "Telldus", "Development"),
] ]
for dev_dir in defaultlocs: for dev_dir in defaultlocs:
if DEBUG: if DEBUG:
print "Telldus dev dir: '%s'" % dev_dir print "Telldus dev dir: '%s'" % dev_dir
if os.path.isfile(os.path.join(dev_dir, landmark)): if os.path.isfile(os.path.join(dev_dir, landmark)):
return dev_dir return dev_dir
if DEBUG: if DEBUG:
print "Telldus dev dir not found, make sure dev code is installed. Or set TELLDUS_DEVDIR." print "Telldus dev dir not found, make sure dev code is installed. Or set TELLDUS_DEVDIR."
sdk_dir = find_platform_sdk_dir() sdk_dir = find_platform_sdk_dir()
sdk_include_dir = os.path.join(sdk_dir, 'Include') sdk_include_dir = os.path.join(sdk_dir, 'Include')
telldus_dev_dir = find_telldus_dev_dir() telldus_dev_dir = find_telldus_dev_dir()
telldus_platform = os.environ.get("TELLDUS_PLATFORM", 'x86_64') telldus_platform = os.environ.get("TELLDUS_PLATFORM", 'x86_64')
telldus_library_dir = os.path.join(telldus_dev_dir, telldus_platform) telldus_library_dir = os.path.join(telldus_dev_dir, telldus_platform)
include_dirs = [sdk_include_dir, telldus_dev_dir] include_dirs = [sdk_include_dir, telldus_dev_dir]
library_dirs = [telldus_library_dir] library_dirs = [telldus_library_dir]
libraries = ['python%i%i' % (sys.version_info[0], sys.version_info[1]) , 'TelldusCore'] libraries = ['python%i%i' % (sys.version_info[0], sys.version_info[1]) , 'TelldusCore']
define_macros = [('_WINDOWS', 1)] define_macros = [('_WINDOWS', 1)]
else: else:
include_dirs = ['/usr/include', '/usr/local/include'] include_dirs = ['/usr/include', '/usr/local/include']
library_dirs = ['/usr/lib', '/usr/local/lib'] library_dirs = ['/usr/lib', '/usr/local/lib']
libraries = ['telldus-core'] libraries = ['telldus-core']
define_macros = [] define_macros = []
define_macros.extend([('DATA_LENGTH', 20), ('CALLBACK_LENGTH', 20)]) define_macros.extend([('DATA_LENGTH', 20), ('CALLBACK_LENGTH', 20)])
telldus = Extension( telldus = Extension(
'telldus', 'telldus',
include_dirs = include_dirs, include_dirs = include_dirs,
libraries = libraries, libraries = libraries,
library_dirs = library_dirs, library_dirs = library_dirs,
define_macros = define_macros, define_macros = define_macros,
sources = ['telldus.c'] sources = ['telldus.c']
) )
setup( setup(
name = 'telldus', name = 'telldus',
version = '1.0', version = '1.0',
description = 'Python bindings for telldus', description = 'Python bindings for telldus',
author='Oyvind Saltvik', author='Oyvind Saltvik',
author_email='oyvind.saltvik@gmail.com', author_email='oyvind.saltvik@gmail.com',
url='http://github.com/fivethreeo/telldus/', url='http://github.com/fivethreeo/telldus/',
ext_modules = [telldus] ext_modules = [telldus]
) )

File diff suppressed because it is too large Load diff