resolve cyclic dependency with zstd
[platform/upstream/cmake.git] / Source / cmExportBuildAndroidMKGenerator.h
1 /* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
2    file Copyright.txt or https://cmake.org/licensing for details.  */
3 #pragma once
4
5 #include "cmConfigure.h" // IWYU pragma: keep
6
7 #include <iosfwd>
8 #include <string>
9
10 #include "cmExportBuildFileGenerator.h"
11 #include "cmExportFileGenerator.h"
12 #include "cmStateTypes.h"
13
14 class cmGeneratorTarget;
15
16 /** \class cmExportBuildAndroidMKGenerator
17  * \brief Generate a file exporting targets from a build tree.
18  *
19  * cmExportBuildAndroidMKGenerator generates a file exporting targets from
20  * a build tree.  This exports the targets to the Android ndk build tool
21  * makefile format for prebuilt libraries.
22  *
23  * This is used to implement the export() command.
24  */
25 class cmExportBuildAndroidMKGenerator : public cmExportBuildFileGenerator
26 {
27 public:
28   cmExportBuildAndroidMKGenerator();
29   // this is so cmExportInstallAndroidMKGenerator can share this
30   // function as they are almost the same
31   enum GenerateType
32   {
33     BUILD,
34     INSTALL
35   };
36   static void GenerateInterfaceProperties(cmGeneratorTarget const* target,
37                                           std::ostream& os,
38                                           const ImportPropertyMap& properties,
39                                           GenerateType type,
40                                           std::string const& config);
41
42 protected:
43   // Implement virtual methods from the superclass.
44   void GeneratePolicyHeaderCode(std::ostream&) override {}
45   void GeneratePolicyFooterCode(std::ostream&) override {}
46   void GenerateImportHeaderCode(std::ostream& os,
47                                 const std::string& config = "") override;
48   void GenerateImportFooterCode(std::ostream& os) override;
49   void GenerateImportTargetCode(
50     std::ostream& os, cmGeneratorTarget const* target,
51     cmStateEnums::TargetType /*targetType*/) override;
52   void GenerateExpectedTargetsCode(
53     std::ostream& os, const std::string& expectedTargets) override;
54   void GenerateImportPropertyCode(
55     std::ostream& os, const std::string& config,
56     cmGeneratorTarget const* target,
57     ImportPropertyMap const& properties) override;
58   void GenerateMissingTargetsCheckCode(std::ostream& os) override;
59   void GenerateInterfaceProperties(
60     cmGeneratorTarget const* target, std::ostream& os,
61     const ImportPropertyMap& properties) override;
62 };