• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

kivy / python-for-android / 6215290912

17 Sep 2023 06:49PM UTC coverage: 59.095% (+1.4%) from 57.68%
6215290912

push

github

web-flow
Merge pull request #2891 from misl6/release-2023.09.16

* Update `cffi` recipe for Python 3.10 (#2800)

* Update __init__.py

version bump to 1.15.1

* Update disable-pkg-config.patch

adjust patch for 1.15.1

* Use build rather than pep517 for building (#2784)

pep517 has been renamed to pyproject-hooks, and as a consequence all of
the deprecated functionality has been removed. build now provides the
functionality required, and since we are only interested in the
metadata, we can leverage a helper function for that. I've also removed
all of the subprocess machinery for calling the wrapping function, since
it appears to not be as noisy as pep517.

* Bump actions/setup-python and actions/checkout versions, as old ones are deprecated (#2827)

* Removes `mysqldb` recipe as does not support Python 3 (#2828)

* Removes `Babel` recipe as it's not needed anymore. (#2826)

* Remove dateutil recipe, as it's not needed anymore (#2829)

* Optimize CI runs, by avoiding unnecessary rebuilds (#2833)

* Remove `pytz` recipe, as it's not needed anymore (#2830)

* `freetype` recipe: Changed the url to use https as http doesn't work (#2846)

* Fix `vlc` recipe build (#2841)

* Correct sys_platform (#2852)

On Window, sys.platform = "win32".

I think "nt" is a reference to os.name.

* Fix code string - quickstart.rst

* Bump `kivy` version to `2.2.1` (#2855)

* Use a pinned version of `Cython` for now, as most of the recipes are incompatible with `Cython==3.x.x` (#2862)

* Automatically generate required pre-requisites (#2858)

`get_required_prerequisites()` maintains a list of Prerequisites required by each platform.

But that same information is already stored in each Prerequisite class.

Rather than rather than maintaining two lists which might become inconsistent, auto-generate one.

* Use `platform.uname` instead of `os.uname` (#2857)

Advantages:

- Works cross platform, not just Unix.
- Is a namedtuple, ... (continued)

944 of 2241 branches covered (0.0%)

Branch coverage included in aggregate %.

174 of 272 new or added lines in 32 files covered. (63.97%)

9 existing lines in 5 files now uncovered.

4725 of 7352 relevant lines covered (64.27%)

2.56 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

41.46
/pythonforandroid/recipes/libglob/__init__.py
1
"""
2
    android libglob
3
    available via '-lglob' LDFLAG
4
"""
5
from os.path import join
4✔
6

7
import sh
4✔
8

9
from pythonforandroid.logger import shprint
4✔
10
from pythonforandroid.recipe import Recipe
4✔
11
from pythonforandroid.toolchain import current_directory
4✔
12
from pythonforandroid.util import ensure_dir
4✔
13

14

15
class LibGlobRecipe(Recipe):
4✔
16
    """Make a glob.h and glob.so for the python_install_dir()"""
17
    version = '0.0.1'
4✔
18
    url = None
4✔
19
    #
20
    # glob.h and glob.c extracted from
21
    # https://github.com/white-gecko/TokyoCabinet, e.g.:
22
    #   https://raw.githubusercontent.com/white-gecko/TokyoCabinet/master/glob.h
23
    #   https://raw.githubusercontent.com/white-gecko/TokyoCabinet/master/glob.c
24
    # and pushed in via patch
25
    name = 'libglob'
4✔
26
    built_libraries = {'libglob.so': '.'}
4✔
27

28
    depends = ['hostpython3']
4✔
29
    patches = ['glob.patch']
4✔
30

31
    def should_build(self, arch):
4✔
32
        """It's faster to build than check"""
33
        return True
×
34

35
    def prebuild_arch(self, arch):
4✔
36
        """Make the build and target directories"""
37
        path = self.get_build_dir(arch.arch)
×
NEW
38
        ensure_dir(path)
×
39

40
    def build_arch(self, arch):
4✔
41
        """simple shared compile"""
42
        env = self.get_recipe_env(arch, with_flags_in_cc=False)
×
43
        for path in (
×
44
                self.get_build_dir(arch.arch),
45
                join(self.ctx.python_recipe.get_build_dir(arch.arch), 'Lib'),
46
                join(self.ctx.python_recipe.get_build_dir(arch.arch), 'Include')):
NEW
47
            ensure_dir(path)
×
48
        cli = env['CC'].split()[0]
×
49
        # makes sure first CC command is the compiler rather than ccache, refs:
50
        # https://github.com/kivy/python-for-android/issues/1399
51
        if 'ccache' in cli:
×
52
            cli = env['CC'].split()[1]
×
53
        cc = sh.Command(cli)
×
54

55
        with current_directory(self.get_build_dir(arch.arch)):
×
56
            cflags = env['CFLAGS'].split()
×
57
            cflags.extend(['-I.', '-c', '-l.', 'glob.c', '-I.'])
×
58
            shprint(cc, *cflags, _env=env)
×
59
            cflags = env['CFLAGS'].split()
×
60
            cflags.extend(['-shared', '-I.', 'glob.o', '-o', 'libglob.so'])
×
61
            cflags.extend(env['LDFLAGS'].split())
×
62
            shprint(cc, *cflags, _env=env)
×
63

64

65
recipe = LibGlobRecipe()
4✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc