resolve cyclic dependency with zstd
[platform/upstream/cmake.git] / Source / cmGlobalVisualStudio71Generator.h
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 <iosfwd>
6 #include <set>
7 #include <string>
8 #include <utility>
9 #include <vector>
10
11 #include "cmGlobalVisualStudio7Generator.h"
12 #include "cmValue.h"
13
14 class cmGeneratorTarget;
15 class cmLocalGenerator;
16 class cmake;
17 template <typename T>
18 class BT;
19
20 /** \class cmGlobalVisualStudio71Generator
21  * \brief Write a Unix makefiles.
22  *
23  * cmGlobalVisualStudio71Generator manages UNIX build process for a tree
24  */
25 class cmGlobalVisualStudio71Generator : public cmGlobalVisualStudio7Generator
26 {
27 public:
28   cmGlobalVisualStudio71Generator(cmake* cm,
29                                   const std::string& platformName = "");
30
31 protected:
32   void WriteSLNFile(std::ostream& fout, cmLocalGenerator* root,
33                     std::vector<cmLocalGenerator*>& generators) override;
34   virtual void WriteSolutionConfigurations(
35     std::ostream& fout, std::vector<std::string> const& configs);
36   void WriteProject(std::ostream& fout, const std::string& name,
37                     const std::string& path,
38                     const cmGeneratorTarget* t) override;
39   void WriteProjectDepends(std::ostream& fout, const std::string& name,
40                            const std::string& path,
41                            cmGeneratorTarget const* t) override;
42   void WriteProjectConfigurations(
43     std::ostream& fout, const std::string& name,
44     cmGeneratorTarget const& target, std::vector<std::string> const& configs,
45     const std::set<std::string>& configsPartOfDefaultBuild,
46     const std::string& platformMapping = "") override;
47   void WriteExternalProject(
48     std::ostream& fout, const std::string& name, const std::string& path,
49     cmValue typeGuid,
50     const std::set<BT<std::pair<std::string, bool>>>& depends) override;
51
52   // Folders are not supported by VS 7.1.
53   bool UseFolderProperty() const override { return false; }
54
55   std::string ProjectConfigurationSectionName;
56 };