CMake/Source/cmMSProjectGenerator.h

95 lines
2.8 KiB
C++

/*=========================================================================
Program: Insight Segmentation & Registration Toolkit
Module: $RCSfile$
Language: C++
Date: $Date$
Version: $Revision$
Copyright (c) 2002 Insight Consortium. All rights reserved.
See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notices for more information.
=========================================================================*/
#ifndef cmMSProjectGenerator_h
#define cmMSProjectGenerator_h
#include "cmStandardIncludes.h"
#include "cmMakefileGenerator.h"
class cmDSPWriter;
class cmDSWWriter;
/** \class cmMSProjectGenerator
* \brief Write a Microsoft Visual C++ DSP (project) file.
*
* cmMSProjectGenerator produces a Microsoft Visual C++ DSP (project) file.
*/
class cmMSProjectGenerator : public cmMakefileGenerator
{
public:
///! Constructor sets the generation of DSW files on.
cmMSProjectGenerator();
///! Destructor.
~cmMSProjectGenerator();
///! Get the name for the generator.
virtual const char* GetName() {return "Visual Studio 6";}
///! virtual copy constructor
virtual cmMakefileGenerator* CreateObject()
{ return new cmMSProjectGenerator;}
///! Produce the makefile (in this case a Microsoft Visual C++ project).
virtual void GenerateMakefile();
///! controls the DSW/DSP settings
virtual void SetLocal(bool);
/**
* Turn off the generation of a Microsoft Visual C++ DSW file.
* This causes only the dsp file to be created. This
* is used to run as a command line program from inside visual
* studio.
*/
void BuildDSWOff() {m_BuildDSW = false;}
///! Turn on the generation of a Microsoft Visual C++ DSW file.
void BuildDSWOn() {m_BuildDSW = true;}
///! Retrieve a pointer to a cmDSWWriter instance.
cmDSWWriter* GetDSWWriter()
{return m_DSWWriter;}
///! Retrieve a pointer to a cmDSPWriter instance.
cmDSPWriter* GetDSPWriter()
{return m_DSPWriter;}
/**
* Try to determine system infomation such as shared library
* extension, pthreads, byte order etc.
*/
virtual void EnableLanguage(const char*);
/**
* Try running cmake and building a file. This is used for dynalically
* loaded commands, not as part of the usual build process. For the
* generator, it can assume that cmake has been run on the srcdir/bindir
* and it just needs to be compiled.
*/
virtual int TryCompile(const char *srcdir, const char *bindir,
const char *projectName);
private:
cmDSWWriter* m_DSWWriter;
cmDSPWriter* m_DSPWriter;
bool m_BuildDSW;
};
#endif