summaryrefslogtreecommitdiffstats
path: root/Source/cmLocalVisualStudio7Generator.h
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2007-03-12 16:35:11 (GMT)
committerBrad King <brad.king@kitware.com>2007-03-12 16:35:11 (GMT)
commitfb38af53c0536de7abda7f9a5eea2527f087caf1 (patch)
tree84dca98bd0c0d419b196698d3188e110e7354940 /Source/cmLocalVisualStudio7Generator.h
parent55603ea9ebc044d8d811198d924851c2a1cc9ddb (diff)
downloadCMake-fb38af53c0536de7abda7f9a5eea2527f087caf1.zip
CMake-fb38af53c0536de7abda7f9a5eea2527f087caf1.tar.gz
CMake-fb38af53c0536de7abda7f9a5eea2527f087caf1.tar.bz2
BUG: Split precompiled header flags into a separate per-global-generator flag map. This is needed because the flag mappings differ across VS IDE versions. This fixes bug#3512 for VS8 where as the previous fix only worked for VS7.
Diffstat (limited to 'Source/cmLocalVisualStudio7Generator.h')
-rw-r--r--Source/cmLocalVisualStudio7Generator.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/Source/cmLocalVisualStudio7Generator.h b/Source/cmLocalVisualStudio7Generator.h
index 820b69b..64a29c5 100644
--- a/Source/cmLocalVisualStudio7Generator.h
+++ b/Source/cmLocalVisualStudio7Generator.h
@@ -72,6 +72,8 @@ public:
// return the source name for the object file
virtual std::string GetSourceObjectName(cmSourceFile& );
+ void SetExtraFlagTable(cmVS7FlagTable const* table)
+ { this->ExtraFlagTable = table; }
private:
typedef cmLocalVisualStudio7GeneratorOptions Options;
void ReadAndStoreExternalGUID(const char* name,
@@ -124,11 +126,32 @@ private:
const char *libName, std::vector<std::string> *configs);
virtual std::string GetTargetDirectory(cmTarget&);
+ cmVS7FlagTable const* ExtraFlagTable;
std::vector<std::string> CreatedProjectNames;
std::string ModuleDefinitionFile;
int Version;
std::string PlatformName; // Win32 or x64
};
+// This is a table mapping XML tag IDE names to command line options
+struct cmVS7FlagTable
+{
+ const char* IDEName; // name used in the IDE xml file
+ const char* commandFlag; // command line flag
+ const char* comment; // comment
+ const char* value; // string value
+ unsigned int special; // flags for special handling requests
+ enum
+ {
+ UserValue = (1<<0), // flag contains a user-specified value
+ UserIgnored = (1<<1), // ignore any user value
+ UserRequired = (1<<2), // match only when user value is non-empty
+ Continue = (1<<3), // continue looking for matching entries
+
+ UserValueIgnored = UserValue | UserIgnored,
+ UserValueRequired = UserValue | UserRequired
+ };
+};
+
#endif