| /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying | |
| file Copyright.txt or https://cmake.org/licensing for details. */ | |
| #include "cmExportInstallAndroidMKGenerator.h" | |
| #include <cstddef> | |
| #include <memory> | |
| #include <ostream> | |
| #include "cmExportBuildAndroidMKGenerator.h" | |
| #include "cmExportSet.h" | |
| #include "cmGeneratorTarget.h" | |
| #include "cmInstallExportGenerator.h" | |
| #include "cmInstallTargetGenerator.h" | |
| #include "cmStateTypes.h" | |
| #include "cmStringAlgorithms.h" | |
| #include "cmSystemTools.h" | |
| #include "cmTarget.h" | |
| #include "cmTargetExport.h" | |
| cmExportInstallAndroidMKGenerator::cmExportInstallAndroidMKGenerator( | |
| cmInstallExportGenerator* iegen) | |
| : cmExportInstallFileGenerator(iegen) | |
| { | |
| } | |
| void cmExportInstallAndroidMKGenerator::GenerateImportHeaderCode( | |
| std::ostream& os, const std::string&) | |
| { | |
| std::string installDir = this->IEGen->GetDestination(); | |
| os << "LOCAL_PATH := $(call my-dir)\n"; | |
| size_t numDotDot = cmSystemTools::CountChar(installDir.c_str(), '/'); | |
| numDotDot += installDir.empty() ? 0 : 1; | |
| std::string path; | |
| for (size_t n = 0; n < numDotDot; n++) { | |
| path += "/.."; | |
| } | |
| os << "_IMPORT_PREFIX := " | |
| << "$(LOCAL_PATH)" << path << "\n\n"; | |
| for (std::unique_ptr<cmTargetExport> const& te : | |
| this->IEGen->GetExportSet()->GetTargetExports()) { | |
| // Collect import properties for this target. | |
| if (te->Target->GetType() == cmStateEnums::INTERFACE_LIBRARY) { | |
| continue; | |
| } | |
| std::string dest; | |
| if (te->LibraryGenerator) { | |
| dest = te->LibraryGenerator->GetDestination(""); | |
| } | |
| if (te->ArchiveGenerator) { | |
| dest = te->ArchiveGenerator->GetDestination(""); | |
| } | |
| te->Target->Target->SetProperty("__dest", dest); | |
| } | |
| } | |
| void cmExportInstallAndroidMKGenerator::GenerateImportFooterCode(std::ostream&) | |
| { | |
| } | |
| void cmExportInstallAndroidMKGenerator::GenerateImportTargetCode( | |
| std::ostream& os, cmGeneratorTarget const* target, | |
| cmStateEnums::TargetType /*targetType*/) | |
| { | |
| std::string targetName = cmStrCat(this->Namespace, target->GetExportName()); | |
| os << "include $(CLEAR_VARS)\n"; | |
| os << "LOCAL_MODULE := "; | |
| os << targetName << "\n"; | |
| os << "LOCAL_SRC_FILES := $(_IMPORT_PREFIX)/"; | |
| os << target->Target->GetSafeProperty("__dest") << "/"; | |
| std::string config; | |
| if (!this->Configurations.empty()) { | |
| config = this->Configurations[0]; | |
| } | |
| os << target->GetFullName(config) << "\n"; | |
| } | |
| void cmExportInstallAndroidMKGenerator::GenerateExpectedTargetsCode( | |
| std::ostream&, const std::string&) | |
| { | |
| } | |
| void cmExportInstallAndroidMKGenerator::GenerateImportPropertyCode( | |
| std::ostream&, const std::string&, cmGeneratorTarget const*, | |
| ImportPropertyMap const&) | |
| { | |
| } | |
| void cmExportInstallAndroidMKGenerator::GenerateMissingTargetsCheckCode( | |
| std::ostream&, const std::vector<std::string>&) | |
| { | |
| } | |
| void cmExportInstallAndroidMKGenerator::GenerateInterfaceProperties( | |
| cmGeneratorTarget const* target, std::ostream& os, | |
| const ImportPropertyMap& properties) | |
| { | |
| std::string config; | |
| if (!this->Configurations.empty()) { | |
| config = this->Configurations[0]; | |
| } | |
| cmExportBuildAndroidMKGenerator::GenerateInterfaceProperties( | |
| target, os, properties, cmExportBuildAndroidMKGenerator::INSTALL, config); | |
| } | |
| void cmExportInstallAndroidMKGenerator::LoadConfigFiles(std::ostream&) | |
| { | |
| } | |
| void cmExportInstallAndroidMKGenerator::GenerateImportPrefix(std::ostream&) | |
| { | |
| } | |
| void cmExportInstallAndroidMKGenerator::GenerateRequiredCMakeVersion( | |
| std::ostream&, const char*) | |
| { | |
| } | |
| void cmExportInstallAndroidMKGenerator::CleanupTemporaryVariables( | |
| std::ostream&) | |
| { | |
| } | |
| void cmExportInstallAndroidMKGenerator::GenerateImportedFileCheckLoop( | |
| std::ostream&) | |
| { | |
| } | |
| void cmExportInstallAndroidMKGenerator::GenerateImportedFileChecksCode( | |
| std::ostream&, cmGeneratorTarget*, ImportPropertyMap const&, | |
| const std::set<std::string>&) | |
| { | |
| } | |
| bool cmExportInstallAndroidMKGenerator::GenerateImportFileConfig( | |
| const std::string&, std::vector<std::string>&) | |
| { | |
| return true; | |
| } |