12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
- file Copyright.txt or https://cmake.org/licensing for details. */
- #ifndef cmExportTryCompileFileGenerator_h
- #define cmExportTryCompileFileGenerator_h
- #include "cmConfigure.h" // IWYU pragma: keep
- #include "cmExportFileGenerator.h"
- #include <iosfwd>
- #include <set>
- #include <string>
- #include <vector>
- class cmGeneratorTarget;
- class cmGlobalGenerator;
- class cmMakefile;
- class cmExportTryCompileFileGenerator : public cmExportFileGenerator
- {
- public:
- cmExportTryCompileFileGenerator(cmGlobalGenerator* gg,
- std::vector<std::string> const& targets,
- cmMakefile* mf,
- std::set<std::string> const& langs);
- /** Set the list of targets to export. */
- void SetConfig(const std::string& config) { this->Config = config; }
- protected:
- // Implement virtual methods from the superclass.
- bool GenerateMainFile(std::ostream& os) override;
- void GenerateImportTargetsConfig(std::ostream&, const std::string&,
- std::string const&,
- std::vector<std::string>&) override
- {
- }
- void HandleMissingTarget(std::string&, std::vector<std::string>&,
- cmGeneratorTarget*, cmGeneratorTarget*) override
- {
- }
- void PopulateProperties(cmGeneratorTarget const* target,
- ImportPropertyMap& properties,
- std::set<const cmGeneratorTarget*>& emitted);
- std::string InstallNameDir(cmGeneratorTarget* target,
- const std::string& config) override;
- private:
- std::string FindTargets(const std::string& prop,
- const cmGeneratorTarget* tgt,
- std::string const& language,
- std::set<const cmGeneratorTarget*>& emitted);
- std::vector<cmGeneratorTarget const*> Exports;
- std::string Config;
- std::vector<std::string> Languages;
- };
- #endif
|