VS: Clarify global generator constructor interface

Make the constructors protected since they should be produced through
factories.  Also rename `platform{ => InGenerator}Name` to clarify
the meaning of the argument.
This commit is contained in:
Brad King
2019-01-10 08:37:40 -05:00
parent 5ca7e5057b
commit 40a732800d
17 changed files with 56 additions and 35 deletions

View File

@@ -90,8 +90,9 @@ cmGlobalGeneratorFactory* cmGlobalVisualStudio10Generator::NewFactory()
} }
cmGlobalVisualStudio10Generator::cmGlobalVisualStudio10Generator( cmGlobalVisualStudio10Generator::cmGlobalVisualStudio10Generator(
cmake* cm, const std::string& name, const std::string& platformName) cmake* cm, const std::string& name,
: cmGlobalVisualStudio8Generator(cm, name, platformName) std::string const& platformInGeneratorName)
: cmGlobalVisualStudio8Generator(cm, name, platformInGeneratorName)
{ {
std::string vc10Express; std::string vc10Express;
this->ExpressEdition = cmSystemTools::ReadRegistryValue( this->ExpressEdition = cmSystemTools::ReadRegistryValue(

View File

@@ -14,8 +14,6 @@
class cmGlobalVisualStudio10Generator : public cmGlobalVisualStudio8Generator class cmGlobalVisualStudio10Generator : public cmGlobalVisualStudio8Generator
{ {
public: public:
cmGlobalVisualStudio10Generator(cmake* cm, const std::string& name,
const std::string& platformName);
static cmGlobalGeneratorFactory* NewFactory(); static cmGlobalGeneratorFactory* NewFactory();
bool MatchesGeneratorName(const std::string& name) const override; bool MatchesGeneratorName(const std::string& name) const override;
@@ -125,6 +123,9 @@ public:
cmIDEFlagTable const* GetNasmFlagTable() const; cmIDEFlagTable const* GetNasmFlagTable() const;
protected: protected:
cmGlobalVisualStudio10Generator(cmake* cm, const std::string& name,
std::string const& platformInGeneratorName);
void Generate() override; void Generate() override;
virtual bool InitializeSystem(cmMakefile* mf); virtual bool InitializeSystem(cmMakefile* mf);
virtual bool InitializeWindows(cmMakefile* mf); virtual bool InitializeWindows(cmMakefile* mf);
@@ -168,6 +169,8 @@ protected:
private: private:
class Factory; class Factory;
friend class Factory;
struct LongestSourcePath struct LongestSourcePath
{ {
LongestSourcePath() LongestSourcePath()

View File

@@ -92,8 +92,9 @@ cmGlobalGeneratorFactory* cmGlobalVisualStudio11Generator::NewFactory()
} }
cmGlobalVisualStudio11Generator::cmGlobalVisualStudio11Generator( cmGlobalVisualStudio11Generator::cmGlobalVisualStudio11Generator(
cmake* cm, const std::string& name, const std::string& platformName) cmake* cm, const std::string& name,
: cmGlobalVisualStudio10Generator(cm, name, platformName) std::string const& platformInGeneratorName)
: cmGlobalVisualStudio10Generator(cm, name, platformInGeneratorName)
{ {
std::string vc11Express; std::string vc11Express;
this->ExpressEdition = cmSystemTools::ReadRegistryValue( this->ExpressEdition = cmSystemTools::ReadRegistryValue(

View File

@@ -20,13 +20,14 @@ class cmake;
class cmGlobalVisualStudio11Generator : public cmGlobalVisualStudio10Generator class cmGlobalVisualStudio11Generator : public cmGlobalVisualStudio10Generator
{ {
public: public:
cmGlobalVisualStudio11Generator(cmake* cm, const std::string& name,
const std::string& platformName);
static cmGlobalGeneratorFactory* NewFactory(); static cmGlobalGeneratorFactory* NewFactory();
bool MatchesGeneratorName(const std::string& name) const override; bool MatchesGeneratorName(const std::string& name) const override;
protected: protected:
cmGlobalVisualStudio11Generator(cmake* cm, const std::string& name,
std::string const& platformInGeneratorName);
bool InitializeWindowsPhone(cmMakefile* mf) override; bool InitializeWindowsPhone(cmMakefile* mf) override;
bool InitializeWindowsStore(cmMakefile* mf) override; bool InitializeWindowsStore(cmMakefile* mf) override;
bool SelectWindowsPhoneToolset(std::string& toolset) const override; bool SelectWindowsPhoneToolset(std::string& toolset) const override;

View File

@@ -75,8 +75,9 @@ cmGlobalGeneratorFactory* cmGlobalVisualStudio12Generator::NewFactory()
} }
cmGlobalVisualStudio12Generator::cmGlobalVisualStudio12Generator( cmGlobalVisualStudio12Generator::cmGlobalVisualStudio12Generator(
cmake* cm, const std::string& name, const std::string& platformName) cmake* cm, const std::string& name,
: cmGlobalVisualStudio11Generator(cm, name, platformName) std::string const& platformInGeneratorName)
: cmGlobalVisualStudio11Generator(cm, name, platformInGeneratorName)
{ {
std::string vc12Express; std::string vc12Express;
this->ExpressEdition = cmSystemTools::ReadRegistryValue( this->ExpressEdition = cmSystemTools::ReadRegistryValue(

View File

@@ -18,13 +18,14 @@ class cmake;
class cmGlobalVisualStudio12Generator : public cmGlobalVisualStudio11Generator class cmGlobalVisualStudio12Generator : public cmGlobalVisualStudio11Generator
{ {
public: public:
cmGlobalVisualStudio12Generator(cmake* cm, const std::string& name,
const std::string& platformName);
static cmGlobalGeneratorFactory* NewFactory(); static cmGlobalGeneratorFactory* NewFactory();
bool MatchesGeneratorName(const std::string& name) const override; bool MatchesGeneratorName(const std::string& name) const override;
protected: protected:
cmGlobalVisualStudio12Generator(cmake* cm, const std::string& name,
std::string const& platformInGeneratorName);
bool ProcessGeneratorToolsetField(std::string const& key, bool ProcessGeneratorToolsetField(std::string const& key,
std::string const& value) override; std::string const& value) override;
@@ -44,5 +45,6 @@ protected:
private: private:
class Factory; class Factory;
friend class Factory;
}; };
#endif #endif

View File

@@ -75,8 +75,9 @@ cmGlobalGeneratorFactory* cmGlobalVisualStudio14Generator::NewFactory()
} }
cmGlobalVisualStudio14Generator::cmGlobalVisualStudio14Generator( cmGlobalVisualStudio14Generator::cmGlobalVisualStudio14Generator(
cmake* cm, const std::string& name, const std::string& platformName) cmake* cm, const std::string& name,
: cmGlobalVisualStudio12Generator(cm, name, platformName) std::string const& platformInGeneratorName)
: cmGlobalVisualStudio12Generator(cm, name, platformInGeneratorName)
{ {
std::string vc14Express; std::string vc14Express;
this->ExpressEdition = cmSystemTools::ReadRegistryValue( this->ExpressEdition = cmSystemTools::ReadRegistryValue(

View File

@@ -18,13 +18,14 @@ class cmake;
class cmGlobalVisualStudio14Generator : public cmGlobalVisualStudio12Generator class cmGlobalVisualStudio14Generator : public cmGlobalVisualStudio12Generator
{ {
public: public:
cmGlobalVisualStudio14Generator(cmake* cm, const std::string& name,
const std::string& platformName);
static cmGlobalGeneratorFactory* NewFactory(); static cmGlobalGeneratorFactory* NewFactory();
bool MatchesGeneratorName(const std::string& name) const override; bool MatchesGeneratorName(const std::string& name) const override;
protected: protected:
cmGlobalVisualStudio14Generator(cmake* cm, const std::string& name,
std::string const& platformInGeneratorName);
bool InitializeWindows(cmMakefile* mf) override; bool InitializeWindows(cmMakefile* mf) override;
bool InitializeWindowsStore(cmMakefile* mf) override; bool InitializeWindowsStore(cmMakefile* mf) override;
bool SelectWindowsStoreToolset(std::string& toolset) const override; bool SelectWindowsStoreToolset(std::string& toolset) const override;
@@ -47,5 +48,6 @@ protected:
private: private:
class Factory; class Factory;
friend class Factory;
}; };
#endif #endif

View File

@@ -76,8 +76,9 @@ cmGlobalGeneratorFactory* cmGlobalVisualStudio15Generator::NewFactory()
} }
cmGlobalVisualStudio15Generator::cmGlobalVisualStudio15Generator( cmGlobalVisualStudio15Generator::cmGlobalVisualStudio15Generator(
cmake* cm, const std::string& name, const std::string& platformName) cmake* cm, const std::string& name,
: cmGlobalVisualStudio14Generator(cm, name, platformName) std::string const& platformInGeneratorName)
: cmGlobalVisualStudio14Generator(cm, name, platformInGeneratorName)
{ {
this->ExpressEdition = false; this->ExpressEdition = false;
this->DefaultPlatformToolset = "v141"; this->DefaultPlatformToolset = "v141";

View File

@@ -18,8 +18,6 @@ class cmake;
class cmGlobalVisualStudio15Generator : public cmGlobalVisualStudio14Generator class cmGlobalVisualStudio15Generator : public cmGlobalVisualStudio14Generator
{ {
public: public:
cmGlobalVisualStudio15Generator(cmake* cm, const std::string& name,
const std::string& platformName);
static cmGlobalGeneratorFactory* NewFactory(); static cmGlobalGeneratorFactory* NewFactory();
bool MatchesGeneratorName(const std::string& name) const override; bool MatchesGeneratorName(const std::string& name) const override;
@@ -32,6 +30,9 @@ public:
std::string GetAuxiliaryToolset() const override; std::string GetAuxiliaryToolset() const override;
protected: protected:
cmGlobalVisualStudio15Generator(cmake* cm, const std::string& name,
std::string const& platformInGeneratorName);
bool InitializeWindows(cmMakefile* mf) override; bool InitializeWindows(cmMakefile* mf) override;
bool SelectWindowsStoreToolset(std::string& toolset) const override; bool SelectWindowsStoreToolset(std::string& toolset) const override;
@@ -53,6 +54,7 @@ protected:
private: private:
class Factory; class Factory;
friend class Factory;
mutable cmVSSetupAPIHelper vsSetupAPIHelper; mutable cmVSSetupAPIHelper vsSetupAPIHelper;
}; };
#endif #endif

View File

@@ -41,7 +41,7 @@ static cmVS7FlagTable cmVS7ExtraFlagTable[] = {
}; };
cmGlobalVisualStudio7Generator::cmGlobalVisualStudio7Generator( cmGlobalVisualStudio7Generator::cmGlobalVisualStudio7Generator(
cmake* cm, const std::string& platformName) cmake* cm, std::string const& platformInGeneratorName)
: cmGlobalVisualStudioGenerator(cm) : cmGlobalVisualStudioGenerator(cm)
{ {
this->IntelProjectVersion = 0; this->IntelProjectVersion = 0;
@@ -49,10 +49,10 @@ cmGlobalVisualStudio7Generator::cmGlobalVisualStudio7Generator(
this->MasmEnabled = false; this->MasmEnabled = false;
this->NasmEnabled = false; this->NasmEnabled = false;
if (platformName.empty()) { if (platformInGeneratorName.empty()) {
this->DefaultPlatformName = "Win32"; this->DefaultPlatformName = "Win32";
} else { } else {
this->DefaultPlatformName = platformName; this->DefaultPlatformName = platformInGeneratorName;
} }
this->ExtraFlagTable = cmVS7ExtraFlagTable; this->ExtraFlagTable = cmVS7ExtraFlagTable;
} }

View File

@@ -18,8 +18,6 @@ struct cmIDEFlagTable;
class cmGlobalVisualStudio7Generator : public cmGlobalVisualStudioGenerator class cmGlobalVisualStudio7Generator : public cmGlobalVisualStudioGenerator
{ {
public: public:
cmGlobalVisualStudio7Generator(cmake* cm,
const std::string& platformName = "");
~cmGlobalVisualStudio7Generator(); ~cmGlobalVisualStudio7Generator();
///! Get the name for the platform. ///! Get the name for the platform.
@@ -110,6 +108,9 @@ public:
cmIDEFlagTable const* ExtraFlagTable; cmIDEFlagTable const* ExtraFlagTable;
protected: protected:
cmGlobalVisualStudio7Generator(cmake* cm,
std::string const& platformInGeneratorName);
void Generate() override; void Generate() override;
std::string const& GetDevEnvCommand(); std::string const& GetDevEnvCommand();

View File

@@ -12,8 +12,9 @@
#include "cmake.h" #include "cmake.h"
cmGlobalVisualStudio8Generator::cmGlobalVisualStudio8Generator( cmGlobalVisualStudio8Generator::cmGlobalVisualStudio8Generator(
cmake* cm, const std::string& name, const std::string& platformName) cmake* cm, const std::string& name,
: cmGlobalVisualStudio71Generator(cm, platformName) std::string const& platformInGeneratorName)
: cmGlobalVisualStudio71Generator(cm, platformInGeneratorName)
{ {
this->ProjectConfigurationSectionName = "ProjectConfigurationPlatforms"; this->ProjectConfigurationSectionName = "ProjectConfigurationPlatforms";
this->Name = name; this->Name = name;

View File

@@ -13,9 +13,6 @@
class cmGlobalVisualStudio8Generator : public cmGlobalVisualStudio71Generator class cmGlobalVisualStudio8Generator : public cmGlobalVisualStudio71Generator
{ {
public: public:
cmGlobalVisualStudio8Generator(cmake* cm, const std::string& name,
const std::string& platformName);
///! Get the name for the generator. ///! Get the name for the generator.
std::string GetName() const override { return this->Name; } std::string GetName() const override { return this->Name; }
@@ -45,6 +42,9 @@ public:
} }
protected: protected:
cmGlobalVisualStudio8Generator(cmake* cm, const std::string& name,
std::string const& platformInGeneratorName);
void AddExtraIDETargets() override; void AddExtraIDETargets() override;
std::string FindDevEnvCommand() override; std::string FindDevEnvCommand() override;

View File

@@ -83,8 +83,9 @@ cmGlobalGeneratorFactory* cmGlobalVisualStudio9Generator::NewFactory()
} }
cmGlobalVisualStudio9Generator::cmGlobalVisualStudio9Generator( cmGlobalVisualStudio9Generator::cmGlobalVisualStudio9Generator(
cmake* cm, const std::string& name, const std::string& platformName) cmake* cm, const std::string& name,
: cmGlobalVisualStudio8Generator(cm, name, platformName) std::string const& platformInGeneratorName)
: cmGlobalVisualStudio8Generator(cm, name, platformInGeneratorName)
{ {
this->Version = VS9; this->Version = VS9;
std::string vc9Express; std::string vc9Express;

View File

@@ -13,8 +13,6 @@
class cmGlobalVisualStudio9Generator : public cmGlobalVisualStudio8Generator class cmGlobalVisualStudio9Generator : public cmGlobalVisualStudio8Generator
{ {
public: public:
cmGlobalVisualStudio9Generator(cmake* cm, const std::string& name,
const std::string& platformName);
static cmGlobalGeneratorFactory* NewFactory(); static cmGlobalGeneratorFactory* NewFactory();
/** /**
@@ -30,6 +28,10 @@ public:
*/ */
std::string GetUserMacrosRegKeyBase() override; std::string GetUserMacrosRegKeyBase() override;
protected:
cmGlobalVisualStudio9Generator(cmake* cm, const std::string& name,
std::string const& platformInGeneratorName);
private: private:
class Factory; class Factory;
friend class Factory; friend class Factory;

View File

@@ -41,7 +41,6 @@ public:
VS15 = 150 VS15 = 150
}; };
cmGlobalVisualStudioGenerator(cmake* cm);
virtual ~cmGlobalVisualStudioGenerator(); virtual ~cmGlobalVisualStudioGenerator();
VSVersion GetVersion() const; VSVersion GetVersion() const;
@@ -133,6 +132,8 @@ public:
bool dryRun) override; bool dryRun) override;
protected: protected:
cmGlobalVisualStudioGenerator(cmake* cm);
void AddExtraIDETargets() override; void AddExtraIDETargets() override;
// Does this VS version link targets to each other if there are // Does this VS version link targets to each other if there are