cmExportBuildAndroidMKGenerator.h 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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, const std::string& suffix,
  49. cmGeneratorTarget const* target, ImportPropertyMap const& properties,
  50. const std::string& importedXcFrameworkLocation) override;
  51. void GenerateMissingTargetsCheckCode(std::ostream& os) override;
  52. void GenerateFindDependencyCalls(std::ostream&) override {}
  53. void GenerateInterfaceProperties(
  54. cmGeneratorTarget const* target, std::ostream& os,
  55. const ImportPropertyMap& properties) override;
  56. };