setup_all.py
上传用户:lswyart
上传日期:2008-06-12
资源大小:3441k
文件大小:5k
源码类别:

杀毒

开发平台:

Visual C++

  1. #-----------------------------------------------------------------------------
  2. # Name:        setup_all.py
  3. # Product:     ClamWin Antivirus
  4. #
  5. # Author:      alch [alch at users dot sourceforge dot net]
  6. #
  7. # Created:     2004/19/03
  8. # Copyright:   Copyright alch (c) 2004
  9. # Licence:     
  10. #   This program is free software; you can redistribute it and/or modify
  11. #   it under the terms of the GNU General Public License as published by
  12. #   the Free Software Foundation; either version 2 of the License, or
  13. #   (at your option) any later version.
  14. #   This program is distributed in the hope that it will be useful,
  15. #   but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17. #   GNU General Public License for more details.
  18. #   You should have received a copy of the GNU General Public License
  19. #   along with this program; if not, write to the Free Software
  20. #   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  21. #-----------------------------------------------------------------------------
  22. # setup_all.py
  23. # A distutils setup script for SpamBayes binaries
  24. import sys, os, glob
  25. sb_top_dir = os.path.abspath(os.path.dirname(os.path.join(__file__, "../../../..")))
  26. sys.path.append(sb_top_dir)
  27. sys.path.append(os.path.join(sb_top_dir,"py"))
  28. import version
  29. # ModuleFinder can't handle runtime changes to __path__, but win32com uses them,
  30. # particularly for people who build from sources.  Hook this in.
  31. try:
  32.     import modulefinder
  33.     import win32com
  34.     for p in win32com.__path__[1:]:
  35.         modulefinder.AddPackagePath("win32com", p)
  36.     for extra in ["win32com.shell","win32com.mapi"]:
  37.         __import__(extra)
  38.         m = sys.modules[extra]
  39.         for p in m.__path__[1:]:
  40.             modulefinder.AddPackagePath(extra, p)
  41. except ImportError:
  42.     # no build path setup, no worries.
  43.     pass
  44. from distutils.core import setup
  45. import py2exe
  46. py2exe_options = dict(
  47.     packages = "encodings",
  48.     excludes = "win32ui,pywin,pywin.debugger", # pywin is a package, and still seems to be included.
  49.     includes = "throb,dbhash", # AVI throb images
  50.     dll_excludes = "dapi.dll,mapi32.dll",
  51.     optimize = '02',
  52.     typelibs = [
  53.         ('{00062FFF-0000-0000-C000-000000000046}', 0, 9, 0),
  54.         ('{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}', 0, 2, 1),
  55.         ('{AC0714F2-3D04-11D1-AE7D-00A0C90F26F4}', 0, 1, 0),        
  56.     ]
  57. )
  58. # These are just objects passed to py2exe
  59. outlook_addin = dict(
  60.     icon_resources = [(1, "../../py/img/FrameIcon.ico")],
  61.     company_name = "alch",
  62.     copyright = "alch (c)  2004",
  63.     comments = "Outlook Addin for ClamWin Antivirus",
  64.     modules = ["OlAddin"],
  65.     dest_base = "bin/OlAddin",
  66. #    create_exe = False,
  67. )
  68. explorer_shell = dict(
  69.     company_name = "alch",
  70.     copyright = "alch (c)  2004",
  71.     comments = "Windows Explorer Context Menu Handler for ClamWin Antivirus",
  72.     icon_resources = [(1, "../../py/img/FrameIcon.ico")],
  73.     modules = ["ExplorerShell"],
  74.     dest_base = "bin/ExplorerShell",
  75.     create_exe = False,
  76. )
  77. scanner = dict(
  78.     company_name = "alch",
  79.     copyright = "alch (c)  2004",
  80.     comments = "ClamWin Antivirus Scanner",
  81.     icon_resources = [(1, "../../py/img/FrameIcon.ico")],
  82.     script = os.path.join(sb_top_dir, "py", "ClamWin.py"),
  83.     dest_base = "bin/ClamWin",
  84. )
  85. tray = dict(
  86.     company_name = "alch",
  87.     copyright = "alch (c)  2004",
  88.     comments = "Taskbar Tray Icon Module for ClamWin Antivirus",
  89.     icon_resources = [(1, "../../py/img/FrameIcon.ico")],
  90.     script = os.path.join(sb_top_dir, "py", "ClamTray.py"),
  91.     dest_base = "bin/ClamTray",
  92. )
  93. winclose = dict(
  94.     company_name = "alch",
  95.     copyright = "alch (c)  2004",
  96.     comments = "Setup Utility",
  97.     icon_resources = [(1, "../../py/img/FrameIcon.ico")],
  98.     script = os.path.join(sb_top_dir, "py", "CloseWindows.py"),
  99.     dest_base = "bin/WClose",
  100. )
  101. image_files = [
  102.     ["bin/img", glob.glob(os.path.join(sb_top_dir, "py/img/*.*"))],
  103. ]
  104. # Default and only distutils command is "py2exe" - save adding it to the
  105. # command line every single time.
  106. if len(sys.argv)==1 or 
  107.    (len(sys.argv)==2 and sys.argv[1] in ['-q', '-n']):
  108.     sys.argv.append("py2exe")
  109. setup(name="ClamWin Antivirus",      
  110.       version=version.clamwin_version,
  111.       description="ClamWin Antivirus",
  112.       com_server=[outlook_addin],
  113.       windows=[scanner, tray, winclose],
  114.       # and the misc data files
  115.       data_files = image_files,
  116.       options = {"py2exe" : py2exe_options},
  117.       zipfile = "lib/clamwin.zip",
  118. )