/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #ifndef cmGlobalVisualStudio8Generator_h #define cmGlobalVisualStudio8Generator_h #include "cmGlobalVisualStudio71Generator.h" /** \class cmGlobalVisualStudio8Generator * \brief Write a Unix makefiles. * * cmGlobalVisualStudio8Generator manages UNIX build process for a tree */ class cmGlobalVisualStudio8Generator : public cmGlobalVisualStudio71Generator { public: cmGlobalVisualStudio8Generator(cmake* cm, const std::string& name, const std::string& platformName); static cmGlobalGeneratorFactory* NewFactory(); ///! Get the name for the generator. std::string GetName() const override { return this->Name; } /** Get the name of the main stamp list file. */ static std::string GetGenerateStampList(); void EnableLanguage(std::vector const& languages, cmMakefile*, bool optional) override; virtual void AddPlatformDefinitions(cmMakefile* mf); bool SetGeneratorPlatform(std::string const& p, cmMakefile* mf) override; /** * Override Configure and Generate to add the build-system check * target. */ void Configure() override; /** * Where does this version of Visual Studio look for macros for the * current user? Returns the empty string if this version of Visual * Studio does not implement support for VB macros. */ std::string GetUserMacrosDirectory() override; /** * What is the reg key path to "vsmacros" for this version of Visual * Studio? */ std::string GetUserMacrosRegKeyBase() override; /** Return true if the target project file should have the option LinkLibraryDependencies and link to .sln dependencies. */ bool NeedLinkLibraryDependencies(cmGeneratorTarget* target) override; /** Return true if building for Windows CE */ bool TargetsWindowsCE() const override { return !this->WindowsCEVersion.empty(); } /** Is the installed VS an Express edition? */ bool IsExpressEdition() const { return this->ExpressEdition; } protected: void AddExtraIDETargets() override; const char* GetIDEVersion() override { return "8.0"; } std::string FindDevEnvCommand() override; bool VSLinksDependencies() const override { return false; } bool AddCheckTarget(); /** Return true if the configuration needs to be deployed */ virtual bool NeedsDeploy(cmStateEnums::TargetType type) const; static cmIDEFlagTable const* GetExtraFlagTableVS8(); void WriteSLNHeader(std::ostream& fout) override; void WriteSolutionConfigurations( std::ostream& fout, std::vector const& configs) override; void WriteProjectConfigurations( std::ostream& fout, const std::string& name, cmGeneratorTarget const& target, std::vector const& configs, const std::set& configsPartOfDefaultBuild, const std::string& platformMapping = "") override; bool ComputeTargetDepends() override; void WriteProjectDepends(std::ostream& fout, const std::string& name, const char* path, const cmGeneratorTarget* t) override; bool UseFolderProperty(); std::string Name; std::string WindowsCEVersion; bool ExpressEdition; private: class Factory; friend class Factory; }; #endif