mirror of https://github.com/vitalif/phantomjs
93 lines
2.8 KiB
Python
93 lines
2.8 KiB
Python
#!/usr/bin/env python
|
|
'''
|
|
This file is part of the PyPhantomJS project.
|
|
|
|
Copyright (C) 2011 James Roe <roejames12@hotmail.com>
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
'''
|
|
|
|
import os
|
|
import sys
|
|
# hack to import parent module(s)
|
|
parent_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|
sys.path = sys.path + [parent_dir]
|
|
|
|
from utils import version
|
|
|
|
try:
|
|
from cx_Freeze import setup, Executable
|
|
except ImportError:
|
|
sys.exit('cx_Freeze must be installed to use this script')
|
|
|
|
if sys.platform.startswith('win'):
|
|
try:
|
|
from win32verstamp import stamp
|
|
except ImportError:
|
|
from time import sleep
|
|
print '*** WARNING ***'
|
|
print 'the script will be unable to create the version resource'
|
|
print 'install pywin32 extensions if you want the file stamped'
|
|
sleep(2)
|
|
|
|
|
|
def qt4_plugins_dir():
|
|
from PyQt4.QtCore import QCoreApplication
|
|
app = QCoreApplication([])
|
|
|
|
qt4_plugin_dirs = map(unicode, app.libraryPaths())
|
|
if not qt4_plugin_dirs:
|
|
return
|
|
for d in qt4_plugin_dirs:
|
|
if os.path.isdir(d):
|
|
return str(d) # must be 8-bit chars for one-file builds
|
|
return
|
|
|
|
qt4_plugin_dir = qt4_plugins_dir()
|
|
if not qt4_plugin_dir:
|
|
sys.exit('Cannot find PyQt4 plugins directory')
|
|
|
|
|
|
# modules to include
|
|
includes = [
|
|
# to make sure images are supported; jpeg, gif, svg, etc.
|
|
'PyQt4.QtSvg',
|
|
'PyQt4.QtXml'
|
|
]
|
|
|
|
# files/directories to include
|
|
include_files = [
|
|
# to make sure images are supported; jpeg, gif, svg, etc.
|
|
(os.path.join(qt4_plugin_dir, 'imageformats'), 'imageformats'),
|
|
(os.path.join(parent_dir, 'plugins'), 'plugins'),
|
|
(os.path.join(parent_dir, '../examples' if os.path.exists('../examples') else '../../examples'), 'examples'),
|
|
(os.path.join(parent_dir, '../LICENSE'), 'LICENSE.txt'),
|
|
(os.path.join(parent_dir, '../README.md'), 'README.txt')
|
|
]
|
|
|
|
|
|
exe = Executable(
|
|
script = os.path.join(parent_dir, 'pyphantomjs.py'),
|
|
icon = os.path.join(parent_dir, 'resources/pyphantomjs-icon.ico')
|
|
)
|
|
|
|
|
|
setup(
|
|
name = 'PyPhantomJS',
|
|
version = version,
|
|
description = 'Minimalistic, headless, WebKit-based, JavaScript-driven tool',
|
|
options = {'build_exe': {'includes': includes, 'include_files': include_files}},
|
|
executables = [exe]
|
|
)
|