mirror of
https://github.com/reactos/CMake.git
synced 2024-12-11 21:34:32 +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.
60 lines
1.9 KiB
C++
60 lines
1.9 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 cmIDEOptions_h
|
|
#define cmIDEOptions_h
|
|
|
|
#include "cmStandardIncludes.h"
|
|
#include "cmIDEFlagTable.h"
|
|
|
|
/** \class cmIDEOptions
|
|
* \brief Superclass for IDE option processing
|
|
*/
|
|
class cmIDEOptions
|
|
{
|
|
public:
|
|
cmIDEOptions();
|
|
virtual ~cmIDEOptions();
|
|
|
|
// Store definitions and flags.
|
|
void AddDefine(const std::string& define);
|
|
void AddDefines(const char* defines);
|
|
void AddFlag(const char* flag, const char* value);
|
|
|
|
protected:
|
|
// create a map of xml tags to the values they should have in the output
|
|
// for example, "BufferSecurityCheck" = "TRUE"
|
|
// first fill this table with the values for the configuration
|
|
// Debug, Release, etc,
|
|
// Then parse the command line flags specified in CMAKE_CXX_FLAGS
|
|
// and CMAKE_C_FLAGS
|
|
// and overwrite or add new values to this map
|
|
std::map<cmStdString, cmStdString> FlagMap;
|
|
|
|
// Preprocessor definitions.
|
|
std::vector<std::string> Defines;
|
|
|
|
// Unrecognized flags that get no special handling.
|
|
cmStdString FlagString;
|
|
|
|
bool DoingDefine;
|
|
bool AllowDefine;
|
|
bool AllowSlash;
|
|
enum { FlagTableCount = 16 };
|
|
cmIDEFlagTable const* FlagTable[FlagTableCount];
|
|
void HandleFlag(const char* flag);
|
|
bool CheckFlagTable(cmIDEFlagTable const* table, const char* flag,
|
|
bool& flag_handled);
|
|
virtual void StoreUnknownFlag(const char* flag) = 0;
|
|
};
|
|
|
|
#endif
|