cmExportBuildAndroidMKGenerator.h 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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. #include "cmConfigure.h" // IWYU pragma: keep
  5. #include <iosfwd>
  6. #include <string>
  7. #include "cmExportBuildFileGenerator.h"
  8. #include "cmStateTypes.h"
  9. class cmGeneratorTarget;
  10. /** \class cmExportBuildAndroidMKGenerator
  11. * \brief Generate a file exporting targets from a build tree.
  12. *
  13. * cmExportBuildAndroidMKGenerator generates a file exporting targets from
  14. * a build tree. This exports the targets to the Android ndk build tool
  15. * makefile format for prebuilt libraries.
  16. *
  17. * This is used to implement the export() command.
  18. */
  19. class cmExportBuildAndroidMKGenerator : public cmExportBuildFileGenerator
  20. {
  21. public:
  22. cmExportBuildAndroidMKGenerator();
  23. // this is so cmExportInstallAndroidMKGenerator can share this
  24. // function as they are almost the same
  25. enum GenerateType
  26. {
  27. BUILD,
  28. INSTALL
  29. };
  30. static void GenerateInterfaceProperties(cmGeneratorTarget const* target,
  31. std::ostream& os,
  32. const ImportPropertyMap& properties,
  33. GenerateType type,
  34. std::string const& config);
  35. protected:
  36. // Implement virtual methods from the superclass.
  37. void GeneratePolicyHeaderCode(std::ostream&) override {}
  38. void GeneratePolicyFooterCode(std::ostream&) override {}
  39. void GenerateImportHeaderCode(std::ostream& os,
  40. const std::string& config = "") override;
  41. void GenerateImportFooterCode(std::ostream& os) override;
  42. void GenerateImportTargetCode(
  43. std::ostream& os, cmGeneratorTarget const* target,
  44. cmStateEnums::TargetType /*targetType*/) override;
  45. void GenerateExpectedTargetsCode(
  46. std::ostream& os, const std::string& expectedTargets) override;
  47. void GenerateImportPropertyCode(
  48. std::ostream& os, const std::string& config,
  49. cmGeneratorTarget const* target,
  50. ImportPropertyMap const& properties) override;
  51. void GenerateMissingTargetsCheckCode(std::ostream& os) override;
  52. void GenerateInterfaceProperties(
  53. cmGeneratorTarget const* target, std::ostream& os,
  54. const ImportPropertyMap& properties) override;
  55. };