123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
- file Copyright.txt or https://cmake.org/licensing for details. */
- #ifndef cmLocalVisualStudioGenerator_h
- #define cmLocalVisualStudioGenerator_h
- #include "cmConfigure.h" // IWYU pragma: keep
- #include <map>
- #include <memory> // IWYU pragma: keep
- #include <string>
- #include "cmGlobalVisualStudioGenerator.h"
- #include "cmLocalGenerator.h"
- class cmCustomCommand;
- class cmCustomCommandGenerator;
- class cmGeneratorTarget;
- class cmGlobalGenerator;
- class cmMakefile;
- class cmSourceFile;
- /** \class cmLocalVisualStudioGenerator
- * \brief Base class for Visual Studio generators.
- *
- * cmLocalVisualStudioGenerator provides functionality common to all
- * Visual Studio generators.
- */
- class cmLocalVisualStudioGenerator : public cmLocalGenerator
- {
- public:
- cmLocalVisualStudioGenerator(cmGlobalGenerator* gg, cmMakefile* mf);
- virtual ~cmLocalVisualStudioGenerator();
- /** Construct a script from the given list of command lines. */
- std::string ConstructScript(cmCustomCommandGenerator const& ccg,
- const std::string& newline = "\n");
- /** Label to which to jump in a batch file after a failed step in a
- sequence of custom commands. */
- const char* GetReportErrorLabel() const;
- cmGlobalVisualStudioGenerator::VSVersion GetVersion() const;
- virtual std::string ComputeLongestObjectDirectory(
- cmGeneratorTarget const*) const = 0;
- void ComputeObjectFilenames(
- std::map<cmSourceFile const*, std::string>& mapping,
- cmGeneratorTarget const* = 0) override;
- protected:
- virtual const char* ReportErrorLabel() const;
- virtual bool CustomCommandUseLocal() const { return false; }
- /** Construct a custom command to make exe import lib dir. */
- std::unique_ptr<cmCustomCommand> MaybeCreateImplibDir(
- cmGeneratorTarget* target, const std::string& config, bool isFortran);
- };
- #endif
|