1 /*=========================================================================
3 Program: CMake - Cross-Platform Makefile Generator
4 Module: $RCSfile: cmGlobalVisualStudio6Generator.h,v $
6 Date: $Date: 2007/06/28 13:09:26 $
7 Version: $Revision: 1.29 $
9 Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved.
10 See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details.
12 This software is distributed WITHOUT ANY WARRANTY; without even
13 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14 PURPOSE. See the above copyright notices for more information.
16 =========================================================================*/
17 #ifndef cmGlobalVisualStudio6Generator_h
18 #define cmGlobalVisualStudio6Generator_h
20 #include "cmGlobalVisualStudioGenerator.h"
24 /** \class cmGlobalVisualStudio6Generator
25 * \brief Write a Unix makefiles.
27 * cmGlobalVisualStudio6Generator manages UNIX build process for a tree
29 class cmGlobalVisualStudio6Generator
: public cmGlobalVisualStudioGenerator
32 cmGlobalVisualStudio6Generator();
33 static cmGlobalGenerator
* New() {
34 return new cmGlobalVisualStudio6Generator
; }
36 ///! Get the name for the generator.
37 virtual const char* GetName() const {
38 return cmGlobalVisualStudio6Generator::GetActualName();}
39 static const char* GetActualName() {return "Visual Studio 6";}
41 /** Get the documentation entry for this generator. */
42 virtual void GetDocumentation(cmDocumentationEntry
& entry
) const;
44 ///! Create a local generator appropriate to this Global Generator
45 virtual cmLocalGenerator
*CreateLocalGenerator();
48 * Try to determine system infomation such as shared library
49 * extension, pthreads, byte order etc.
51 virtual void EnableLanguage(std::vector
<std::string
>const& languages
,
52 cmMakefile
*, bool optional
);
55 * Try running cmake and building a file. This is used for dynalically
56 * loaded commands, not as part of the usual build process.
58 virtual std::string
GenerateBuildCommand(const char* makeProgram
,
59 const char *projectName
,
60 const char* additionalOptions
,
61 const char *targetName
,
67 * Generate the all required files for building this project/tree. This
68 * basically creates a series of LocalGenerators for each directory and
69 * requests that they Generate.
71 virtual void Generate();
74 * Generate the DSW workspace file.
76 virtual void OutputDSWFile();
77 virtual void OutputDSWFile(cmLocalGenerator
* root
,
78 std::vector
<cmLocalGenerator
*>& generators
);
79 virtual void WriteDSWFile(std::ostream
& fout
,
80 cmLocalGenerator
* root
,
81 std::vector
<cmLocalGenerator
*>& generators
);
83 /** Append the subdirectory for the given configuration. */
84 virtual void AppendDirectoryForConfig(const char* prefix
,
89 ///! What is the configurations directory variable called?
90 virtual const char* GetCMakeCFGInitDirectory() { return "$(IntDir)"; }
92 void GenerateConfigurations(cmMakefile
* mf
);
93 void WriteDSWFile(std::ostream
& fout
);
94 void WriteDSWHeader(std::ostream
& fout
);
95 void WriteProject(std::ostream
& fout
,
96 const char* name
, const char* path
, cmTarget
&t
);
97 void WriteExternalProject(std::ostream
& fout
,
98 const char* name
, const char* path
,
99 const std::vector
<std::string
>& dependencies
);
100 void WriteDSWFooter(std::ostream
& fout
);