1 /*=========================================================================
3 Program: CMake - Cross-Platform Makefile Generator
4 Module: $RCSfile: cmIDEOptions.h,v $
6 Date: $Date: 2009-07-29 15:29:06 $
7 Version: $Revision: 1.1 $
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 cmIDEOptions_h
18 #define cmIDEOptions_h
20 #include "cmStandardIncludes.h"
21 #include "cmIDEFlagTable.h"
23 /** \class cmIDEOptions
24 * \brief Superclass for IDE option processing
30 virtual ~cmIDEOptions();
32 // Store definitions and flags.
33 void AddDefine(const std::string
& define
);
34 void AddDefines(const char* defines
);
35 void AddFlag(const char* flag
, const char* value
);
38 // create a map of xml tags to the values they should have in the output
39 // for example, "BufferSecurityCheck" = "TRUE"
40 // first fill this table with the values for the configuration
41 // Debug, Release, etc,
42 // Then parse the command line flags specified in CMAKE_CXX_FLAGS
44 // and overwrite or add new values to this map
45 std::map
<cmStdString
, cmStdString
> FlagMap
;
47 // Preprocessor definitions.
48 std::vector
<std::string
> Defines
;
50 // Unrecognized flags that get no special handling.
51 cmStdString FlagString
;
56 enum { FlagTableCount
= 16 };
57 cmIDEFlagTable
const* FlagTable
[FlagTableCount
];
58 void HandleFlag(const char* flag
);
59 bool CheckFlagTable(cmIDEFlagTable
const* table
, const char* flag
,
61 virtual void StoreUnknownFlag(const char* flag
) = 0;