p = FDroidPopen(cmd, cwd=root_dir)
- elif bmethod == 'kivy':
- pass
-
elif bmethod == 'buildozer':
pass
bindir = os.path.join(root_dir, 'target')
- elif bmethod == 'kivy':
- logging.info("Building Kivy project...")
-
- spec = os.path.join(root_dir, 'buildozer.spec')
- if not os.path.exists(spec):
- raise BuildException("Expected to find buildozer-compatible spec at {0}"
- .format(spec))
-
- defaults = {'orientation': 'landscape', 'icon': '',
- 'permissions': '', 'android.api': "18"}
- bconfig = ConfigParser(defaults, allow_no_value=True)
- bconfig.read(spec)
-
- distdir = os.path.join('python-for-android', 'dist', 'fdroid')
- if os.path.exists(distdir):
- shutil.rmtree(distdir)
-
- modules = bconfig.get('app', 'requirements').split(',')
-
- cmd = 'ANDROIDSDK=' + config['sdk_path']
- cmd += ' ANDROIDNDK=' + ndk_path
- cmd += ' ANDROIDNDKVER=' + build.ndk
- cmd += ' ANDROIDAPI=' + str(bconfig.get('app', 'android.api'))
- cmd += ' VIRTUALENV=virtualenv'
- cmd += ' ./distribute.sh'
- cmd += ' -m ' + "'" + ' '.join(modules) + "'"
- cmd += ' -d fdroid'
- p = subprocess.Popen(cmd, cwd='python-for-android', shell=True)
- if p.returncode != 0:
- raise BuildException("Distribute build failed")
-
- cid = bconfig.get('app', 'package.domain') + '.' + bconfig.get('app', 'package.name')
- if cid != app.id:
- raise BuildException("Package ID mismatch between metadata and spec")
-
- orientation = bconfig.get('app', 'orientation', 'landscape')
- if orientation == 'all':
- orientation = 'sensor'
-
- cmd = ['./build.py'
- '--dir', root_dir,
- '--name', bconfig.get('app', 'title'),
- '--package', app.id,
- '--version', bconfig.get('app', 'version'),
- '--orientation', orientation
- ]
-
- perms = bconfig.get('app', 'permissions')
- for perm in perms.split(','):
- cmd.extend(['--permission', perm])
-
- if config.get('app', 'fullscreen') == 0:
- cmd.append('--window')
-
- icon = bconfig.get('app', 'icon.filename')
- if icon:
- cmd.extend(['--icon', os.path.join(root_dir, icon)])
-
- cmd.append('release')
- p = FDroidPopen(cmd, cwd=distdir)
-
elif bmethod == 'buildozer':
logging.info("Building Kivy project using buildozer...")
raise BuildException('Failed to find output')
src = m.group(1)
src = os.path.join(bindir, src) + '.apk'
- elif omethod == 'kivy':
- src = os.path.join('python-for-android', 'dist', 'default', 'bin',
- '{0}-{1}-release.apk'.format(
- bconfig.get('app', 'title'),
- bconfig.get('app', 'version')))
elif omethod == 'buildozer':
src = None
'patch',
'gradle',
'maven',
- 'kivy',
'buildozer',
'output',
'srclibs',
self.patch = []
self.gradle = []
self.maven = False
- self.kivy = False
self.buildozer = False
self.output = None
self.srclibs = []
raise AttributeError("No such attribute: " + name)
def build_method(self):
- for f in ['maven', 'gradle', 'kivy', 'buildozer']:
+ for f in ['maven', 'gradle', 'buildozer']:
if self.get(f):
return f
if self.output:
def output_method(self):
if self.output:
return 'raw'
- for f in ['maven', 'gradle', 'kivy', 'buildozer']:
+ for f in ['maven', 'gradle', 'buildozer']:
if self.get(f):
return f
return 'ant'
elif v == [False]:
return ['no']
- _bool_allowed = ('disable', 'kivy', 'maven', 'buildozer')
+ _bool_allowed = ('disable', 'maven', 'buildozer')
builds = []
if 'builds' in app:
value = getattr(build, field)
if field == 'gradle' and value == ['off']:
value = [ruamel.yaml.scalarstring.SingleQuotedScalarString('off')]
- if field in ('disable', 'kivy', 'maven', 'buildozer'):
+ if field in ('disable', 'maven', 'buildozer'):
if value == 'no':
continue
elif value == 'yes':