mirror of
https://github.com/reactos/CMake.git
synced 2024-12-04 09:54:15 +00:00
96afb12087
This converts the CMake license to a pure 3-clause OSI-approved BSD License. We drop the previous license clause requiring modified versions to be plainly marked. We also update the CMake copyright to cover the full development time range.
110 lines
3.7 KiB
C++
110 lines
3.7 KiB
C++
/*============================================================================
|
|
CMake - Cross Platform Makefile Generator
|
|
Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
|
|
|
|
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 cmLocalVisualStudio6Generator_h
|
|
#define cmLocalVisualStudio6Generator_h
|
|
|
|
#include "cmLocalVisualStudioGenerator.h"
|
|
|
|
class cmTarget;
|
|
class cmSourceFile;
|
|
class cmSourceGroup;
|
|
class cmCustomCommand;
|
|
|
|
/** \class cmLocalVisualStudio6Generator
|
|
* \brief Write a LocalUnix makefiles.
|
|
*
|
|
* cmLocalVisualStudio6Generator produces a LocalUnix makefile from its
|
|
* member this->Makefile.
|
|
*/
|
|
class cmLocalVisualStudio6Generator : public cmLocalVisualStudioGenerator
|
|
{
|
|
public:
|
|
///! Set cache only and recurse to false by default.
|
|
cmLocalVisualStudio6Generator();
|
|
|
|
virtual ~cmLocalVisualStudio6Generator();
|
|
|
|
virtual void AddHelperCommands();
|
|
|
|
/**
|
|
* Generate the makefile for this directory.
|
|
*/
|
|
virtual void Generate();
|
|
|
|
void OutputDSPFile();
|
|
|
|
enum BuildType {STATIC_LIBRARY, DLL, EXECUTABLE, WIN32_EXECUTABLE, UTILITY};
|
|
|
|
/**
|
|
* Specify the type of the build: static, dll, or executable.
|
|
*/
|
|
void SetBuildType(BuildType, const char* libName, cmTarget&);
|
|
|
|
/**
|
|
* Return array of created DSP names in a STL vector.
|
|
* Each executable must have its own dsp.
|
|
*/
|
|
std::vector<std::string> GetCreatedProjectNames()
|
|
{
|
|
return this->CreatedProjectNames;
|
|
}
|
|
virtual std::string GetTargetDirectory(cmTarget const& target) const;
|
|
void GetTargetObjectFileDirectories(cmTarget* target,
|
|
std::vector<std::string>&
|
|
dirs);
|
|
private:
|
|
std::string DSPHeaderTemplate;
|
|
std::string DSPFooterTemplate;
|
|
std::vector<std::string> CreatedProjectNames;
|
|
|
|
void CreateSingleDSP(const char *lname, cmTarget &tgt);
|
|
void WriteDSPFile(std::ostream& fout, const char *libName,
|
|
cmTarget &tgt);
|
|
void WriteDSPBeginGroup(std::ostream& fout,
|
|
const char* group,
|
|
const char* filter);
|
|
void WriteDSPEndGroup(std::ostream& fout);
|
|
|
|
void WriteDSPHeader(std::ostream& fout, const char *libName,
|
|
cmTarget &tgt, std::vector<cmSourceGroup> &sgs);
|
|
|
|
void WriteDSPFooter(std::ostream& fout);
|
|
void AddDSPBuildRule(cmTarget& tgt);
|
|
void WriteCustomRule(std::ostream& fout,
|
|
const char* source,
|
|
const cmCustomCommand& command,
|
|
const char* flags);
|
|
void AddUtilityCommandHack(cmTarget& target, int count,
|
|
std::vector<std::string>& depends,
|
|
const cmCustomCommand& origCommand);
|
|
void WriteGroup(const cmSourceGroup *sg, cmTarget& target,
|
|
std::ostream &fout, const char *libName);
|
|
class EventWriter;
|
|
friend class EventWriter;
|
|
std::string CreateTargetRules(cmTarget &target,
|
|
const char* configName,
|
|
const char *libName);
|
|
void ComputeLinkOptions(cmTarget& target, const char* configName,
|
|
const std::string extraOptions,
|
|
std::string& options);
|
|
std::string IncludeOptions;
|
|
std::vector<std::string> Configurations;
|
|
|
|
std::string GetConfigName(std::string const& configuration) const;
|
|
|
|
// Special definition check for VS6.
|
|
virtual bool CheckDefinition(std::string const& define) const;
|
|
};
|
|
|
|
#endif
|
|
|