Merge pull request #275 from kiwix/fix_flatpak

Fix flatpak
This commit is contained in:
Matthieu Gautier 2018-12-13 18:05:18 +01:00 committed by GitHub
commit c0c907bb92
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 5 deletions

View File

@ -23,6 +23,8 @@ class Kiwixlib(Dependency):
@property @property
def configure_option(self): def configure_option(self):
if self.buildEnv.platformInfo.build == 'flatpak':
return ""
base_option = "-Dctpp2-install-prefix={buildEnv.install_dir}" base_option = "-Dctpp2-install-prefix={buildEnv.install_dir}"
if self.buildEnv.platformInfo.build == 'android': if self.buildEnv.platformInfo.build == 'android':
base_option += ' -Dandroid=true' base_option += ' -Dandroid=true'

View File

@ -138,7 +138,8 @@ class FlatpakBuilder:
module['name'] = stepDef[1] module['name'] = stepDef[1]
if stepDef[0] == 'source': if stepDef[0] == 'source':
source = get_target_step(stepDef) source = get_target_step(stepDef)
module['no-autogen'] = getattr(source, 'flatpack_no_autogen', False) if getattr(source, 'flatpak_no_autogen', False):
module['no-autogen'] = True
module_sources = module.setdefault('sources', []) module_sources = module.setdefault('sources', [])
if isinstance(source, ReleaseDownload): if isinstance(source, ReleaseDownload):
src = { src = {
@ -174,7 +175,6 @@ class FlatpakBuilder:
builder = get_target_step(stepDef) builder = get_target_step(stepDef)
if isinstance(builder, MesonBuilder): if isinstance(builder, MesonBuilder):
module['buildsystem'] = 'meson' module['buildsystem'] = 'meson'
module['builddir'] = True
elif isinstance(builder, CMakeBuilder): elif isinstance(builder, CMakeBuilder):
module['buildsystem'] = 'cmake' module['buildsystem'] = 'cmake'
module['builddir'] = True module['builddir'] = True
@ -186,8 +186,15 @@ class FlatpakBuilder:
module['config-opts'] = builder.configure_option.split(' ') module['config-opts'] = builder.configure_option.split(' ')
manifest = MANIFEST.copy() manifest = MANIFEST.copy()
manifest['modules'] = list(modules.values()) modules = [m for m in modules.values() if m.get('sources')]
with open(pj(self.platform.buildEnv.build_dir, 'manifest.json'), 'w') as f: for m in modules:
temp = m['sources']
del m['sources']
m['sources'] = temp
manifest['modules'] = modules
manifest_name = "{}.json".format(MANIFEST['app-id'])
manifest_path = pj(self.platform.buildEnv.build_dir, manifest_name)
with open(manifest_path, 'w') as f:
f.write(json.dumps(manifest, indent=4)) f.write(json.dumps(manifest, indent=4))
def copy_patches(self): def copy_patches(self):
@ -206,7 +213,8 @@ class FlatpakBuilder:
def build(self): def build(self):
log = pj(self.platform.buildEnv.log_dir, 'cmd_build_flatpak.log') log = pj(self.platform.buildEnv.log_dir, 'cmd_build_flatpak.log')
context = Context('build', log, False) context = Context('build', log, False)
command = "flatpak-builder --user --ccache --force-clean --repo=repo builddir manifest.json" command = "flatpak-builder --user --ccache --force-clean --repo=repo builddir {id}.json"
command = command.format(id = MANIFEST['app-id'])
try: try:
run_command(command, self.platform.buildEnv.build_dir, context, self.platform.buildEnv) run_command(command, self.platform.buildEnv.build_dir, context, self.platform.buildEnv)
context._finalise() context._finalise()