blob: c711e464cd92b8fdd0b04192c2aa83f1532906cf [file]
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
file LICENSE.rst or https://cmake.org/licensing for details. */
#pragma once
#include "cmCPackGenerator.h"
/** \class cmCPackAPKGenerator
* \brief A generator for Android APK packages
*
* The APK is assembled by driving the Android SDK build tools
* (``aapt2``, ``d8``, ``zipalign`` and ``apksigner``) directly,
* i.e. without Gradle. The actual work is implemented by the
* ``Internal/CPack/CPackAPK.cmake`` script.
*/
class cmCPackAPKGenerator : public cmCPackGenerator
{
public:
cmCPackTypeMacro(cmCPackAPKGenerator, cmCPackGenerator);
cmCPackAPKGenerator();
~cmCPackAPKGenerator() override;
char const* GetOutputExtension() override { return ".apk"; }
protected:
int InitializeInternal() override;
/**
* An APK holds a single application, components are not supported.
*/
bool SupportsComponentInstallation() const override { return false; }
/**
* Everything is packaged relative to the root of the APK.
*/
bool SupportsAbsoluteDestination() const override { return false; }
int PackageFiles() override;
};