Commit 7e81d44c authored by Dimitri van Heesch's avatar Dimitri van Heesch

Release-1.5.1

parent 5e24df52
DOXYGEN Version 1.5.0
DOXYGEN Version 1.5.1
Please read the installation section of the manual
(http://www.doxygen.org/install.html) for instructions.
--------
Dimitri van Heesch (17 October 2006)
Dimitri van Heesch (29 October 2006)
......@@ -140,5 +140,9 @@ rpmbinary: dist
gzip -9v $(DISTDIR).src.tar
rpmbuild -tb $(DISTDIR).src.tar.gz
ctags:
ctags -f tags src addon/doxywizard qtools
FORCE:
DOXYGEN Version 1.5.0
DOXYGEN Version 1.5.1
Please read INSTALL for compilation instructions.
......@@ -17,4 +17,4 @@ to subscribe to the lists or to visit the archives.
Enjoy,
Dimitri van Heesch (dimitri@stack.nl) (17 October 2006)
Dimitri van Heesch (dimitri@stack.nl) (29 October 2006)
......@@ -291,7 +291,8 @@ int main(int argc,char **argv)
}
// remove temporary files
unlink("/tmp/doxygen/doxygen_objdb.tmp");
if (!Doxygen::objDBFileName.isEmpty()) unlink(Doxygen::objDBFileName);
if (!Doxygen::entryDBFileName.isEmpty()) unlink(Doxygen::entryDBFileName);
// clean up after us
rmdir("/tmp/doxygen");
......
......@@ -1316,7 +1316,7 @@ void MainWidget::about()
QTextStream t(&msg,IO_WriteOnly);
t << QString("<qt><center>A tool to configure and run doxygen version ")+versionString+
" on your source files.</center><p><br>"
"<center>Written by<br> Dimitri van Heesch<br>&copy; 2000-2005</center><p>"
"<center>Written by<br> Dimitri van Heesch<br>&copy; 2000-2006</center><p>"
"</qt>";
QMessageBox::about(this,"Doxygen GUI",msg);
}
......
......@@ -17,7 +17,7 @@
doxygen_version_major=1
doxygen_version_minor=5
doxygen_version_revision=0
doxygen_version_revision=1
#NOTE: Setting version_mmn to "NO" will omit mmn info from the package.
doxygen_version_mmn=NO
......
......@@ -3061,7 +3061,9 @@ void ClassDef::addMemberToList(MemberList::ListType lt,MemberDef *md)
ml->inSort(md);
else
ml->append(md);
md->setSectionList(this,ml);
// for members in the declaration lists we set the section, needed for member grouping
if ((ml->listType()&MemberList::detailedLists)==0) md->setSectionList(this,ml);
}
void ClassDef::writeMemberDeclarations(OutputList &ol,MemberList::ListType lt,const QCString &title,
......
......@@ -1674,6 +1674,10 @@ void DocCopy::parse()
g_styleStack.clear();
g_nodeStack.clear();
g_copyStack.append(def);
// make sure the descriptions end with a newline, so the parser will correctly
// handle them in all cases.
brief+='\n';
doc+='\n';
internalValidatingParseDoc(this,m_children,brief);
internalValidatingParseDoc(this,m_children,doc);
g_copyStack.remove(def);
......
......@@ -72,7 +72,6 @@
#include "store.h"
#include "marshal.h"
#define RECURSE_ENTRYTREE(func,var) \
do { if (var->children()) { \
EntryNavListIterator eli(*var->children()); \
......@@ -85,6 +84,11 @@
#define pclose _pclose
#endif
#if !defined(_WIN32) || defined(__CYGWIN__)
#include <signal.h>
#define HAS_SIGNALS
#endif
// globally accessible variables
ClassSDict *Doxygen::classSDict = 0;
ClassSDict *Doxygen::hiddenClasses = 0;
......@@ -129,6 +133,8 @@ QCString Doxygen::htmlFileExtension;
bool Doxygen::suppressDocWarnings = FALSE;
ObjCache *Doxygen::symbolCache = 0;
Store *Doxygen::symbolStorage;
QCString Doxygen::objDBFileName;
QCString Doxygen::entryDBFileName;
// locally accessible globals
static QDict<EntryNav> classEntries(1009);
......@@ -144,6 +150,7 @@ FileStorage *g_storage = 0;
QCString spaces;
void clearAll()
{
inputFiles.clear();
......@@ -6299,39 +6306,41 @@ static void addEnumValuesToEnums(EntryNav *rootNav)
if (cd && !name.isEmpty()) // found a enum inside a compound
{
//printf("Enum `%s'::`%s'\n",cd->name(),name.data());
//printf("Enum in class `%s'::`%s'\n",cd->name().data(),name.data());
fd=0;
mnsd=Doxygen::memberNameSDict;
isGlobal=FALSE;
}
else if (nd && !nd->name().isEmpty() && nd->name().at(0)!='@') // found enum inside namespace
{
//printf("Enum in namespace `%s'::`%s'\n",nd->name().data(),name.data());
mnsd=Doxygen::functionNameSDict;
isGlobal=TRUE;
}
else // found a global enum
{
fd=rootNav->fileDef();
//printf("Enum in file `%s': `%s'\n",fd->name().data(),name.data());
mnsd=Doxygen::functionNameSDict;
isGlobal=TRUE;
}
if (!name.isEmpty())
{
MemberName *mn = mnsd->find(name);
MemberName *mn = mnsd->find(name); // for all members with this name
if (mn)
{
MemberNameIterator mni(*mn);
MemberDef *md;
for (mni.toFirst(); (md=mni.current()) ; ++mni)
for (mni.toFirst(); (md=mni.current()) ; ++mni) // for each enum in this list
{
if (md->isEnumerate() && rootNav->children())
{
EntryNavListIterator eli(*rootNav->children());
EntryNavListIterator eli(*rootNav->children()); // for each enum value
EntryNav *e;
for (;(e=eli.current());++eli)
{
//printf("e->name=%s isRelated=%d\n",e->name.data(),isRelated);
//printf("e->name=%s isRelated=%d\n",e->name().data(),isRelated);
MemberName *fmn=0;
MemberNameSDict *emnsd = isRelated ? Doxygen::functionNameSDict : mnsd;
if (!e->name().isEmpty() && (fmn=(*emnsd)[e->name()]))
......@@ -6341,9 +6350,10 @@ static void addEnumValuesToEnums(EntryNav *rootNav)
MemberDef *fmd;
for (fmni.toFirst(); (fmd=fmni.current()) ; ++fmni)
{
if (fmd->isEnumValue())
if (fmd->isEnumValue() && fmd->getOuterScope()==md->getOuterScope()) // in same scope
{
//printf("found enum value with same name\n");
//printf("found enum value with same name %s in scope %s\n",
// fmd->name().data(),fmd->getOuterScope()->name().data());
if (nd && !nd->name().isEmpty() && nd->name().at(0)!='@')
{
NamespaceDef *fnd=fmd->getNamespaceDef();
......@@ -8208,7 +8218,7 @@ static int readDir(QFileInfo *fi,
{
if (errorIfNotExist)
{
err("Error: source %s is not a readable file or directory... skipping.\n",cfi->absFilePath().data());
err("Warning: source %s is not a readable file or directory... skipping.\n",cfi->absFilePath().data());
}
}
else if (cfi->isFile() &&
......@@ -8297,7 +8307,7 @@ static int readFileOrDirectory(const char *s,
{
if (errorIfNotExist)
{
err("Error: source %s is not a readable file or directory... skipping.\n",s);
err("Warning: source %s is not a readable file or directory... skipping.\n",s);
}
}
else if (!Config_getBool("EXCLUDE_SYMLINKS") || !fi.isSymLink())
......@@ -8366,7 +8376,7 @@ static void readFormulaRepository()
int se=line.find(':'); // find name and text separator.
if (se==-1)
{
err("Error: formula.repository is corrupted!\n");
err("Warning: formula.repository is corrupted!\n");
break;
}
else
......@@ -8746,7 +8756,7 @@ void readConfiguration(int argc, char **argv)
QCString outputLanguage=Config_getEnum("OUTPUT_LANGUAGE");
if (!setTranslator(outputLanguage))
{
err("Error: Output language %s not supported! Using English instead.\n", outputLanguage.data());
err("Warning: Output language %s not supported! Using English instead.\n", outputLanguage.data());
}
QFile f;
......@@ -8794,7 +8804,7 @@ void readConfiguration(int argc, char **argv)
QCString outputLanguage=Config_getEnum("OUTPUT_LANGUAGE");
if (!setTranslator(outputLanguage))
{
err("Error: Output language %s not supported! Using English instead.\n", outputLanguage.data());
err("Warning: Output language %s not supported! Using English instead.\n", outputLanguage.data());
}
QFile f;
......@@ -8920,7 +8930,7 @@ void checkConfiguration()
QCString outputLanguage=Config_getEnum("OUTPUT_LANGUAGE");
if (!setTranslator(outputLanguage))
{
err("Error: Output language %s not supported! Using English instead.\n",
err("Warning: Output language %s not supported! Using English instead.\n",
outputLanguage.data());
}
QStrList &includePath = Config_getList("INCLUDE_PATH");
......@@ -8944,6 +8954,24 @@ void checkConfiguration()
}
#ifdef HAS_SIGNALS
static void stopDoxygen(int)
{
QDir thisDir;
msg("Cleaning up...\n");
if (!Doxygen::entryDBFileName.isEmpty())
{
thisDir.remove(Doxygen::entryDBFileName);
}
if (!Doxygen::objDBFileName.isEmpty())
{
thisDir.remove(Doxygen::objDBFileName);
}
exit(1);
}
#endif
void parseInput()
{
/**************************************************************************
......@@ -8986,9 +9014,19 @@ void parseInput()
// ~2.0 MByte "overhead"
Doxygen::symbolStorage = new Store;
if (Doxygen::symbolStorage->open(outputDirectory+"/doxygen_objdb.tmp")==-1)
#ifdef HAS_SIGNALS
signal(SIGINT, stopDoxygen);
#endif
uint pid = iPid();
Doxygen::objDBFileName.sprintf("doxygen_objdb_%d.tmp",pid);
Doxygen::objDBFileName.prepend(outputDirectory+"/");
Doxygen::entryDBFileName.sprintf("doxygen_entrydb_%d.tmp",pid);
Doxygen::entryDBFileName.prepend(outputDirectory+"/");
if (Doxygen::symbolStorage->open(Doxygen::objDBFileName)==-1)
{
err("Failed to open temporary file %s\n",(outputDirectory+"/doxygen_objdb.tmp").data());
err("Failed to open temporary file %s\n",Doxygen::objDBFileName.data());
exit(1);
}
......@@ -9265,11 +9303,11 @@ void parseInput()
**************************************************************************/
g_storage = new FileStorage;
g_storage->setName(outputDirectory+"/doxygen_entrydb.tmp");
g_storage->setName(Doxygen::entryDBFileName);
if (!g_storage->open(IO_WriteOnly))
{
err("Failed to create temporary storage file %s/doxygen_entrydb.tmp\n",
outputDirectory.data());
err("Failed to create temporary storage file %s\n",
Doxygen::entryDBFileName.data());
exit(1);
}
Entry *root=new Entry;
......@@ -9294,8 +9332,8 @@ void parseInput()
g_storage->close();
if (!g_storage->open(IO_ReadOnly))
{
err("Failed to open temporary storage file %s/doxygen_entrydb.tmp for reading",
outputDirectory.data());
err("Failed to open temporary storage file %s for reading",
Doxygen::entryDBFileName.data());
exit(1);
}
......@@ -9430,7 +9468,7 @@ void parseInput()
g_storage=0;
QDir thisDir;
thisDir.remove(outputDirectory+"/doxygen_entrydb.tmp");
thisDir.remove(Doxygen::entryDBFileName);
msg("Determining which enums are documented\n");
findDocumentedEnumValues();
......@@ -9776,7 +9814,7 @@ void generateOutput()
finializeDocParser();
Doxygen::symbolStorage->close();
QDir thisDir;
thisDir.remove(Config_getString("OUTPUT_DIRECTORY")+"/doxygen_objdb.tmp");
thisDir.remove(Doxygen::objDBFileName);
Config::deleteInstance();
QTextCodec::deleteAllCodecs();
delete Doxygen::symbolCache;
......
......@@ -121,6 +121,8 @@ class Doxygen
static bool suppressDocWarnings;
static ObjCache *symbolCache;
static Store *symbolStorage;
static QCString objDBFileName;
static QCString entryDBFileName;
};
void initDoxygen();
......
......@@ -21,6 +21,7 @@
#include "marshal.h"
#include "util.h"
#include "section.h"
#include "doxygen.h"
int Entry::num=0;
......@@ -394,7 +395,8 @@ static bool loadEntry(Entry *e,FileStorage *f)
uint header=unmarshalUInt(f);
if (header!=HEADER)
{
printf("Internal error: Invalid header for entry in storage file: %x. Disk full?\n",header);
printf("Internal error: Invalid header %x for entry in storage file %s\n",
header,Doxygen::entryDBFileName.data());
exit(1);
}
e->protection = (Protection)unmarshalInt(f);
......
......@@ -840,6 +840,13 @@ void FileDef::addUsingDirective(NamespaceDef *nd)
{
usingDirList->append(nd->qualifiedName(),nd);
}
//printf("%p: FileDef::addUsingDirective: %s:%d\n",this,name().data(),usingDirList->count());
}
NamespaceSDict *FileDef::getUsedNamespaces() const
{
//printf("%p: FileDef::getUsedNamespace: %s:%d\n",this,name().data(),usingDirList?usingDirList->count():0);
return usingDirList;
}
void FileDef::addUsingDeclaration(Definition *d)
......@@ -917,6 +924,8 @@ void FileDef::addIncludedUsingDirectives()
if (usingDirList==0) usingDirList = new NamespaceSDict;
//printf("Prepending used namespace %s to the list of file %s\n",
// nd->name().data(),name().data());
if (usingDirList->find(nd->qualifiedName())==0) // not yet added
{
usingDirList->prepend(nd->qualifiedName(),nd);
}
}
......@@ -924,6 +933,7 @@ void FileDef::addIncludedUsingDirectives()
}
}
}
}
//printf(") end FileDef::addIncludedUsingDirectives for file %s\n",name().data());
}
......
......@@ -150,7 +150,7 @@ class FileDef : public Definition
DirDef *getDirDef() const { return dir; }
void addUsingDirective(NamespaceDef *nd);
NamespaceSDict *getUsedNamespaces() const { return usingDirList; }
NamespaceSDict *getUsedNamespaces() const;
void addUsingDeclaration(Definition *def);
SDict<Definition> *getUsedClasses() const { return usingDeclList; }
void combineUsingRelations();
......
......@@ -1021,8 +1021,9 @@ void LatexDocVisitor::filter(const char *str)
void LatexDocVisitor::startLink(const QString &ref,const QString &file,const QString &anchor)
{
if (ref.isEmpty() && Config_getBool("PDF_HYPERLINKS"))
if (ref.isEmpty() && Config_getBool("PDF_HYPERLINKS")) // internal PDF link
{
if (ref.isEmpty()) {
m_t << "\\hyperlink{";
if (!file.isEmpty()) m_t << stripPath(file);
if (!file.isEmpty() && !anchor.isEmpty()) m_t << "_";
......@@ -1030,9 +1031,23 @@ void LatexDocVisitor::startLink(const QString &ref,const QString &file,const QSt
m_t << "}{";
}
else
{
QCString *dest;
m_t << "\\href{";
if ((dest=Doxygen::tagDestinationDict[ref])) m_t << *dest << "/";
if (!file.isEmpty()) m_t << file << Doxygen::htmlFileExtension;
if (!anchor.isEmpty()) m_t << "#" << anchor;
m_t << "}{";
}
}
else if (ref.isEmpty()) // internal non-PDF link
{
m_t << "\\doxyref{";
}
else // external link
{
m_t << "{\\bf ";
}
}
void LatexDocVisitor::endLink(const QString &ref,const QString &file,const QString &anchor)
......
......@@ -1002,7 +1002,7 @@ void LatexGenerator::writeObjectLink(const char *ref, const char *f,
}
else
{
t << "{\\bf";
t << "{\\bf ";
docify(text);
t << "}";
}
......
......@@ -37,15 +37,17 @@ class LockableObj
/*! Returns TRUE if the object is currently locked. */
bool isLocked() const { return m_lockCount>0; }
protected:
//VC++6.0 workaround
// protected:
/*! Called when the object is locked. */
virtual void lock() const = 0;
/*! Called when the object is unlocked. */
virtual void unlock() const = 0;
private:
template<class T> friend class LockingPtr;
//VC++6.0 workaround
// private:
// template<class T> friend class LockingPtr;
int m_lockCount;
};
......
......@@ -818,7 +818,6 @@ QCString MemberDef::getOutputFileBase() const
"Warning: Internal inconsistency: member %s does not belong to any"
" container!",name().data()
);
exit(1);
return "dummy";
}
else if (separateMemberPages)
......@@ -2634,6 +2633,7 @@ MemberList *MemberDef::getSectionList(Definition *d) const
void MemberDef::setSectionList(Definition *d, MemberList *sl)
{
makeResident();
//printf("MemberDef::setSectionList(%p,%p) name=%s\n",d,sl,name().data());
char key[20];
sprintf(key,"%p",d);
if (m_impl->classSectionSDict==0)
......
......@@ -79,6 +79,7 @@ void MemberGroup::insertMember(MemberDef *md)
else if (inDeclSection==0)
{
inDeclSection = md->getSectionList(m_parent);
//printf("inDeclSection=%p type=%d\n",inDeclSection,inDeclSection->listType());
}
memberList->append(md);
......@@ -133,7 +134,7 @@ void MemberGroup::addToDeclarationSection()
{
if (inDeclSection)
{
//printf("Adding group %p to list %p\n",this,inDeclSection);
//printf("Adding group %p to list %p (type=%d)\n",this,inDeclSection,inDeclSection->listType());
inDeclSection->addMemberGroup(this);
}
}
......
......@@ -313,7 +313,7 @@ void MemberList::writeDeclarations(OutputList &ol,
const char *title,const char *subtitle, bool showEnumValues
/*, bool inGroup,bool countSubGroups*/)
{
//printf("----- writeDeclaration() ----\n");
//printf("----- writeDeclaration() this=%p ----\n",this);
countDecMembers(showEnumValues); // count member not in group
if (numDecMembers()==0) return;
//printf("%p: MemberList::writeDeclaration(title=`%s',subtitle=`%s')=%d\n",
......@@ -341,6 +341,7 @@ void MemberList::writeDeclarations(OutputList &ol,
MemberGroup *mg;
while ((mg=mgli.current()))
{
//printf("mg->header=%s\n",mg->header().data());
bool hasHeader=mg->header()!="[NOHEADER]";
ol.startMemberGroupHeader(hasHeader);
if (hasHeader)
......@@ -450,6 +451,7 @@ void MemberList::addMemberGroup(MemberGroup *mg)
{
memberGroupList=new MemberGroupList;
}
//printf("addMemberGroup: this=%p mg=%p\n",this,mg);
memberGroupList->append(mg);
}
......
......@@ -483,6 +483,13 @@ void NamespaceDef::addUsingDirective(NamespaceDef *nd)
{
usingDirList->append(nd->qualifiedName(),nd);
}
//printf("%p: NamespaceDef::addUsingDirective: %s:%d\n",this,name().data(),usingDirList->count());
}
NamespaceSDict *NamespaceDef::getUsedNamespaces() const
{
//printf("%p: NamespaceDef::getUsedNamespace: %s:%d\n",this,name().data(),usingDirList?usingDirList->count():0);
return usingDirList;
}
void NamespaceDef::addUsingDeclaration(Definition *d)
......
......@@ -58,7 +58,7 @@ class NamespaceDef : public Definition
void computeAnchors();
int countMembers();
void addUsingDirective(NamespaceDef *nd);
NamespaceSDict *getUsedNamespaces() const { return usingDirList; }
NamespaceSDict *getUsedNamespaces() const;
void addUsingDeclaration(Definition *def);
SDict<Definition> *getUsedClasses() const { return usingDeclList; }
void combineUsingRelations();
......
......@@ -1222,6 +1222,7 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
%x CopyString
%x Include
%x IncludeID
%x EndImport
%x DefName
%x DefineArg
%x DefineText
......@@ -1700,8 +1701,23 @@ CHARLIT (("'"\\[0-7]{1,3}"'")|("'"\\."'")|("'"[^'\\\n]{1,4}"'"))
<Include>[^\">\n]+[\">] {
g_incName+=yytext;
readIncludeFile(g_incName);
if (g_isImported)
{
BEGIN(EndImport);
}
else
{
BEGIN(Start);
}
}
<EndImport>[^\\]*/\n {
BEGIN(Start);
}
<EndImport>\\[\r]?"\n" {
outputChar('\n');
}
<EndImport>. {
}
<DefName>{ID}/"(" {
//printf("Define() `%s'\n",yytext);
g_argDict = new QDict<int>(31);
......
......@@ -755,6 +755,8 @@ static void findMemberLink(CodeOutputInterface &ol,char *symName)
if (g_currentDefinition)
{
DefinitionIntf *di = Doxygen::symbolMap->find(symName);
if (di)
{
if (di->definitionType()==DefinitionIntf::TypeSymbolList) // multiple symbols
{
DefinitionListIterator dli(*(DefinitionList*)di);
......@@ -769,6 +771,7 @@ static void findMemberLink(CodeOutputInterface &ol,char *symName)
findMemberLink(ol,(Definition*)di,symName);
}
}
}
//printf("sym %s not found\n",&yytext[5]);
codify(symName);
}
......
......@@ -797,11 +797,13 @@ STARTDOCSYMS ^{B}"##"/[^#]
}
{TRIDOUBLEQUOTE} { // start of a comment block
current->program+=yytext;
initTriDoubleQuoteBlock();
BEGIN(TripleComment);
}
{TRISINGLEQUOTE} { // start of a comment block
current->program+=yytext;
initTriSingleQuoteBlock();
BEGIN(TripleComment);
}
......
......@@ -254,6 +254,17 @@ int iSystem(const char *command,const char *args,bool commandHasConsole)
}
uint iPid()
{
uint pid;
#if !defined(_WIN32) || defined(__CYGWIN__)
pid = (uint)getpid();
#else
pid = (uint)GetCurrentProcessId();
#endif
return pid;
}
......@@ -886,9 +897,11 @@ bool accessibleViaUsingNamespace(const NamespaceSDict *nl,
{
NamespaceSDict::Iterator nli(*nl);
NamespaceDef *und;
for (nli.toFirst();(und=nli.current());++nli)
int count=0;
for (nli.toFirst();(und=nli.current());++nli,count++)
{
//printf("[Trying via used namespace %s\n",und->name().data());
//printf("[Trying via used namespace %s: count=%d/%d\n",und->name().data(),
// count,nl->count());
Definition *sc = explicitScopePart.isEmpty() ? und : followPath(und,fileScope,explicitScopePart);
if (sc && item->getOuterScope()==sc)
{
......
......@@ -235,6 +235,8 @@ QCString stripScope(const char *name);
int iSystem(const char *command,const char *args,bool commandHasConsole=TRUE);
uint iPid();
QCString convertToHtml(const char *s);
QCString convertToXML(const char *s);
......
......@@ -76,6 +76,7 @@
LinkIncremental="2"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="Debug"
GenerateManifest="false"
GenerateDebugInformation="true"
ProgramDatabaseFile=".\Debug/Doxygen.pdb"
SubSystem="1"
......
......@@ -74,6 +74,7 @@
LinkIncremental="2"
SuppressStartupBanner="true"
AdditionalLibraryDirectories="Debug"
GenerateManifest="false"
GenerateDebugInformation="true"
ProgramDatabaseFile=".\Debug/Doxytag.pdb"
SubSystem="1"
......
......@@ -46,11 +46,12 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
AdditionalIncludeDirectories="$(QTDIR)\include;..\src"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="2"
RuntimeLibrary="1"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
......@@ -66,8 +67,11 @@
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="$(QTDIR)\lib\qt-mt336.lib $(QTDIR)\lib\qtmain.lib"
OutputFile="..\bin\Debug\doxywizard.exe"
LinkIncremental="2"
GenerateManifest="false"
IgnoreDefaultLibraryNames="msvcrt.lib"
GenerateDebugInformation="true"
SubSystem="2"
TargetMachine="1"
......@@ -127,7 +131,7 @@
Name="VCCLCompilerTool"
AdditionalIncludeDirectories="$(QTDIR)\include;..\src"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE"
RuntimeLibrary="2"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
......@@ -148,6 +152,9 @@
AdditionalDependencies="$(QTDIR)\lib\qt-mt336.lib $(QTDIR)\lib\qtmain.lib"
OutputFile="..\bin\doxywizard.exe"
LinkIncremental="1"
GenerateManifest="false"
IgnoreAllDefaultLibraries="false"
IgnoreDefaultLibraryNames="msvcrt.lib"
GenerateDebugInformation="false"
SubSystem="2"
OptimizeReferences="2"
......@@ -292,6 +299,14 @@
>
</File>
</Filter>
<Filter
Name="Resources"
>
<File
RelativePath="..\addon\doxywizard\doxywizard.res"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment