Merge pull request #20 from roskakori/master

Fixed #18: Builds fail on Ubuntu 13.04 with zlib.h missing.
This commit is contained in:
Mathieu Virbel 2013-07-06 08:44:50 -07:00
commit 9711f15fe8
2 changed files with 28 additions and 2 deletions

View file

@ -48,7 +48,19 @@ LOG_LEVELS_C = (RED, BLUE, BLACK)
LOG_LEVELS_T = 'EID'
class BuildozerCommandException(Exception):
class BuildozerException(Exception):
'''
Exception raised for general situations buildozer cannot process.
'''
pass
class BuildozerCommandException(BuildozerException):
'''
Exception raised when an external command failed.
See: `Buildozer.cmd()`.
'''
pass
@ -1033,9 +1045,13 @@ def run():
# don't show the exception in the command line. The log already show the
# command failed.
pass
except BuildozerException as error:
Buildozer().error('%s' % error)
def run_remote():
try:
BuildozerRemote().run_command(sys.argv[1:])
except BuildozerCommandException:
pass
except BuildozerException as error:
Buildozer().error('%s' % error)

View file

@ -19,6 +19,7 @@ import traceback
import os
from pipes import quote
from sys import platform, executable
from buildozer import BuildozerException
from buildozer.target import Target
from os import environ
from os.path import join, realpath, expanduser
@ -102,6 +103,15 @@ class TargetAndroid(Target):
self.javac_cmd = self._locate_java('javac')
self.keytool_cmd = self._locate_java('keytool')
# Check for C header <zlib.h>.
_, _, returncode_dpkg = self.buildozer.cmd(
'dpkg --version', break_on_error= False)
is_debian_like = (returncode_dpkg == 0)
if is_debian_like:
if not self.buildozer.file_exists('/usr/include/zlib.h'):
message = 'zlib headers must be installed, run: sudo apt-get install zlib1g-dev'
raise BuildozerException(message)
# Need to add internally installed ant to path for external tools
# like adb to use
path = [join(self.apache_ant_dir, 'bin')]
@ -334,7 +344,7 @@ class TargetAndroid(Target):
need_compile = 0
if last_requirements != android_requirements:
need_compile = 1
if not self.buildozer.file_exists(self.pa_dir, 'dist', 'default'):
if not self.buildozer.file_exists(self.pa_dir, 'dist', 'default', 'build.py'):
need_compile = 1
if not need_compile: