resolve cyclic dependency with zstd
[platform/upstream/cmake.git] / Source / cmGlobalVisualStudio12Generator.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 "cmConfigure.h" // IWYU pragma: keep
6
7 #include <memory>
8 #include <string>
9
10 #include "cmGlobalVisualStudio11Generator.h"
11
12 class cmGlobalGeneratorFactory;
13 class cmMakefile;
14 class cmake;
15
16 /** \class cmGlobalVisualStudio12Generator  */
17 class cmGlobalVisualStudio12Generator : public cmGlobalVisualStudio11Generator
18 {
19 public:
20   static std::unique_ptr<cmGlobalGeneratorFactory> NewFactory();
21
22   bool MatchesGeneratorName(const std::string& name) const override;
23
24 protected:
25   cmGlobalVisualStudio12Generator(cmake* cm, const std::string& name,
26                                   std::string const& platformInGeneratorName);
27
28   bool ProcessGeneratorToolsetField(std::string const& key,
29                                     std::string const& value) override;
30
31   bool InitializeWindowsPhone(cmMakefile* mf) override;
32   bool InitializeWindowsStore(cmMakefile* mf) override;
33   bool SelectWindowsPhoneToolset(std::string& toolset) const override;
34   bool SelectWindowsStoreToolset(std::string& toolset) const override;
35
36   // Used to verify that the Desktop toolset for the current generator is
37   // installed on the machine.
38   bool IsWindowsDesktopToolsetInstalled() const override;
39
40   // These aren't virtual because we need to check if the selected version
41   // of the toolset is installed
42   bool IsWindowsPhoneToolsetInstalled() const;
43   bool IsWindowsStoreToolsetInstalled() const;
44
45 private:
46   class Factory;
47   friend class Factory;
48 };