Skip to content

Commit

Permalink
* Fixed #18: Builds fail on Ubuntu 13.04 with zlib.h missing.
Browse files Browse the repository at this point in the history
* Fixed missing rebuild of build.py when the previous build failed.
  • Loading branch information
roskakori committed Jul 6, 2013
1 parent 2642497 commit 97c4e41
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 2 deletions.
18 changes: 17 additions & 1 deletion buildozer/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,19 @@
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


Expand Down Expand Up @@ -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)
11 changes: 10 additions & 1 deletion buildozer/targets/android.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
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
Expand Down Expand Up @@ -105,6 +106,14 @@ def check_requirements(self):
self.javac_cmd = self._locate_java('javac')
self.keytool_cmd = self._locate_java('keytool')

_, _, 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)

checkbin = self.buildozer.checkbin
checkbin('Git git', 'git')
checkbin('Cython cython', 'cython')
Expand Down Expand Up @@ -329,7 +338,7 @@ def compile_platform(self):
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:
Expand Down

0 comments on commit 97c4e41

Please sign in to comment.