distutils/setuptools integration ================================ Instead of running p4a via the command line, you can integrate with distutils and setup.py. The base command is:: python setup.py apk The files included in the APK will be all those specified in the ``package_data`` argument to setup. For instance, the following example will include all .py and .png files in the ``testapp`` folder:: from distutils.core import setup from setup setup( name='testapp_setup', version='1.1', description='p4a setup.py example', author='Your Name', author_email='youremail@address.com', packages=find_packages(), options=options, package_data={'testapp': ['*.py', '*.png']} ) The app name and version will also be read automatically from the setup.py. The Android package name uses ``org.test.lowercaseappname`` if not set explicitly. The ``--private`` argument is set automatically using the package_data, you should *not* set this manually. The target architecture defaults to ``--armeabi``. All of these automatic arguments can be overridden by passing them manually on the command line, e.g.:: python setup.py apk --name="Testapp Setup" --version=2.5 Adding p4a arguments in setup.py -------------------------------- Instead of providing extra arguments on the command line, you can store them in setup.py by passing the ``options`` parameter to :code:`setup`. For instance:: from distutils.core import setup from setuptools import find_packages options = {'apk': {'debug': None, # use None for arguments that don't pass a value 'requirements': 'sdl2,pyjnius,kivy,python2', 'android-api': 19, 'ndk-dir': '/path/to/ndk', 'dist-name': 'bdisttest', }} packages = find_packages() print('packages are', packages) setup( name='testapp_setup', version='1.1', description='p4a setup.py example', author='Your Name', author_email='youremail@address.com', packages=find_packages(), options=options, package_data={'testapp': ['*.py', '*.png']} ) These options will be automatically included when you run ``python setup.py apk``. Any options passed on the command line will override these values. Adding p4a arguments in setup.cfg --------------------------------- You can also provide p4a arguments in the setup.cfg file, as normal for distutils. The syntax is:: [apk] argument=value requirements=sdl2,kivy