Use tox/virtualenv to build Windows packages.
This makes sure we have all needed dependencies installed in the version which is in requirements.txt. Fixes #776.
This commit is contained in:
parent
d02b63a847
commit
3dbf3f9e0a
@ -46,6 +46,20 @@ def call_script(name, *args, python=sys.executable):
|
|||||||
subprocess.check_call([python, path] + list(args))
|
subprocess.check_call([python, path] + list(args))
|
||||||
|
|
||||||
|
|
||||||
|
def call_freeze(*args, python=sys.executable):
|
||||||
|
"""Call freeze.py via tox.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
*args: The arguments to pass.
|
||||||
|
python: The python interpreter to use.
|
||||||
|
"""
|
||||||
|
env = os.environ.copy()
|
||||||
|
env['PYTHON'] = python
|
||||||
|
subprocess.check_call(
|
||||||
|
[sys.executable, '-m', 'tox', '-e', 'cxfreeze-windows'] + list(args),
|
||||||
|
env=env)
|
||||||
|
|
||||||
|
|
||||||
def build_common(args):
|
def build_common(args):
|
||||||
"""Common buildsteps used for all OS'."""
|
"""Common buildsteps used for all OS'."""
|
||||||
utils.print_title("Running asciidoc2html.py")
|
utils.print_title("Running asciidoc2html.py")
|
||||||
@ -69,17 +83,17 @@ def build_windows():
|
|||||||
parts = str(sys.version_info.major), str(sys.version_info.minor)
|
parts = str(sys.version_info.major), str(sys.version_info.minor)
|
||||||
ver = ''.join(parts)
|
ver = ''.join(parts)
|
||||||
dotver = '.'.join(parts)
|
dotver = '.'.join(parts)
|
||||||
python_x86 = r'C:\Python{}_x32\python.exe'.format(ver)
|
python_x86 = r'C:\Python{}_x32'.format(ver)
|
||||||
python_x64 = r'C:\Python{}\python.exe'.format(ver)
|
python_x64 = r'C:\Python{}'.format(ver)
|
||||||
|
|
||||||
utils.print_title("Running 32bit freeze.py build_exe")
|
utils.print_title("Running 32bit freeze.py build_exe")
|
||||||
call_script('freeze.py', 'build_exe', python=python_x86)
|
call_freeze('build_exe', python=python_x86)
|
||||||
utils.print_title("Running 64bit freeze.py build_exe")
|
utils.print_title("Running 64bit freeze.py build_exe")
|
||||||
call_script('freeze.py', 'build_exe', python=python_x64)
|
call_freeze('build_exe', python=python_x64)
|
||||||
utils.print_title("Running 32bit freeze.py bdist_msi")
|
utils.print_title("Running 32bit freeze.py bdist_msi")
|
||||||
call_script('freeze.py', 'bdist_msi', python=python_x86)
|
call_freeze('bdist_msi', python=python_x86)
|
||||||
utils.print_title("Running 64bit freeze.py bdist_msi")
|
utils.print_title("Running 64bit freeze.py bdist_msi")
|
||||||
call_script('freeze.py', 'bdist_msi', python=python_x64)
|
call_freeze('bdist_msi', python=python_x64)
|
||||||
|
|
||||||
destdir = os.path.join('dist', 'zip')
|
destdir = os.path.join('dist', 'zip')
|
||||||
_maybe_remove(destdir)
|
_maybe_remove(destdir)
|
||||||
|
10
tox.ini
10
tox.ini
@ -170,6 +170,16 @@ commands =
|
|||||||
{envpython} scripts/freeze.py build_exe --qute-skip-html -b {envdir}/build
|
{envpython} scripts/freeze.py build_exe --qute-skip-html -b {envdir}/build
|
||||||
{envdir}/build/qutebrowser --no-err-windows --nowindow --temp-basedir about:blank ":later 500 quit"
|
{envdir}/build/qutebrowser --no-err-windows --nowindow --temp-basedir about:blank ":later 500 quit"
|
||||||
|
|
||||||
|
[testenv:cxfreeze-windows]
|
||||||
|
# PYTHON is actually required when using this env, but the entire tox.ini would
|
||||||
|
# fail if we didn't have a fallback defined.
|
||||||
|
basepython = {env:PYTHON:}/python.exe
|
||||||
|
skip_install = true
|
||||||
|
deps = {[testenv:smoke-frozen]deps}
|
||||||
|
commands =
|
||||||
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
||||||
|
{envpython} scripts/freeze.py {posargs}
|
||||||
|
|
||||||
[pytest]
|
[pytest]
|
||||||
norecursedirs = .tox .venv
|
norecursedirs = .tox .venv
|
||||||
markers =
|
markers =
|
||||||
|
Loading…
Reference in New Issue
Block a user