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 5 #include "cmConfigure.h" // IWYU pragma: keep 6 7 #include <iosfwd> 8 #include <set> 9 #include <string> 10 #include <vector> 11 12 #include "cmExportFileGenerator.h" 13 #include "cmExportInstallFileGenerator.h" 14 #include "cmStateTypes.h" 15 16 class cmGeneratorTarget; 17 class cmInstallExportGenerator; 18 19 /** \class cmExportInstallAndroidMKGenerator 20 * \brief Generate a file exporting targets from an install tree. 21 * 22 * cmExportInstallAndroidMKGenerator generates files exporting targets from 23 * install an installation tree. The files are placed in a temporary 24 * location for installation by cmInstallExportGenerator. The file format 25 * is for the ndk build system and is a makefile fragment specifying prebuilt 26 * libraries to the ndk build system. 27 * 28 * This is used to implement the INSTALL(EXPORT_ANDROID_MK) command. 29 */ 30 class cmExportInstallAndroidMKGenerator : public cmExportInstallFileGenerator 31 { 32 public: 33 /** Construct with the export installer that will install the 34 files. */ 35 cmExportInstallAndroidMKGenerator(cmInstallExportGenerator* iegen); 36 37 protected: 38 // Implement virtual methods from the superclass. GeneratePolicyHeaderCode(std::ostream &)39 void GeneratePolicyHeaderCode(std::ostream&) override {} GeneratePolicyFooterCode(std::ostream &)40 void GeneratePolicyFooterCode(std::ostream&) override {} 41 void GenerateImportHeaderCode(std::ostream& os, 42 const std::string& config = "") override; 43 void GenerateImportFooterCode(std::ostream& os) override; 44 void GenerateImportTargetCode( 45 std::ostream& os, cmGeneratorTarget const* target, 46 cmStateEnums::TargetType /*targetType*/) override; 47 void GenerateExpectedTargetsCode( 48 std::ostream& os, const std::string& expectedTargets) override; 49 void GenerateImportPropertyCode( 50 std::ostream& os, const std::string& config, 51 cmGeneratorTarget const* target, 52 ImportPropertyMap const& properties) override; 53 void GenerateMissingTargetsCheckCode( 54 std::ostream& os, const std::vector<std::string>& missingTargets) override; 55 void GenerateInterfaceProperties( 56 cmGeneratorTarget const* target, std::ostream& os, 57 const ImportPropertyMap& properties) override; 58 void GenerateImportPrefix(std::ostream& os) override; 59 void LoadConfigFiles(std::ostream&) override; 60 void GenerateRequiredCMakeVersion(std::ostream& os, 61 const char* versionString) override; 62 void CleanupTemporaryVariables(std::ostream&) override; 63 void GenerateImportedFileCheckLoop(std::ostream& os) override; 64 void GenerateImportedFileChecksCode( 65 std::ostream& os, cmGeneratorTarget* target, 66 ImportPropertyMap const& properties, 67 const std::set<std::string>& importedLocations) override; 68 bool GenerateImportFileConfig(const std::string& config, 69 std::vector<std::string>&) override; 70 }; 71