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