CMake Nightly Date Stamp
[kiteware-cmake.git] / Source / cmExportInstallAndroidMKGenerator.cxx
blobeaa85f31950ce6563762ec695898c1666d70151a
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"
5 #include <cstddef>
6 #include <memory>
7 #include <ostream>
8 #include <vector>
10 #include "cmExportBuildAndroidMKGenerator.h"
11 #include "cmExportSet.h"
12 #include "cmGeneratorTarget.h"
13 #include "cmInstallExportGenerator.h"
14 #include "cmInstallTargetGenerator.h"
15 #include "cmStateTypes.h"
16 #include "cmStringAlgorithms.h"
17 #include "cmSystemTools.h"
18 #include "cmTarget.h"
19 #include "cmTargetExport.h"
21 cmExportInstallAndroidMKGenerator::cmExportInstallAndroidMKGenerator(
22 cmInstallExportGenerator* iegen)
23 : cmExportInstallFileGenerator(iegen)
27 void cmExportInstallAndroidMKGenerator::GenerateImportHeaderCode(
28 std::ostream& os, const std::string&)
30 std::string installDir = this->IEGen->GetDestination();
31 os << "LOCAL_PATH := $(call my-dir)\n";
32 size_t numDotDot = cmSystemTools::CountChar(installDir.c_str(), '/');
33 numDotDot += installDir.empty() ? 0 : 1;
34 std::string path;
35 for (size_t n = 0; n < numDotDot; n++) {
36 path += "/..";
38 os << "_IMPORT_PREFIX := $(LOCAL_PATH)" << path << "\n\n";
39 for (std::unique_ptr<cmTargetExport> const& te :
40 this->IEGen->GetExportSet()->GetTargetExports()) {
41 // Collect import properties for this target.
42 if (te->Target->GetType() == cmStateEnums::INTERFACE_LIBRARY) {
43 continue;
45 std::string dest;
46 if (te->LibraryGenerator) {
47 dest = te->LibraryGenerator->GetDestination("");
49 if (te->ArchiveGenerator) {
50 dest = te->ArchiveGenerator->GetDestination("");
52 te->Target->Target->SetProperty("__dest", dest);
56 void cmExportInstallAndroidMKGenerator::GenerateImportFooterCode(std::ostream&)
60 void cmExportInstallAndroidMKGenerator::GenerateImportTargetCode(
61 std::ostream& os, cmGeneratorTarget const* target,
62 cmStateEnums::TargetType /*targetType*/)
64 std::string targetName = cmStrCat(this->Namespace, target->GetExportName());
65 os << "include $(CLEAR_VARS)\n";
66 os << "LOCAL_MODULE := ";
67 os << targetName << "\n";
68 os << "LOCAL_SRC_FILES := $(_IMPORT_PREFIX)/";
69 os << target->Target->GetSafeProperty("__dest") << "/";
70 std::string config;
71 if (!this->Configurations.empty()) {
72 config = this->Configurations[0];
74 os << target->GetFullName(config) << "\n";
77 void cmExportInstallAndroidMKGenerator::GenerateExpectedTargetsCode(
78 std::ostream&, const std::string&)
82 void cmExportInstallAndroidMKGenerator::GenerateImportPropertyCode(
83 std::ostream&, const std::string&, const std::string&,
84 cmGeneratorTarget const*, ImportPropertyMap const&, const std::string&)
88 void cmExportInstallAndroidMKGenerator::GenerateMissingTargetsCheckCode(
89 std::ostream&)
93 void cmExportInstallAndroidMKGenerator::GenerateInterfaceProperties(
94 cmGeneratorTarget const* target, std::ostream& os,
95 const ImportPropertyMap& properties)
97 std::string config;
98 if (!this->Configurations.empty()) {
99 config = this->Configurations[0];
101 cmExportBuildAndroidMKGenerator::GenerateInterfaceProperties(
102 target, os, properties, cmExportBuildAndroidMKGenerator::INSTALL, config);
105 void cmExportInstallAndroidMKGenerator::LoadConfigFiles(std::ostream&)
109 void cmExportInstallAndroidMKGenerator::GenerateImportPrefix(std::ostream&)
113 void cmExportInstallAndroidMKGenerator::CleanupTemporaryVariables(
114 std::ostream&)
118 void cmExportInstallAndroidMKGenerator::GenerateImportedFileCheckLoop(
119 std::ostream&)
123 void cmExportInstallAndroidMKGenerator::GenerateImportedFileChecksCode(
124 std::ostream&, cmGeneratorTarget*, ImportPropertyMap const&,
125 const std::set<std::string>&, const std::string&)
129 bool cmExportInstallAndroidMKGenerator::GenerateImportFileConfig(
130 const std::string&)
132 return true;