summaryrefslogtreecommitdiffstats
path: root/windows_installer/winsetup.py
diff options
context:
space:
mode:
Diffstat (limited to 'windows_installer/winsetup.py')
-rw-r--r--windows_installer/winsetup.py111
1 files changed, 111 insertions, 0 deletions
diff --git a/windows_installer/winsetup.py b/windows_installer/winsetup.py
new file mode 100644
index 0000000..4d6f380
--- /dev/null
+++ b/windows_installer/winsetup.py
@@ -0,0 +1,111 @@
+# The contents of this file are subject to the BitTorrent Open Source License
+# Version 1.0 (the License). You may not copy or use this file, in either
+# source code or executable form, except in compliance with the License. You
+# may obtain a copy of the License at http://www.bittorrent.com/license/.
+#
+# Software distributed under the License is distributed on an AS IS basis,
+# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+# for the specific language governing rights and limitations under the
+# License.
+
+# Written by Bram Cohen and Matt Chisholm
+
+import os
+import sys
+from distutils.core import setup
+import py2exe
+import glob
+from BitTorrent import languages
+
+if os.name != 'nt':
+ print "This script is only for use on Win32. Use setup.py to install on a Unix OS."
+ sys.exit()
+
+from BitTorrent.platform import get_shell_dir, shellcon
+
+opts = {
+ "py2exe": {
+ "includes":"pango,atk,gobject"
+ ",encodings,encodings.*"
+# ",cjkcodecs,cjkcodecs.*"
+# ",dns,dns.rdtypes.ANY.*,dns.rdtypes.IN.*"
+ ,
+
+# Uncomment the following lines if you want a dist\ directory build by
+# py2exe that works under Win32 with a GTK runtime installed
+# separately:
+## "dll_excludes":["iconv.dll", "intl.dll", "libatk-1-1.0-0.dll",
+## "libgdk_pixbuf-2.0-0.dll", "libgdk-win32-2.0-0.dll",
+## "libglib-2.0-0.dll", "libgmodule-2.0-0.dll",
+## "libgobject-2.0-0.dll", "libgthread-2.0-0.dll",
+## "libgtk-win32-2.0-0.dll", "libpango-1.0-0.dll",
+## "libpangowin32-1.0-0.dll",
+## ],
+ }
+}
+
+# needed for py2exe to find win32com.shell; from http://starship.python.net/crew/theller/moin.cgi/WinShell
+if 1:
+ try:
+ import modulefinder, sys
+ import win32com
+ for p in win32com.__path__[1:]:
+ modulefinder.AddPackagePath("win32com", p)
+ for extra in ["win32com.shell"]: #,"win32com.mapi"
+ __import__(extra)
+ m = sys.modules[extra]
+ for p in m.__path__[1:]:
+ modulefinder.AddPackagePath(extra, p)
+ except ImportError:
+ # no build path setup, no worries.
+ pass
+
+mfc = os.path.join(get_shell_dir(shellcon.CSIDL_SYSTEM), "mfc71.dll")
+ms = [mfc, ]
+
+translations = []
+for l in languages:
+ path = os.path.join('locale', l, 'LC_MESSAGES', 'bittorrent.mo')
+ if os.access(path, os.F_OK):
+ translations.append(("locale\\%s\\LC_MESSAGES" % l,
+ ["locale\\%s\\LC_MESSAGES\\bittorrent.mo" % l,
+ #"locale\\%s\\LC_MESSAGES\\bittorrent.po" % l,
+ ]))
+ gtk_mo = []
+
+ gtk_path = ""
+
+ import gtk
+
+ if (gtk.gtk_version[1] == 4):
+ gtk_path = os.path.join(os.environ["GTK_BASEPATH"], "lib\\locale\\%s\\LC_MESSAGES" % l)
+ elif ((gtk.gtk_version[1] == 6) or (gtk.gtk_version[1] == 8)):
+ gtk_path = os.path.join(os.environ["GTK_BASEPATH"], "share\\locale\\%s\\LC_MESSAGES" % l)
+ else:
+ gtk_path = os.path.join(os.environ["GTK_BASEPATH"], "share\\locale\\%s\\LC_MESSAGES" % l)
+ if not os.path.exists(gtk_path):
+ raise Exception("Unknown gtk version, please locate gtk20.mo etc, and modify this script")
+
+ for fn in ("glib20.mo", "gtk20.mo", "gtk20-properties.mo"):
+ moname = os.path.join(gtk_path, fn)
+ if os.access(moname, os.F_OK):
+ gtk_mo.append(moname)
+ translations.append(("share\\locale\\%s\\LC_MESSAGES" % l, gtk_mo))
+
+setup(windows=[{'script': 'bittorrent.py' ,
+ "icon_resources": [(1, "images\\bittorrent.ico")]},
+ {'script': 'maketorrent.py',
+ "icon_resources": [(1, "images\\bittorrent.ico")]},
+ {'script': 'choose_language.py',
+ "icon_resources": [(1, "images\\bittorrent.ico")]},
+ ],
+ options=opts,
+ data_files=[('',["credits.txt", "LICENSE.txt",
+ "README.txt", "redirdonate.html",
+ "TRACKERLESS.txt","public.key",
+ ]),
+ ("images", ["images\\bittorrent.ico"]),
+ ("images\\icons\\default", glob.glob("images\\icons\\default\\*png")),
+ ("images\\logo", glob.glob("images\\logo\\*png")),
+ ] + ms + translations,
+ )