cmExportInstallAndroidMKGenerator.cxx 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. file Copyright.txt or https://cmake.org/licensing for details. */
  3. #include "cmExportInstallAndroidMKGenerator.h"
  4. #include <ostream>
  5. #include <stddef.h>
  6. #include "cmExportBuildAndroidMKGenerator.h"
  7. #include "cmExportSet.h"
  8. #include "cmGeneratorTarget.h"
  9. #include "cmInstallExportGenerator.h"
  10. #include "cmInstallTargetGenerator.h"
  11. #include "cmStateTypes.h"
  12. #include "cmSystemTools.h"
  13. #include "cmTarget.h"
  14. #include "cmTargetExport.h"
  15. cmExportInstallAndroidMKGenerator::cmExportInstallAndroidMKGenerator(
  16. cmInstallExportGenerator* iegen)
  17. : cmExportInstallFileGenerator(iegen)
  18. {
  19. }
  20. void cmExportInstallAndroidMKGenerator::GenerateImportHeaderCode(
  21. std::ostream& os, const std::string&)
  22. {
  23. std::string installDir = this->IEGen->GetDestination();
  24. os << "LOCAL_PATH := $(call my-dir)\n";
  25. size_t numDotDot = cmSystemTools::CountChar(installDir.c_str(), '/');
  26. numDotDot += installDir.empty() ? 0 : 1;
  27. std::string path;
  28. for (size_t n = 0; n < numDotDot; n++) {
  29. path += "/..";
  30. }
  31. os << "_IMPORT_PREFIX := "
  32. << "$(LOCAL_PATH)" << path << "\n\n";
  33. for (cmTargetExport* te : *this->IEGen->GetExportSet()->GetTargetExports()) {
  34. // Collect import properties for this target.
  35. if (te->Target->GetType() == cmStateEnums::INTERFACE_LIBRARY) {
  36. continue;
  37. }
  38. std::string dest;
  39. if (te->LibraryGenerator) {
  40. dest = te->LibraryGenerator->GetDestination("");
  41. }
  42. if (te->ArchiveGenerator) {
  43. dest = te->ArchiveGenerator->GetDestination("");
  44. }
  45. te->Target->Target->SetProperty("__dest", dest.c_str());
  46. }
  47. }
  48. void cmExportInstallAndroidMKGenerator::GenerateImportFooterCode(std::ostream&)
  49. {
  50. }
  51. void cmExportInstallAndroidMKGenerator::GenerateImportTargetCode(
  52. std::ostream& os, const cmGeneratorTarget* target)
  53. {
  54. std::string targetName = this->Namespace;
  55. targetName += target->GetExportName();
  56. os << "include $(CLEAR_VARS)\n";
  57. os << "LOCAL_MODULE := ";
  58. os << targetName << "\n";
  59. os << "LOCAL_SRC_FILES := $(_IMPORT_PREFIX)/";
  60. os << target->Target->GetProperty("__dest") << "/";
  61. std::string config;
  62. if (!this->Configurations.empty()) {
  63. config = this->Configurations[0];
  64. }
  65. os << target->GetFullName(config) << "\n";
  66. }
  67. void cmExportInstallAndroidMKGenerator::GenerateExpectedTargetsCode(
  68. std::ostream&, const std::string&)
  69. {
  70. }
  71. void cmExportInstallAndroidMKGenerator::GenerateImportPropertyCode(
  72. std::ostream&, const std::string&, cmGeneratorTarget const*,
  73. ImportPropertyMap const&)
  74. {
  75. }
  76. void cmExportInstallAndroidMKGenerator::GenerateMissingTargetsCheckCode(
  77. std::ostream&, const std::vector<std::string>&)
  78. {
  79. }
  80. void cmExportInstallAndroidMKGenerator::GenerateInterfaceProperties(
  81. cmGeneratorTarget const* target, std::ostream& os,
  82. const ImportPropertyMap& properties)
  83. {
  84. std::string config;
  85. if (!this->Configurations.empty()) {
  86. config = this->Configurations[0];
  87. }
  88. cmExportBuildAndroidMKGenerator::GenerateInterfaceProperties(
  89. target, os, properties, cmExportBuildAndroidMKGenerator::INSTALL, config);
  90. }
  91. void cmExportInstallAndroidMKGenerator::LoadConfigFiles(std::ostream&)
  92. {
  93. }
  94. void cmExportInstallAndroidMKGenerator::GenerateImportPrefix(std::ostream&)
  95. {
  96. }
  97. void cmExportInstallAndroidMKGenerator::GenerateRequiredCMakeVersion(
  98. std::ostream&, const char*)
  99. {
  100. }
  101. void cmExportInstallAndroidMKGenerator::CleanupTemporaryVariables(
  102. std::ostream&)
  103. {
  104. }
  105. void cmExportInstallAndroidMKGenerator::GenerateImportedFileCheckLoop(
  106. std::ostream&)
  107. {
  108. }
  109. void cmExportInstallAndroidMKGenerator::GenerateImportedFileChecksCode(
  110. std::ostream&, cmGeneratorTarget*, ImportPropertyMap const&,
  111. const std::set<std::string>&)
  112. {
  113. }
  114. bool cmExportInstallAndroidMKGenerator::GenerateImportFileConfig(
  115. const std::string&, std::vector<std::string>&)
  116. {
  117. return true;
  118. }