/*============================================================================ CMake - Cross Platform Makefile Generator Copyright 2011 Peter Collingbourne <peter@pcc.me.uk> Copyright 2011 Nicolas Despres <nicolas.despres@gmail.com> Distributed under the OSI-approved BSD License (the "License"); see accompanying file Copyright.txt for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the License for more information. ============================================================================*/ #ifndef cmNinjaNormalTargetGenerator_h # define cmNinjaNormalTargetGenerator_h # include "cmNinjaTargetGenerator.h" # include "cmNinjaTypes.h" # include "cmStandardIncludes.h" # include <set> class cmSourceFile; class cmOSXBundleGenerator; class cmGeneratorTarget; class cmNinjaNormalTargetGenerator : public cmNinjaTargetGenerator { public: cmNinjaNormalTargetGenerator(cmGeneratorTarget* target); ~cmNinjaNormalTargetGenerator(); void Generate(); private: std::string LanguageLinkerRule() const; const char* GetVisibleTypeName() const; void WriteLanguagesRules(); void WriteLinkRule(bool useResponseFile); void WriteLinkStatement(); void WriteObjectLibStatement(); std::vector<std::string> ComputeLinkCmd(); private: // Target name info. std::string TargetNameOut; std::string TargetNameSO; std::string TargetNameReal; std::string TargetNameImport; std::string TargetNamePDB; std::string TargetLinkLanguage; }; #endif // ! cmNinjaNormalTargetGenerator_h