mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-01 19:30:13 -06:00
Files listed in the `VS_SOLUTION_ITEMS` directory property of a project directory are added as solution items in the 'Solution Items' solution directory. If `source_group` is applied to the files listed in `VS_SOLUTION_ITEMS`, solution groups matching the names of the source groups are created outside of the default 'Solution Items' group. If not items are placed into the default group, it is not created. Solution items added to subprojects are not included in the top-level project. Closes: #26409
81 lines
2.5 KiB
C++
81 lines
2.5 KiB
C++
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
|
file Copyright.txt or https://cmake.org/licensing for details. */
|
|
#pragma once
|
|
|
|
#include "cmConfigure.h" // IWYU pragma: keep
|
|
|
|
#include <memory>
|
|
#include <string>
|
|
|
|
#include <cm/optional>
|
|
|
|
#include "cmGlobalVisualStudio12Generator.h"
|
|
|
|
class cmGlobalGeneratorFactory;
|
|
class cmMakefile;
|
|
class cmake;
|
|
|
|
/** \class cmGlobalVisualStudio14Generator */
|
|
class cmGlobalVisualStudio14Generator : public cmGlobalVisualStudio12Generator
|
|
{
|
|
public:
|
|
static std::unique_ptr<cmGlobalGeneratorFactory> NewFactory();
|
|
|
|
bool MatchesGeneratorName(const std::string& name) const override;
|
|
|
|
const char* GetAndroidApplicationTypeRevision() const override
|
|
{
|
|
return "2.0";
|
|
}
|
|
|
|
protected:
|
|
cmGlobalVisualStudio14Generator(cmake* cm, const std::string& name,
|
|
std::string const& platformInGeneratorName);
|
|
|
|
bool InitializeWindowsStore(cmMakefile* mf) override;
|
|
bool InitializeAndroid(cmMakefile* mf) override;
|
|
bool SelectWindowsStoreToolset(std::string& toolset) const override;
|
|
|
|
// These aren't virtual because we need to check if the selected version
|
|
// of the toolset is installed
|
|
bool IsWindowsStoreToolsetInstalled() const;
|
|
|
|
virtual bool IsWin81SDKInstalled() const;
|
|
|
|
bool InitializePlatformWindows(cmMakefile* mf) override;
|
|
bool VerifyNoGeneratorPlatformVersion(cmMakefile* mf) const override;
|
|
|
|
bool ProcessGeneratorPlatformField(std::string const& key,
|
|
std::string const& value) override;
|
|
|
|
// Used to adjust the max-SDK-version calculation to accommodate user
|
|
// configuration.
|
|
std::string GetWindows10SDKMaxVersion(cmMakefile* mf) const;
|
|
|
|
// Used to make sure that the Windows 10 SDK selected can work with the
|
|
// version of the toolset.
|
|
virtual std::string GetWindows10SDKMaxVersionDefault(cmMakefile* mf) const;
|
|
|
|
virtual bool SelectWindows10SDK(cmMakefile* mf);
|
|
|
|
void SetWindowsTargetPlatformVersion(std::string const& version,
|
|
cmMakefile* mf);
|
|
|
|
// Used to verify that the Desktop toolset for the current generator is
|
|
// installed on the machine.
|
|
bool IsWindowsDesktopToolsetInstalled() const override;
|
|
|
|
std::string GetWindows10SDKVersion(cmMakefile* mf);
|
|
|
|
void AddSolutionItems(cmLocalGenerator* root) override;
|
|
|
|
void WriteFolderSolutionItems(std::ostream& fout,
|
|
const cmVisualStudioFolder& folder) override;
|
|
|
|
private:
|
|
class Factory;
|
|
friend class Factory;
|
|
|
|
cm::optional<std::string> GeneratorPlatformVersion;
|
|
};
|