Eneboo - Documentación para desarrolladores
|
00001 /**************************************************************************** 00002 ** $Id: qt/msvc_objectmodel.h 3.3.8 edited Jan 11 14:46 $ 00003 ** 00004 ** Definition of VCProject class. 00005 ** 00006 ** Copyright (C) 2002-2007 Trolltech ASA. All rights reserved. 00007 ** 00008 ** This file is part of qmake. 00009 ** 00010 ** This file may be distributed under the terms of the Q Public License 00011 ** as defined by Trolltech ASA of Norway and appearing in the file 00012 ** LICENSE.QPL included in the packaging of this file. 00013 ** 00014 ** This file may be distributed and/or modified under the terms of the 00015 ** GNU General Public License version 2 as published by the Free Software 00016 ** Foundation and appearing in the file LICENSE.GPL included in the 00017 ** packaging of this file. 00018 ** 00019 ** Licensees holding valid Qt Enterprise Edition licenses may use this 00020 ** file in accordance with the Qt Commercial License Agreement provided 00021 ** with the Software. 00022 ** 00023 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 00024 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 00025 ** 00026 ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for 00027 ** information about Qt Commercial License Agreements. 00028 ** See http://www.trolltech.com/qpl/ for QPL licensing information. 00029 ** See http://www.trolltech.com/gpl/ for GPL licensing information. 00030 ** 00031 ** Contact info@trolltech.com if any conditions of this licensing are 00032 ** not clear to you. 00033 ** 00034 **********************************************************************/ 00035 00036 #ifndef __MSVC_OBJECTMODEL_H__ 00037 #define __MSVC_OBJECTMODEL_H__ 00038 00039 #include "project.h" 00040 #include <qstring.h> 00041 #include <qstringlist.h> 00042 00043 enum DotNET { 00044 NETUnknown = 0, 00045 NET2002 = 0x70, 00046 NET2003 = 0x71, 00047 NET2005 = 0x80 00048 }; 00049 00050 /* 00051 This Object model is of course VERY simplyfied, 00052 and does not actually follow the original MSVC 00053 object model. However, it fulfilles the basic 00054 needs for qmake 00055 */ 00056 00057 /* 00058 If a triState value is 'unset' then the 00059 corresponding property is not in the output, 00060 forcing the tool to utilize default values. 00061 False/True values will be in the output... 00062 */ 00063 enum customBuildCheck { 00064 none, 00065 moc, 00066 uic, 00067 lexyacc, 00068 resource 00069 }; 00070 enum triState { 00071 unset = -1, 00072 _False = 0, 00073 _True = 1 00074 }; 00075 enum addressAwarenessType { 00076 addrAwareDefault, 00077 addrAwareNoLarge, 00078 addrAwareLarge 00079 }; 00080 enum asmListingOption { 00081 asmListingNone, 00082 asmListingAssemblyOnly, 00083 asmListingAsmMachineSrc, 00084 asmListingAsmMachine, 00085 asmListingAsmSrc 00086 }; 00087 enum basicRuntimeCheckOption { 00088 runtimeBasicCheckNone, 00089 runtimeCheckStackFrame, 00090 runtimeCheckUninitVariables, 00091 runtimeBasicCheckAll 00092 }; 00093 enum browseInfoOption { 00094 brInfoNone, 00095 brAllInfo, 00096 brNoLocalSymbols 00097 }; 00098 enum callingConventionOption { 00099 callConventionDefault = -1, 00100 callConventionCDecl, 00101 callConventionFastCall, 00102 callConventionStdCall 00103 }; 00104 enum charSet { 00105 charSetNotSet, 00106 charSetUnicode, 00107 charSetMBCS 00108 }; 00109 enum compileAsManagedOptions { 00110 managedDefault = -1, 00111 managedAssembly = 2 00112 }; 00113 enum CompileAsOptions{ 00114 compileAsDefault, 00115 compileAsC, 00116 compileAsCPlusPlus 00117 }; 00118 enum ConfigurationTypes { 00119 typeUnknown = 0, 00120 typeApplication = 1, 00121 typeDynamicLibrary = 2, 00122 typeStaticLibrary = 4, 00123 typeGeneric = 10 00124 }; 00125 enum debugOption { 00126 debugUnknown = -1, 00127 debugDisabled, 00128 debugOldStyleInfo, 00129 debugLineInfoOnly, 00130 debugEnabled, 00131 debugEditAndContinue 00132 }; 00133 enum eAppProtectionOption { 00134 eAppProtectUnchanged, 00135 eAppProtectLow, 00136 eAppProtectMedium, 00137 eAppProtectHigh 00138 }; 00139 enum enumResourceLangID { 00140 rcUseDefault = 0, 00141 rcAfrikaans = 1078, 00142 rcAlbanian = 1052, 00143 rcArabicAlgeria = 5121, 00144 rcArabicBahrain = 15361, 00145 rcArabicEgypt = 3073, 00146 rcArabicIraq = 2049, 00147 rcArabicJordan = 11265, 00148 rcArabicKuwait = 13313, 00149 rcArabicLebanon = 12289, 00150 rcArabicLibya = 4097, 00151 rcArabicMorocco = 6145, 00152 rcArabicOman = 8193, 00153 rcArabicQatar = 16385, 00154 rcArabicSaudi = 1025, 00155 rcArabicSyria = 10241, 00156 rcArabicTunisia = 7169, 00157 rcArabicUnitedArabEmirates = 14337, 00158 rcArabicYemen = 9217, 00159 rcBasque = 1069, 00160 rcBulgarian = 1026, 00161 rcByelorussian = 1059, 00162 rcCatalan = 1027, 00163 rcChineseHongKong = 3076, 00164 rcChinesePRC = 2052, 00165 rcChineseSingapore = 4100, 00166 rcChineseTaiwan = 1028, 00167 rcCroatian = 1050, 00168 rcCzech = 1029, 00169 rcDanish = 1030, 00170 rcDutchBelgium = 2067, 00171 rcDutchStandard = 1043, 00172 rcEnglishAustralia = 3081, 00173 rcEnglishBritain = 2057, 00174 rcEnglishCanada = 4105, 00175 RcEnglishCaribbean = 9225, 00176 rcEnglishIreland = 6153, 00177 rcEnglishJamaica = 8201, 00178 rcEnglishNewZealand = 5129, 00179 rcEnglishSouthAfrica = 7177, 00180 rcEnglishUS = 1033, 00181 rcEstonian = 1061, 00182 rcFarsi = 1065, 00183 rcFinnish = 1035, 00184 rcFrenchBelgium = 2060, 00185 rcFrenchCanada = 3084, 00186 rcFrenchLuxembourg = 5132, 00187 rcFrenchStandard = 1036, 00188 rcFrenchSwitzerland = 4108, 00189 rcGermanAustria = 3079, 00190 rcGermanLichtenstein = 5127, 00191 rcGermanLuxembourg = 4103, 00192 rcGermanStandard = 1031, 00193 rcGermanSwitzerland = 2055, 00194 rcGreek = 1032, 00195 rcHebrew = 1037, 00196 rcHungarian = 1038, 00197 rcIcelandic = 1039, 00198 rcIndonesian = 1057, 00199 rcItalianStandard = 1040, 00200 rcItalianSwitzerland = 2064, 00201 rcJapanese = 1041, 00202 rcKorean = 1042, 00203 rcKoreanJohab = 2066, 00204 rcLatvian = 1062, 00205 rcLithuanian = 1063, 00206 rcNorwegianBokmal = 1044, 00207 rcNorwegianNynorsk = 2068, 00208 rcPolish = 1045, 00209 rcPortugueseBrazilian = 1046, 00210 rcPortugueseStandard = 2070, 00211 rcRomanian = 1048, 00212 rcRussian = 1049, 00213 rcSerbian = 2074, 00214 rcSlovak = 1051, 00215 rcSpanishArgentina = 11274, 00216 rcSpanishBolivia = 16394, 00217 rcSpanishChile = 13322, 00218 rcSpanishColombia = 9226, 00219 rcSpanishCostaRica = 5130, 00220 rcSpanishDominicanRepublic = 7178, 00221 rcSpanishEcuador = 12298, 00222 rcSpanishGuatemala = 4106, 00223 rcSpanishMexico = 2058, 00224 rcSpanishModern = 3082, 00225 rcSpanishPanama = 6154, 00226 rcSpanishParaguay = 15370, 00227 rcSpanishPeru = 10250, 00228 rcSpanishTraditional = 1034, 00229 rcSpanishUruguay = 14346, 00230 rcSpanishVenezuela = 8202, 00231 rcSwedish = 1053, 00232 rcThai = 1054, 00233 rcTurkish = 1055, 00234 rcUkrainian = 1058, 00235 rcUrdu = 1056 00236 }; 00237 enum enumSccEvent { 00238 eProjectInScc, 00239 ePreDirtyNotification 00240 }; 00241 enum favorSizeOrSpeedOption { 00242 favorNone, 00243 favorSpeed, 00244 favorSize 00245 }; 00246 enum genProxyLanguage { 00247 genProxyNative, 00248 genProxyManaged 00249 }; 00250 enum inlineExpansionOption { 00251 expandDisable, 00252 expandOnlyInline, 00253 expandAnySuitable, 00254 expandDefault // Not useful number, but stops the output 00255 }; 00256 enum linkIncrementalType { 00257 linkIncrementalDefault, 00258 linkIncrementalNo, 00259 linkIncrementalYes 00260 }; 00261 enum linkProgressOption { 00262 linkProgressNotSet, 00263 linkProgressAll, 00264 linkProgressLibs 00265 }; 00266 enum machineTypeOption { 00267 machineNotSet, 00268 machineX86 00269 }; 00270 enum midlCharOption { 00271 midlCharUnsigned, 00272 midlCharSigned, 00273 midlCharAscii7 00274 }; 00275 enum midlErrorCheckOption { 00276 midlEnableCustom, 00277 midlDisableAll, 00278 midlEnableAll 00279 }; 00280 enum midlStructMemberAlignOption { 00281 midlAlignNotSet, 00282 midlAlignSingleByte, 00283 midlAlignTwoBytes, 00284 midlAlignFourBytes, 00285 midlAlignEightBytes, 00286 midlAlignSixteenBytes 00287 }; 00288 enum midlTargetEnvironment { 00289 midlTargetNotSet, 00290 midlTargetWin32, 00291 midlTargetWin64 00292 }; 00293 enum midlWarningLevelOption { 00294 midlWarningLevel_0, 00295 midlWarningLevel_1, 00296 midlWarningLevel_2, 00297 midlWarningLevel_3, 00298 midlWarningLevel_4 00299 }; 00300 enum optFoldingType { 00301 optFoldingDefault, 00302 optNoFolding, 00303 optFolding 00304 }; 00305 enum optimizeOption { 00306 optimizeDisabled, 00307 optimizeMinSpace, 00308 optimizeMaxSpeed, 00309 optimizeFull, 00310 optimizeCustom, 00311 optimizeDefault // Not useful number, but stops the output 00312 }; 00313 enum optRefType { 00314 optReferencesDefault, 00315 optNoReferences, 00316 optReferences 00317 }; 00318 enum optWin98Type { 00319 optWin98Default, 00320 optWin98No, 00321 optWin98Yes 00322 }; 00323 enum pchOption { 00324 pchNone, 00325 pchCreateUsingSpecific, 00326 pchGenerateAuto, 00327 pchUseUsingSpecific 00328 }; 00329 enum preprocessOption { 00330 preprocessUnknown = -1, 00331 preprocessNo, 00332 preprocessYes, 00333 preprocessNoLineNumbers 00334 }; 00335 enum ProcessorOptimizeOption { 00336 procOptimizeBlended, 00337 procOptimizePentium, 00338 procOptimizePentiumProAndAbove 00339 }; 00340 enum RemoteDebuggerType { 00341 DbgLocal, 00342 DbgRemote, 00343 DbgRemoteTCPIP 00344 }; 00345 enum runtimeLibraryOption { 00346 rtUnknown = -1, 00347 rtMultiThreaded, 00348 rtMultiThreadedDebug, 00349 rtMultiThreadedDLL, 00350 rtMultiThreadedDebugDLL, 00351 rtSingleThreaded, 00352 rtSingleThreadedDebug 00353 }; 00354 enum structMemberAlignOption { 00355 alignNotSet, 00356 alignSingleByte, 00357 alignTwoBytes, 00358 alignFourBytes, 00359 alignEightBytes, 00360 alignSixteenBytes 00361 }; 00362 enum subSystemOption { 00363 subSystemNotSet, 00364 subSystemConsole, 00365 subSystemWindows 00366 }; 00367 enum termSvrAwarenessType { 00368 termSvrAwareDefault, 00369 termSvrAwareNo, 00370 termSvrAwareYes 00371 }; 00372 enum toolSetType { 00373 toolSetUtility, 00374 toolSetMakefile, 00375 toolSetLinker, 00376 toolSetLibrarian, 00377 toolSetAll 00378 }; 00379 enum TypeOfDebugger { 00380 DbgNativeOnly, 00381 DbgManagedOnly, 00382 DbgMixed, 00383 DbgAuto 00384 }; 00385 enum useOfATL { 00386 useATLNotSet, 00387 useATLStatic, 00388 useATLDynamic 00389 }; 00390 enum useOfMfc { 00391 useMfcStdWin, 00392 useMfcStatic, 00393 useMfcDynamic 00394 }; 00395 enum warningLevelOption { 00396 warningLevelUnknown = -1, 00397 warningLevel_0, 00398 warningLevel_1, 00399 warningLevel_2, 00400 warningLevel_3, 00401 warningLevel_4 00402 }; 00403 00404 class VCToolBase { 00405 protected: 00406 // Functions 00407 VCToolBase(){}; 00408 virtual ~VCToolBase(){} 00409 virtual bool parseOption( const char* option ) = 0; 00410 public: 00411 void parseOptions( QStringList& options ) { 00412 for ( QStringList::ConstIterator it=options.begin(); (it!=options.end()); it++ ) 00413 parseOption( (*it).latin1() ); 00414 } 00415 }; 00416 00417 class VCConfiguration; 00418 class VCProject; 00419 00420 class VCCLCompilerTool : public VCToolBase 00421 { 00422 public: 00423 // Functions 00424 VCCLCompilerTool(); 00425 virtual ~VCCLCompilerTool(){} 00426 bool parseOption( const char* option ); 00427 00428 // Variables 00429 QStringList AdditionalIncludeDirectories; 00430 QStringList AdditionalOptions; 00431 QStringList AdditionalUsingDirectories; 00432 QString AssemblerListingLocation; 00433 asmListingOption AssemblerOutput; 00434 basicRuntimeCheckOption BasicRuntimeChecks; 00435 browseInfoOption BrowseInformation; 00436 QString BrowseInformationFile; 00437 triState BufferSecurityCheck; 00438 callingConventionOption CallingConvention; 00439 CompileAsOptions CompileAs; 00440 compileAsManagedOptions CompileAsManaged; 00441 triState CompileOnly; 00442 debugOption DebugInformationFormat; 00443 triState DefaultCharIsUnsigned; 00444 triState Detect64BitPortabilityProblems; 00445 triState DisableLanguageExtensions; 00446 QStringList DisableSpecificWarnings; 00447 triState EnableFiberSafeOptimizations; 00448 triState EnableFunctionLevelLinking; 00449 triState EnableIntrinsicFunctions; 00450 triState ExceptionHandling; 00451 triState ExpandAttributedSource; 00452 favorSizeOrSpeedOption FavorSizeOrSpeed; 00453 triState ForceConformanceInForLoopScope; 00454 QStringList ForcedIncludeFiles; 00455 QStringList ForcedUsingFiles; 00456 preprocessOption GeneratePreprocessedFile; 00457 triState GlobalOptimizations; 00458 triState IgnoreStandardIncludePath; 00459 triState ImproveFloatingPointConsistency; 00460 inlineExpansionOption InlineFunctionExpansion; 00461 triState KeepComments; 00462 triState MinimalRebuild; 00463 QString ObjectFile; 00464 triState OmitFramePointers; 00465 triState OpenMP; 00466 optimizeOption Optimization; 00467 ProcessorOptimizeOption OptimizeForProcessor; 00468 triState OptimizeForWindowsApplication; 00469 QString OutputFile; 00470 QString PrecompiledHeaderFile; 00471 QString PrecompiledHeaderThrough; 00472 QStringList PreprocessorDefinitions; 00473 QString ProgramDataBaseFileName; 00474 runtimeLibraryOption RuntimeLibrary; 00475 triState RuntimeTypeInfo; 00476 triState ShowIncludes; 00477 triState SmallerTypeCheck; 00478 triState StringPooling; 00479 structMemberAlignOption StructMemberAlignment; 00480 triState SuppressStartupBanner; 00481 triState TreatWChar_tAsBuiltInType; 00482 triState TurnOffAssemblyGeneration; 00483 triState UndefineAllPreprocessorDefinitions; 00484 QStringList UndefinePreprocessorDefinitions; 00485 pchOption UsePrecompiledHeader; 00486 triState WarnAsError; 00487 warningLevelOption WarningLevel; 00488 triState WholeProgramOptimization; 00489 VCConfiguration* config; 00490 }; 00491 00492 class VCLinkerTool : public VCToolBase 00493 { 00494 public: 00495 // Functions 00496 VCLinkerTool(); 00497 virtual ~VCLinkerTool(){} 00498 bool parseOption( const char* option ); 00499 00500 // Variables 00501 QStringList AdditionalDependencies; 00502 QStringList AdditionalLibraryDirectories; 00503 QStringList AdditionalOptions; 00504 QStringList AddModuleNamesToAssembly; 00505 QString BaseAddress; 00506 QStringList DelayLoadDLLs; 00507 optFoldingType EnableCOMDATFolding; 00508 QString EntryPointSymbol; 00509 QStringList ForceSymbolReferences; 00510 QString FunctionOrder; 00511 triState GenerateDebugInformation; 00512 triState GenerateMapFile; 00513 long HeapCommitSize; 00514 long HeapReserveSize; 00515 triState IgnoreAllDefaultLibraries; 00516 QStringList IgnoreDefaultLibraryNames; 00517 triState IgnoreEmbeddedIDL; 00518 triState IgnoreImportLibrary; 00519 QString ImportLibrary; 00520 addressAwarenessType LargeAddressAware; 00521 triState LinkDLL; 00522 linkIncrementalType LinkIncremental; 00523 triState LinkTimeCodeGeneration; 00524 QString LinkToManagedResourceFile; 00525 triState MapExports; 00526 QString MapFileName; 00527 triState MapLines; 00528 QString MergedIDLBaseFileName; 00529 QString MergeSections; // Should be list? 00530 QString MidlCommandFile; 00531 QString ModuleDefinitionFile; // Should be list? 00532 optWin98Type OptimizeForWindows98; 00533 optRefType OptimizeReferences; 00534 QString OutputFile; 00535 QString ProgramDatabaseFile; 00536 triState RegisterOutput; 00537 triState ResourceOnlyDLL; 00538 triState SetChecksum; 00539 linkProgressOption ShowProgress; 00540 long StackCommitSize; 00541 long StackReserveSize; 00542 QString StripPrivateSymbols; // Should be list? 00543 subSystemOption SubSystem; 00544 triState SupportUnloadOfDelayLoadedDLL; 00545 triState SuppressStartupBanner; 00546 triState SwapRunFromCD; 00547 triState SwapRunFromNet; 00548 machineTypeOption TargetMachine; 00549 termSvrAwarenessType TerminalServerAware; 00550 triState TurnOffAssemblyGeneration; 00551 QString TypeLibraryFile; 00552 long TypeLibraryResourceID; 00553 QString Version; 00554 VCConfiguration* config; 00555 }; 00556 00557 class VCMIDLTool : public VCToolBase 00558 { 00559 public: 00560 // Functions 00561 VCMIDLTool(); 00562 virtual ~VCMIDLTool(){} 00563 bool parseOption( const char* option ); 00564 00565 // Variables 00566 QStringList AdditionalIncludeDirectories; 00567 QStringList AdditionalOptions; 00568 QStringList CPreprocessOptions; 00569 midlCharOption DefaultCharType; 00570 QString DLLDataFileName; // Should be list? 00571 midlErrorCheckOption EnableErrorChecks; 00572 triState ErrorCheckAllocations; 00573 triState ErrorCheckBounds; 00574 triState ErrorCheckEnumRange; 00575 triState ErrorCheckRefPointers; 00576 triState ErrorCheckStubData; 00577 QStringList FullIncludePath; 00578 triState GenerateStublessProxies; 00579 triState GenerateTypeLibrary; 00580 QString HeaderFileName; 00581 triState IgnoreStandardIncludePath; 00582 QString InterfaceIdentifierFileName; 00583 triState MkTypLibCompatible; 00584 QString OutputDirectory; 00585 QStringList PreprocessorDefinitions; 00586 QString ProxyFileName; 00587 QString RedirectOutputAndErrors; 00588 midlStructMemberAlignOption StructMemberAlignment; 00589 triState SuppressStartupBanner; 00590 midlTargetEnvironment TargetEnvironment; 00591 QString TypeLibraryName; 00592 QStringList UndefinePreprocessorDefinitions; 00593 triState ValidateParameters; 00594 triState WarnAsError; 00595 midlWarningLevelOption WarningLevel; 00596 VCConfiguration* config; 00597 }; 00598 00599 class VCLibrarianTool : public VCToolBase 00600 { 00601 public: 00602 // Functions 00603 VCLibrarianTool(); 00604 virtual ~VCLibrarianTool(){} 00605 bool parseOption( const char* ){ return FALSE; }; 00606 00607 // Variables 00608 QStringList AdditionalDependencies; 00609 QStringList AdditionalLibraryDirectories; 00610 QStringList AdditionalOptions; 00611 QStringList ExportNamedFunctions; 00612 QStringList ForceSymbolReferences; 00613 triState IgnoreAllDefaultLibraries; 00614 QStringList IgnoreDefaultLibraryNames; 00615 QString ModuleDefinitionFile; 00616 QString OutputFile; 00617 triState SuppressStartupBanner; 00618 }; 00619 00620 class VCCustomBuildTool : public VCToolBase 00621 { 00622 public: 00623 // Functions 00624 VCCustomBuildTool(); 00625 virtual ~VCCustomBuildTool(){} 00626 bool parseOption( const char* ){ return FALSE; }; 00627 00628 // Variables 00629 QStringList AdditionalDependencies; 00630 QStringList CommandLine; 00631 QString Description; 00632 QStringList Outputs; 00633 QString ToolName; 00634 QString ToolPath; 00635 }; 00636 00637 class VCResourceCompilerTool : public VCToolBase 00638 { 00639 public: 00640 // Functions 00641 VCResourceCompilerTool(); 00642 virtual ~VCResourceCompilerTool(){} 00643 bool parseOption( const char* ){ return FALSE; }; 00644 00645 // Variables 00646 QStringList AdditionalIncludeDirectories; 00647 QStringList AdditionalOptions; 00648 enumResourceLangID Culture; 00649 QStringList FullIncludePath; 00650 triState IgnoreStandardIncludePath; 00651 QStringList PreprocessorDefinitions; 00652 QString ResourceOutputFileName; 00653 linkProgressOption ShowProgress; 00654 QString ToolPath; 00655 }; 00656 00657 class VCEventTool : public VCToolBase 00658 { 00659 protected: 00660 // Functions 00661 VCEventTool() : ExcludedFromBuild( unset ){}; 00662 virtual ~VCEventTool(){} 00663 bool parseOption( const char* ){ return FALSE; }; 00664 00665 public: 00666 // Variables 00667 QString CommandLine; 00668 QString Description; 00669 triState ExcludedFromBuild; 00670 QString ToolName; 00671 QString ToolPath; 00672 }; 00673 00674 class VCPostBuildEventTool : public VCEventTool 00675 { 00676 public: 00677 VCPostBuildEventTool(); 00678 ~VCPostBuildEventTool(){} 00679 }; 00680 00681 class VCPreBuildEventTool : public VCEventTool 00682 { 00683 public: 00684 VCPreBuildEventTool(); 00685 ~VCPreBuildEventTool(){} 00686 }; 00687 00688 class VCPreLinkEventTool : public VCEventTool 00689 { 00690 public: 00691 VCPreLinkEventTool(); 00692 ~VCPreLinkEventTool(){} 00693 }; 00694 00695 class VCConfiguration 00696 { 00697 public: 00698 // Functions 00699 VCConfiguration(); 00700 VCConfiguration(const VCConfiguration &other); 00701 ~VCConfiguration() {} 00702 00703 // Variables 00704 triState ATLMinimizesCRunTimeLibraryUsage; 00705 triState BuildBrowserInformation; 00706 charSet CharacterSet; 00707 ConfigurationTypes ConfigurationType; 00708 QString DeleteExtensionsOnClean; 00709 QString ImportLibrary; 00710 QString IntermediateDirectory; 00711 QString Name; 00712 QString OutputDirectory; 00713 QString PrimaryOutput; 00714 QString ProgramDatabase; 00715 triState RegisterOutput; 00716 useOfATL UseOfATL; 00717 useOfMfc UseOfMfc; 00718 triState WholeProgramOptimization; 00719 00720 // XML sub-parts 00721 VCCLCompilerTool compiler; 00722 VCLinkerTool linker; 00723 VCLibrarianTool librarian; 00724 VCCustomBuildTool custom; 00725 VCMIDLTool idl; 00726 VCPostBuildEventTool postBuild; 00727 VCPreBuildEventTool preBuild; 00728 VCPreLinkEventTool preLink; 00729 VCResourceCompilerTool resource; 00730 }; 00731 00732 class VcprojGenerator; 00733 class VCFilter 00734 { 00735 public: 00736 // Functions 00737 VCFilter(); 00738 ~VCFilter(){} 00739 void addMOCstage( QTextStream &strm, QString str ); 00740 void addUICstage( QTextStream &strm, QString str ); 00741 bool addIMGstage( QTextStream &strm, QString str ); 00742 void modifyPCHstage( QTextStream &strm, QString str ); 00743 bool addLexYaccStage( QTextStream &strm, QString str ); 00744 00745 // Variables 00746 QString Name; 00747 QString Filter; 00748 triState ParseFiles; 00749 QStringList Files; 00750 VcprojGenerator* Project; 00751 QValueList<VCConfiguration> *Config; 00752 customBuildCheck CustomBuild; 00753 bool useCustomBuildTool; 00754 VCCustomBuildTool CustomBuildTool; 00755 bool useCompilerTool; 00756 VCCLCompilerTool CompilerTool; 00757 bool flat_files; 00758 }; 00759 00760 class VCProject 00761 { 00762 public: 00763 // Functions 00764 VCProject(); 00765 ~VCProject(){} 00766 00767 // Variables 00768 QString Name; 00769 QString Version; 00770 QString ProjectGUID; 00771 QString SccProjectName; 00772 QString SccLocalPath; 00773 QString PlatformName; 00774 00775 // XML sub-parts 00776 QValueList<VCConfiguration> Configuration; 00777 VCFilter SourceFiles; 00778 VCFilter HeaderFiles; 00779 VCFilter MOCFiles; 00780 VCFilter UICFiles; 00781 VCFilter FormFiles; 00782 VCFilter TranslationFiles; 00783 VCFilter LexYaccFiles; 00784 VCFilter ResourceFiles; 00785 }; 00786 00787 QTextStream &operator<<( QTextStream &, const VCCLCompilerTool & ); 00788 QTextStream &operator<<( QTextStream &, const VCLinkerTool & ); 00789 QTextStream &operator<<( QTextStream &, const VCMIDLTool & ); 00790 QTextStream &operator<<( QTextStream &, const VCCustomBuildTool & ); 00791 QTextStream &operator<<( QTextStream &, const VCLibrarianTool & ); 00792 QTextStream &operator<<( QTextStream &, const VCResourceCompilerTool & ); 00793 QTextStream &operator<<( QTextStream &, const VCEventTool & ); 00794 QTextStream &operator<<( QTextStream &, const VCConfiguration & ); 00795 QTextStream &operator<<( QTextStream &, VCFilter & ); 00796 QTextStream &operator<<( QTextStream &, const VCProject & ); 00797 00798 #endif //__MSVC_OBJECTMODEL_H__