Eneboo - Documentación para desarrolladores
src/qt/qmake/generators/win32/msvc_objectmodel.h
Ir a la documentación de este archivo.
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__
 Todo Clases Namespaces Archivos Funciones Variables 'typedefs' Enumeraciones Valores de enumeraciones Propiedades Amigas 'defines'