Eneboo - Documentación para desarrolladores
|
00001 00002 /**************************************************************************** 00003 ** $Id: qt/msvc_vcproj.h 3.3.8 edited Jan 11 14:37 $ 00004 ** 00005 ** Definition of VcprojGenerator class. 00006 ** 00007 ** Copyright (C) 1992-2007 Trolltech ASA. All rights reserved. 00008 ** 00009 ** This file is part of qmake. 00010 ** 00011 ** This file may be distributed under the terms of the Q Public License 00012 ** as defined by Trolltech ASA of Norway and appearing in the file 00013 ** LICENSE.QPL included in the packaging of this file. 00014 ** 00015 ** This file may be distributed and/or modified under the terms of the 00016 ** GNU General Public License version 2 as published by the Free Software 00017 ** Foundation and appearing in the file LICENSE.GPL included in the 00018 ** packaging of this file. 00019 ** 00020 ** Licensees holding valid Qt Enterprise Edition licenses may use this 00021 ** file in accordance with the Qt Commercial License Agreement provided 00022 ** with the Software. 00023 ** 00024 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 00025 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 00026 ** 00027 ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for 00028 ** information about Qt Commercial License Agreements. 00029 ** See http://www.trolltech.com/qpl/ for QPL licensing information. 00030 ** See http://www.trolltech.com/gpl/ for GPL licensing information. 00031 ** 00032 ** Contact info@trolltech.com if any conditions of this licensing are 00033 ** not clear to you. 00034 ** 00035 **********************************************************************/ 00036 00037 #ifndef __MSVC_VCPROJ_H__ 00038 #define __MSVC_VCPROJ_H__ 00039 00040 #include "winmakefile.h" 00041 #include "msvc_objectmodel.h" 00042 00043 enum target { 00044 Application, 00045 SharedLib, 00046 StaticLib 00047 }; 00048 00049 struct QUuid; 00050 class VcprojGenerator : public Win32MakefileGenerator 00051 { 00052 bool init_flag; 00053 bool writeVcprojParts(QTextStream &); 00054 00055 bool writeMakefile(QTextStream &); 00056 virtual void writeSubDirs(QTextStream &t); 00057 QString findTemplate(QString file); 00058 void init(); 00059 00060 public: 00061 VcprojGenerator(QMakeProject *p); 00062 ~VcprojGenerator(); 00063 00064 QString defaultMakefile() const; 00065 virtual bool doDepends() const { return FALSE; } //never necesary 00066 QString precompH, precompHFilename, 00067 precompObj, precompPch; 00068 bool usePCH; 00069 00070 protected: 00071 virtual bool openOutput(QFile &file) const; 00072 virtual void processPrlVariable(const QString &, const QStringList &); 00073 virtual bool findLibraries(); 00074 virtual void outputVariables(); 00075 QString fixFilename(QString ofile) const; 00076 00077 void initOld(); 00078 void initProject(); 00079 void initConfiguration(); 00080 void initCompilerTool(); 00081 void initLinkerTool(); 00082 void initLibrarianTool(); 00083 void initIDLTool(); 00084 void initCustomBuildTool(); 00085 void initPreBuildEventTools(); 00086 void initPostBuildEventTools(); 00087 void initPreLinkEventTools(); 00088 void initSourceFiles(); 00089 void initHeaderFiles(); 00090 void initMOCFiles(); 00091 void initUICFiles(); 00092 void initFormsFiles(); 00093 void initTranslationFiles(); 00094 void initLexYaccFiles(); 00095 void initResourceFiles(); 00096 00097 VCProject vcProject; 00098 target projectTarget; 00099 00100 private: 00101 QUuid getProjectUUID(const QString &filename=QString::null); 00102 QUuid increaseUUID(const QUuid &id); 00103 friend class VCFilter; 00104 }; 00105 00106 inline VcprojGenerator::~VcprojGenerator() 00107 { } 00108 00109 inline QString VcprojGenerator::defaultMakefile() const 00110 { 00111 return project->first("TARGET") + project->first("VCPROJ_EXTENSION"); 00112 } 00113 00114 inline bool VcprojGenerator::findLibraries() 00115 { 00116 return Win32MakefileGenerator::findLibraries("MSVCVCPROJ_LIBS"); 00117 } 00118 00119 #endif /* __MSVC_VCPROJ_H__ */