diff options
Diffstat (limited to 'tqtinterface/qt4/qmake/generators/win32/msvc_dsp.cpp')
-rw-r--r-- | tqtinterface/qt4/qmake/generators/win32/msvc_dsp.cpp | 1145 |
1 files changed, 0 insertions, 1145 deletions
diff --git a/tqtinterface/qt4/qmake/generators/win32/msvc_dsp.cpp b/tqtinterface/qt4/qmake/generators/win32/msvc_dsp.cpp deleted file mode 100644 index 52fa2af..0000000 --- a/tqtinterface/qt4/qmake/generators/win32/msvc_dsp.cpp +++ /dev/null @@ -1,1145 +0,0 @@ -/**************************************************************************** -** -** Implementation of DspMakefileGenerator class. -** -** Copyright (C) 2010 Timothy Pearson and (C) 1992-2008 Trolltech ASA. -** -** This file is part of qmake. -** -** This file may be used under the terms of the GNU General -** Public License versions 2.0 or 3.0 as published by the Free -** Software Foundation and appearing in the files LICENSE.GPL2 -** and LICENSE.GPL3 included in the packaging of this file. -** Alternatively you may (at your option) use any later version -** of the GNU General Public License if such license has been -** publicly approved by Trolltech ASA (or its successors, if any) -** and the KDE Free TQt Foundation. -** -** Please review the following information to ensure GNU General -** Public Licensing requirements will be met: -** http://trolltech.com/products/qt/licenses/licensing/opensource/. -** If you are unsure which license is appropriate for your use, please -** review the following information: -** http://trolltech.com/products/qt/licenses/licensing/licensingoverview -** or contact the sales department at [email protected]. -** -** This file may be used under the terms of the Q Public License as -** defined by Trolltech ASA and appearing in the file LICENSE.TQPL -** included in the packaging of this file. Licensees holding valid TQt -** Commercial licenses may use this file in accordance with the TQt -** Commercial License Agreement provided with the Software. -** -** This file is provided "AS IS" with NO WARRANTY OF ANY KIND, -** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE. Trolltech reserves all rights not granted -** herein. -** -**********************************************************************/ - -#include "msvc_dsp.h" -#include "option.h" -#include <tqdir.h> -#include <tqregexp.h> -#include <stdlib.h> -#include <time.h> - -DspMakefileGenerator::DspMakefileGenerator(TQMakeProject *p) : Win32MakefileGenerator(p), init_flag(FALSE) -{ - -} - -bool -DspMakefileGenerator::writeMakefile(TQTextStream &t) -{ - if(!project->variables()["TQMAKE_FAILED_RETQUIREMENTS"].isEmpty()) { - /* for now just dump, I need to generated an empty dsp or something.. */ - fprintf(stderr, "Project file not generated because all requirements not met:\n\t%s\n", - var("TQMAKE_FAILED_RETQUIREMENTS").latin1()); - return TRUE; - } - - if(project->first("TEMPLATE") == "vcapp" || - project->first("TEMPLATE") == "vclib") { - return writeDspParts(t); - } - else if(project->first("TEMPLATE") == "subdirs") { - writeHeader(t); - writeSubDirs(t); - return TRUE; - } - return FALSE; -} - -bool -DspMakefileGenerator::writeDspParts(TQTextStream &t) -{ - TQString dspfile; - if ( !project->variables()["DSP_TEMPLATE"].isEmpty() ) { - dspfile = project->first("DSP_TEMPLATE"); - } else { - dspfile = project->first("MSVCDSP_TEMPLATE"); - } - if (dspfile.startsWith("\"") && dspfile.endsWith("\"")) - dspfile = dspfile.mid(1, dspfile.length() - 2); - TQString dspfile_loc = findTemplate(dspfile); - - TQFile file(dspfile_loc); - if(!file.open(IO_ReadOnly)) { - fprintf(stderr, "Cannot open dsp file: %s\n", dspfile.latin1()); - return FALSE; - } - TQTextStream dsp( TQT_TQIODEVICE(&file) ); - - TQString platform = "Win32"; - if ( !project->variables()["TQMAKE_PLATFORM"].isEmpty() ) - platform = varGlue("TQMAKE_PLATFORM", "", " ", ""); - - // Setup PCH variables - precompH = project->first("PRECOMPILED_HEADER"); - TQString namePCH = TQFileInfo(precompH).fileName(); - usePCH = !precompH.isEmpty() && project->isActiveConfig("precompile_header"); - if (usePCH) { - // Created files - TQString origTarget = project->first("TQMAKE_ORIG_TARGET"); - origTarget.replace(TQRegExp("-"), "_"); - precompObj = "\"$(IntDir)\\" + origTarget + Option::obj_ext + "\""; - precompPch = "\"$(IntDir)\\" + origTarget + ".pch\""; - // Add PRECOMPILED_HEADER to HEADERS - if (!project->variables()["HEADERS"].contains(precompH)) - project->variables()["HEADERS"] += precompH; - // Add precompile compiler options - project->variables()["PRECOMPILED_FLAGS_REL"] = TQString("/Yu\"" + namePCH + "\" /FI\"" + namePCH + "\" "); - project->variables()["PRECOMPILED_FLAGS_DEB"] = TQString("/Yu\"" + namePCH + "\" /FI\"" + namePCH + "\" "); - // Return to variable pool - project->variables()["PRECOMPILED_OBJECT"] = precompObj; - project->variables()["PRECOMPILED_PCH"] = precompPch; - } - int rep; - TQString line; - while ( !dsp.eof() ) { - line = dsp.readLine(); - while((rep = line.find(TQRegExp("\\$\\$[a-zA-Z0-9_-]*"))) != -1) { - TQString torep = line.mid(rep, line.find(TQRegExp("[^\\$a-zA-Z0-9_-]"), rep) - rep); - TQString variable = torep.right(torep.length()-2); - - t << line.left(rep); //output the left side - line = line.right(line.length() - (rep + torep.length())); //now past the variable - if(variable == "MSVCDSP_SOURCES") { - if(project->variables()["SOURCES"].isEmpty()) - continue; - - TQString tqmocpath = var( "TQMAKE_TQMOC" ); - tqmocpath = tqmocpath.replace( TQRegExp( "\\..*$" ), "" ) + " "; - - TQStringList list = project->variables()["SOURCES"] + project->variables()["DEF_FILE"]; - if(!project->isActiveConfig("flat")) - list.sort(); - TQStringList::Iterator it; - for( it = list.begin(); it != list.end(); ++it) { - beginGroupForFile((*it), t); - t << "# Begin Source File\n\nSOURCE=" << (*it) << endl; - if (usePCH && (*it).endsWith(".c")) - t << "# SUBTRACT CPP /FI\"" << namePCH << "\" /Yu\"" << namePCH << "\" /Fp" << endl; - if ( project->isActiveConfig("tqmoc") && (*it).endsWith(Option::cpp_tqmoc_ext)) { - TQString base = (*it); - TQT_TQSTRING(base.replace(TQRegExp("\\..*$"), "")).upper(); - base.replace(TQRegExp("[^a-zA-Z]"), "_"); - - TQString build = "\n\n# Begin Custom Build - Moc'ing " + findMocSource((*it)) + - "...\n" "InputPath=.\\" + (*it) + "\n\n" "\"" + (*it) + "\"" - " : $(SOURCE) \"$(INTDIR)\" \"$(OUTDIR)\"\n" - "\t" + tqmocpath + findMocSource((*it)) + " -o " + - (*it) + "\n\n" "# End Custom Build\n\n"; - - t << "USERDEP_" << base << "=\".\\" << findMocSource((*it)) << "\" \"$(TQTDIR)\\bin\\tqmoc.exe\"" << endl << endl; - - t << "!IF \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - " << platform << " Release\"" << build - << "!ELSEIF \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - " << platform << " Debug\"" - << build << "!ENDIF " << endl << endl; - } - t << "# End Source File" << endl; - } - endGroups(t); - } else if(variable == "MSVCDSP_IMAGES") { - if(project->variables()["IMAGES"].isEmpty()) - continue; - t << "# Begin Source File\n\nSOURCE=" << project->first("TQMAKE_IMAGE_COLLECTION") << endl; - t << "# End Source File" << endl; - } else if(variable == "MSVCDSP_HEADERS") { - if(project->variables()["HEADERS"].isEmpty()) - continue; - - TQStringList list = project->variables()["HEADERS"]; - if(!project->isActiveConfig("flat")) - list.sort(); - for(TQStringList::Iterator it = list.begin(); it != list.end(); ++it) { -// beginGroupForFile((*it), t); - t << "# Begin Source File\n\nSOURCE=" << (*it) << endl << endl; - TQString compilePCH; - TQStringList customDependencies; - TQString createTQMOC; - TQString buildCmdsR, buildCmdsD; - TQString buildCmds = "\nBuildCmds= \\\n"; - // Create unique baseID - TQString base = (*it); - { - TQT_TQSTRING(base.replace(TQRegExp("\\..*$"), "")).upper(); - base.replace(TQRegExp("[^a-zA-Z]"), "_"); - } - if (usePCH && precompH.endsWith(*it)) { - TQString basicBuildCmd = TQString("\tcl.exe /TP /W3 /FD /c /D \"WIN32\" /Yc /Fp\"%1\" /Fo\"%2\" %3 %4 %5 %6 %7 %8 %9 /D \"") - .arg(precompPch) - .arg(precompObj) - .arg(var("MSVCDSP_INCPATH")) - .arg(var("MSVCDSP_DEFINES")) - .arg(var("MSVCDSP_CXXFLAGS")); - buildCmdsR = basicBuildCmd - .arg("/D \"NDEBUG\"") - .arg(var("TQMAKE_CXXFLAGS_RELEASE")) - .arg(var("MSVCDSP_MTDEF")) - .arg(var("MSVCDSP_RELDEFS")); - buildCmdsD = basicBuildCmd - .arg("/D \"_DEBUG\" /Od") - .arg(var("TQMAKE_CXXFLAGS_DEBUG")) - .arg(var("MSVCDSP_MTDEFD")) - .arg(var("MSVCDSP_DEBUG_OPT")); - if (project->first("TEMPLATE") == "vcapp") { // App - buildCmdsR += var("MSVCDSP_WINCONDEF"); - buildCmdsD += var("MSVCDSP_WINCONDEF"); - } else if (project->isActiveConfig("dll")) { // Dll - buildCmdsR += "_WINDOWS\" /D \"_USRDLL"; - buildCmdsD += "_WINDOWS\" /D \"_USRDLL"; - } else { // Lib - buildCmdsR += "_LIB"; - buildCmdsD += "_LIB"; - } - buildCmdsR += "\" /Fd\"$(IntDir)\\\\\" " + (*it) + " \\\n"; - buildCmdsD += "\" /Fd\"$(IntDir)\\\\\" " + (*it) + " \\\n"; - - compilePCH = precompPch + " : $(SOURCE) \"$(INTDIR)\" \"$(OUTDIR)\"\n $(BuildCmds)\n\n"; - - TQStringList &tmp = findDependencies(precompH); - if(!tmp.isEmpty()) // Got Deps for PCH - customDependencies += tmp; - } - if (project->isActiveConfig("tqmoc") && !findMocDestination((*it)).isEmpty()) { - TQString tqmocpath = var( "TQMAKE_TQMOC" ); - tqmocpath = tqmocpath.replace( TQRegExp( "\\..*$" ), "" ) + " "; - buildCmds += "\t" + tqmocpath + (*it) + " -o " + findMocDestination((*it)) + " \\\n"; - createTQMOC = "\"" + findMocDestination((*it)) + "\" : $(SOURCE) \"$(INTDIR)\" \"$(OUTDIR)\"\n $(BuildCmds)\n\n"; - customDependencies += "\"$(TQTDIR)\\bin\\tqmoc.exe\""; - } - if (!createTQMOC.isEmpty() || !compilePCH.isEmpty()) { - bool doTQMOC = !createTQMOC.isEmpty(); - bool doPCH = !compilePCH.isEmpty(); - TQString build = "\n\n# Begin Custom Build - "+ - TQString(doTQMOC?"Moc'ing ":"") + - TQString((doTQMOC&&doPCH)?" and ":"") + - TQString(doPCH?"Creating PCH cpp from ":"") + - (*it) + "...\nInputPath=.\\" + (*it) + "\n\n" + - buildCmds + "%1\n" + - createTQMOC + - compilePCH + - "# End Custom Build\n\n"; - - t << "USERDEP_" << base << "=" << valGlue(customDependencies, "\"", "\" \"", "\"") << endl << endl; - t << "!IF \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - " << platform << " Release\"" << build.arg(buildCmdsR) - << "!ELSEIF \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - " << platform << " Debug\"" << build.arg(buildCmdsD) - << "!ENDIF " << endl << endl; - } - t << "# End Source File" << endl; - } -// endGroups(t); - } else if(variable == "MSVCDSP_FORMSOURCES" || variable == "MSVCDSP_FORMHEADERS") { - if(project->variables()["FORMS"].isEmpty()) - continue; - - TQString uiSourcesDir; - TQString uiHeadersDir; - if(!project->variables()["UI_DIR"].isEmpty()) { - uiSourcesDir = project->first("UI_DIR"); - uiHeadersDir = project->first("UI_DIR"); - } else { - if ( !project->variables()["UI_SOURCES_DIR"].isEmpty() ) - uiSourcesDir = project->first("UI_SOURCES_DIR"); - else - uiSourcesDir = ""; - if ( !project->variables()["UI_HEADERS_DIR"].isEmpty() ) - uiHeadersDir = project->first("UI_HEADERS_DIR"); - else - uiHeadersDir = ""; - } - - TQStringList list = project->variables()["FORMS"]; - if(!project->isActiveConfig("flat")) - list.sort(); - TQString ext = variable == "MSVCDSP_FORMSOURCES" ? ".cpp" : ".h"; - for(TQStringList::Iterator it = list.begin(); it != list.end(); ++it) { - TQString base = (*it); - int dot = base.findRev("."); - base.replace( dot, base.length() - dot, ext ); - TQString fname = base; - - int lbs = fname.findRev( "\\" ); - TQString fpath; - if ( lbs != -1 ) - fpath = fname.left( lbs + 1 ); - fname = fname.right( fname.length() - lbs - 1 ); - - if ( ext == ".cpp" && !uiSourcesDir.isEmpty() ) - fname.prepend(uiSourcesDir); - else if ( ext == ".h" && !uiHeadersDir.isEmpty() ) - fname.prepend(uiHeadersDir); - else - fname = base; -// beginGroupForFile(fname, t); - t << "# Begin Source File\n\nSOURCE=" << fname - << "\n# End Source File" << endl; - } -// endGroups(t); - } else if(variable == "MSVCDSP_TRANSLATIONS" ) { - if(project->variables()["TRANSLATIONS"].isEmpty()) - continue; - - t << "# Begin Group \"Translations\"\n"; - t << "# Prop Default_Filter \"ts\"\n"; - - TQStringList list = project->variables()["TRANSLATIONS"]; - if(!project->isActiveConfig("flat")) - list.sort(); - for(TQStringList::Iterator it = list.begin(); it != list.end(); ++it) { - TQString sify = *it; - sify.replace('/', '\\' ); - TQString base = (*it); - TQT_TQSTRING(base.replace(TQRegExp("\\..*$"), "")).upper(); - base.replace(TQRegExp("[^a-zA-Z]"), "_"); - -// beginGroupForFile(sify, t); - t << "# Begin Source File\n\nSOURCE=" << sify << endl; - t << "\n# End Source File" << endl; - } -// endGroups(t); - t << "\n# End Group\n"; - } else if (variable == "MSVCDSP_TQMOCSOURCES" && project->isActiveConfig("tqmoc")) { - if ( project->variables()["SRCTQMOC"].isEmpty()) - continue; - - TQString tqmocpath = var( "TQMAKE_TQMOC" ); - tqmocpath = tqmocpath.replace( TQRegExp( "\\..*$" ), "" ) + " "; - - TQStringList list = project->variables()["SRCTQMOC"]; - if(!project->isActiveConfig("flat")) - list.sort(); - for(TQStringList::Iterator it = list.begin(); it != list.end(); ++it) { -// beginGroupForFile((*it), t); - t << "# Begin Source File\n\nSOURCE=" << (*it) << endl; - if ( project->isActiveConfig("tqmoc") && (*it).endsWith(Option::cpp_tqmoc_ext)) { - TQString base = (*it); - TQT_TQSTRING(base.replace(TQRegExp("\\..*$"), "")).upper(); - base.replace(TQRegExp("[^a-zA-Z]"), "_"); - - TQString build = "\n\n# Begin Custom Build - Moc'ing " + findMocSource((*it)) + - "...\n" "InputPath=.\\" + (*it) + "\n\n" "\"" + (*it) + "\"" - " : $(SOURCE) \"$(INTDIR)\" \"$(OUTDIR)\"\n" - "\t" + tqmocpath + findMocSource((*it)) + " -o " + - (*it) + "\n\n" "# End Custom Build\n\n"; - - t << "USERDEP_" << base << "=\".\\" << findMocSource((*it)) << "\" \"$(TQTDIR)\\bin\\tqmoc.exe\"" << endl << endl; - - t << "!IF \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - " << platform << " Release\"" << build - << "!ELSEIF \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - " << platform << " Debug\"" - << build << "!ENDIF " << endl << endl; - } - t << "# End Source File" << endl; - } -// endGroups(t); - } else if(variable == "MSVCDSP_PICTURES") { - if(project->variables()["IMAGES"].isEmpty()) - continue; - - t << "# Begin Group \"Images\"\n" - << "# Prop Default_Filter \"png jpeg bmp xpm\"\n"; - - TQStringList list = project->variables()["IMAGES"]; - if(!project->isActiveConfig("flat")) - list.sort(); - TQStringList::Iterator it; - - // dump the image list to a file UIC can read. - TQFile f( "images.tmp" ); - f.open( IO_WriteOnly ); - TQTextStream ts( TQT_TQIODEVICE(&f) ); - for( it = list.begin(); it != list.end(); ++it ) - ts << " " << *it; - f.close(); - - // create an output step for images not more than once - bool imagesBuildDone = FALSE; - for( it = list.begin(); it != list.end(); ++it ) { -// beginGroupForFile((*it), t); - t << "# Begin Source File\n\nSOURCE=" << (*it) << endl; - - TQString base = (*it); - TQString uicpath = var("TQMAKE_UIC"); - uicpath = uicpath.replace(TQRegExp("\\..*$"), "") + " "; - - if ( !imagesBuildDone ) { - imagesBuildDone = TRUE; - TQString build = "\n\n# Begin Custom Build - Creating image collection...\n" - "InputPath=.\\" + base + "\n\n"; - - build += "\"" + project->first("TQMAKE_IMAGE_COLLECTION") + "\" : $(SOURCE) \"$(INTDIR)\" \"$(OUTDIR)\"\n"; - build += "\t" + uicpath + "-embed " + project->first("TQMAKE_ORIG_TARGET") + " -f images.tmp -o " - + project->first("TQMAKE_IMAGE_COLLECTION") + "\n\n"; - build.append("# End Custom Build\n\n"); - - t << "USERDEP_" << base << "="; - TQStringList::Iterator it2 = list.begin(); - while ( it2 != list.end() ) { - t << "\"" << (*it2) << "\""; - it2++; - if ( it2 != list.end() ) - t << "\\\n"; - } - t << endl << endl; - - t << "!IF \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - Win32 Release\"" << build - << "!ELSEIF \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - Win32 Debug\"" << build - << "!ENDIF \n\n" << endl; - } - - t << "# End Source File" << endl; - } -// endGroups(t); - t << "\n# End Group\n"; - } else if(variable == "MSVCDSP_FORMS") { - if(project->variables()["FORMS"].isEmpty()) - continue; - - t << "# Begin Group \"Forms\"\n" - << "# Prop Default_Filter \"ui\"\n"; - - TQString uicpath = var("TQMAKE_UIC"); - uicpath = uicpath.replace(TQRegExp("\\..*$"), "") + " "; - TQString tqmocpath = var( "TQMAKE_TQMOC" ); - tqmocpath = tqmocpath.replace( TQRegExp( "\\..*$" ), "" ) + " "; - - TQStringList list = project->variables()["FORMS"]; - if(!project->isActiveConfig("flat")) - list.sort(); - for(TQStringList::Iterator it = list.begin(); it != list.end(); ++it) { - TQString base = (*it); -// beginGroupForFile(base, t); - t << "# Begin Source File\n\nSOURCE=" << base << endl; - - TQString fname = base; - fname.replace(".ui", ""); - int lbs = fname.findRev( "\\" ); - TQString fpath; - if ( lbs != -1 ) - fpath = fname.left( lbs + 1 ); - fname = fname.right( fname.length() - lbs - 1 ); - - TQString tqmocFile; - if(!project->variables()["TQMOC_DIR"].isEmpty()) - tqmocFile = project->first("TQMOC_DIR"); - else - tqmocFile = fpath; - - TQString uiSourcesDir; - TQString uiHeadersDir; - if(!project->variables()["UI_DIR"].isEmpty()) { - uiSourcesDir = project->first("UI_DIR"); - uiHeadersDir = project->first("UI_DIR"); - } else { - if ( !project->variables()["UI_SOURCES_DIR"].isEmpty() ) - uiSourcesDir = project->first("UI_SOURCES_DIR"); - else - uiSourcesDir = fpath; - if ( !project->variables()["UI_HEADERS_DIR"].isEmpty() ) - uiHeadersDir = project->first("UI_HEADERS_DIR"); - else - uiHeadersDir = fpath; - } - - t << "USERDEP_" << base << "=\"$(TQTDIR)\\bin\\tqmoc.exe\" \"$(TQTDIR)\\bin\\uic.exe\"" << endl << endl; - - TQString build = "\n\n# Begin Custom Build - Uic'ing " + base + "...\n" - "InputPath=.\\" + base + "\n\n" "BuildCmds= \\\n\t" + uicpath + base + - " -o " + uiHeadersDir + fname + ".h \\\n" "\t" + uicpath + base + - " -i " + fname + ".h -o " + uiSourcesDir + fname + ".cpp \\\n" - "\t" + tqmocpath + " " + uiHeadersDir + - fname + ".h -o " + tqmocFile + Option::h_tqmoc_mod + fname + Option::h_tqmoc_ext + " \\\n"; - - build.append("\n\"" + uiHeadersDir + fname + ".h\" : \"$(SOURCE)\" \"$(INTDIR)\" \"$(OUTDIR)\"" "\n" - "\t$(BuildCmds)\n\n" - "\"" + uiSourcesDir + fname + ".cpp\" : \"$(SOURCE)\" \"$(INTDIR)\" \"$(OUTDIR)\"" "\n" - "\t$(BuildCmds)\n\n" - "\"" + tqmocFile + Option::h_tqmoc_mod + fname + Option::h_tqmoc_ext + "\" : \"$(SOURCE)\" \"$(INTDIR)\" \"$(OUTDIR)\"" "\n" - "\t$(BuildCmds)\n\n"); - - build.append("# End Custom Build\n\n"); - - t << "!IF \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - " << platform << " Release\"" << build - << "!ELSEIF \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - " << platform << " Debug\"" << build - << "!ENDIF \n\n" << "# End Source File" << endl; - } -// endGroups(t); - t << "\n# End Group\n"; - } else if(variable == "MSVCDSP_LEXSOURCES") { - if(project->variables()["LEXSOURCES"].isEmpty()) - continue; - - t << "# Begin Group \"Lexables\"\n" - << "# Prop Default_Filter \"l\"\n"; - - TQString lexpath = var("TQMAKE_LEX") + varGlue("TQMAKE_LEXFLAGS", " ", " ", "") + " "; - - TQStringList list = project->variables()["LEXSOURCES"]; - if(!project->isActiveConfig("flat")) - list.sort(); - for(TQStringList::Iterator it = list.begin(); it != list.end(); ++it) { - TQString fname = (*it); -// beginGroupForFile(fname, t); - t << "# Begin Source File\n\nSOURCE=" << fname << endl; - fname.replace(".l", Option::lex_mod + Option::cpp_ext.first()); - - TQString build = "\n\n# Begin Custom Build - Lex'ing " + (*it) + "...\n" - "InputPath=.\\" + (*it) + "\n\n" - "\"" + fname + "\" : \"$(SOURCE)\" \"$(INTDIR)\" \"$(OUTDIR)\"" "\n" - "\t" + lexpath + (*it) + "\\\n" - "\tdel " + fname + "\\\n" - "\tcopy lex.yy.c " + fname + "\n\n" + - "# End Custom Build\n\n"; - t << "!IF \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - " << platform << " Release\"" << build - << "!ELSEIF \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - " << platform << " Debug\"" << build - << "!ENDIF \n\n" << build - - << "# End Source File" << endl; - } -// endGroups(t); - t << "\n# End Group\n"; - } else if(variable == "MSVCDSP_YACCSOURCES") { - if(project->variables()["YACCSOURCES"].isEmpty()) - continue; - - t << "# Begin Group \"Yaccables\"\n" - << "# Prop Default_Filter \"y\"\n"; - - TQString yaccpath = var("TQMAKE_YACC") + varGlue("TQMAKE_YACCFLAGS", " ", " ", "") + " "; - - TQStringList list = project->variables()["YACCSOURCES"]; - if(!project->isActiveConfig("flat")) - list.sort(); - for(TQStringList::Iterator it = list.begin(); it != list.end(); ++it) { - TQString fname = (*it); -// beginGroupForFile(fname, t); - t << "# Begin Source File\n\nSOURCE=" << fname << endl; - fname.replace(".y", Option::yacc_mod); - - TQString build = "\n\n# Begin Custom Build - Yacc'ing " + (*it) + "...\n" - "InputPath=.\\" + (*it) + "\n\n" - "\"" + fname + Option::cpp_ext.first() + "\" : \"$(SOURCE)\" \"$(INTDIR)\" \"$(OUTDIR)\"" "\n" - "\t" + yaccpath + (*it) + "\\\n" - "\tdel " + fname + Option::h_ext.first() + "\\\n" - "\tmove y.tab.h " + fname + Option::h_ext.first() + "\n\n" + - "\tdel " + fname + Option::cpp_ext.first() + "\\\n" - "\tmove y.tab.c " + fname + Option::cpp_ext.first() + "\n\n" + - "# End Custom Build\n\n"; - - t << "!IF \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - " << platform << " Release\"" << build - << "!ELSEIF \"$(CFG)\" == \"" << var("MSVCDSP_PROJECT") << " - " << platform << " Debug\"" << build - << "!ENDIF \n\n" - << "# End Source File" << endl; - } -// endGroups(t); - t << "\n# End Group\n"; - } else if( variable == "MSVCDSP_CONFIGMODE" ) { - if( project->isActiveConfig( "debug" ) ) - t << "Debug"; - else - t << "Release"; - } else if( variable == "MSVCDSP_IDLSOURCES" ) { - TQStringList list = project->variables()["MSVCDSP_IDLSOURCES"]; - if(!project->isActiveConfig("flat")) - list.sort(); - for(TQStringList::Iterator it = list.begin(); it != list.end(); ++it) { - t << "# Begin Source File" << endl << endl; - t << "SOURCE=" << (*it) << endl; - t << "# PROP Exclude_From_Build 1" << endl; - t << "# End Source File" << endl << endl; - } - } - else - t << var(variable); - } - t << line << endl; - } - t << endl; - file.close(); - return TRUE; -} - - - -void -DspMakefileGenerator::init() -{ - if(init_flag) - return; - TQStringList::Iterator it; - init_flag = TRUE; - - const bool thread = project->isActiveConfig("thread"); - - if ( project->isActiveConfig("stl") ) { - project->variables()["TQMAKE_CFLAGS"] += project->variables()["TQMAKE_CFLAGS_STL_ON"]; - project->variables()["TQMAKE_CXXFLAGS"] += project->variables()["TQMAKE_CXXFLAGS_STL_ON"]; - } else { - project->variables()["TQMAKE_CFLAGS"] += project->variables()["TQMAKE_CFLAGS_STL_OFF"]; - project->variables()["TQMAKE_CXXFLAGS"] += project->variables()["TQMAKE_CXXFLAGS_STL_OFF"]; - } - if ( project->isActiveConfig("exceptions") ) { - project->variables()["TQMAKE_CFLAGS"] += project->variables()["TQMAKE_CFLAGS_EXCEPTIONS_ON"]; - project->variables()["TQMAKE_CXXFLAGS"] += project->variables()["TQMAKE_CXXFLAGS_EXCEPTIONS_ON"]; - } else { - project->variables()["TQMAKE_CFLAGS"] += project->variables()["TQMAKE_CFLAGS_EXCEPTIONS_OFF"]; - project->variables()["TQMAKE_CXXFLAGS"] += project->variables()["TQMAKE_CXXFLAGS_EXCEPTIONS_OFF"]; - } - if ( project->isActiveConfig("rtti") ) { - project->variables()["TQMAKE_CFLAGS"] += project->variables()["TQMAKE_CFLAGS_RTTI_ON"]; - project->variables()["TQMAKE_CXXFLAGS"] += project->variables()["TQMAKE_CXXFLAGS_RTTI_ON"]; - } else { - project->variables()["TQMAKE_CFLAGS"] += project->variables()["TQMAKE_CFLAGS_RTTI_OFF"]; - project->variables()["TQMAKE_CXXFLAGS"] += project->variables()["TQMAKE_CXXFLAGS_RTTI_OFF"]; - } - - - /* this should probably not be here, but I'm using it to wrap the .t files */ - if(project->first("TEMPLATE") == "vcapp" ) - project->variables()["TQMAKE_APP_FLAG"].append("1"); - else if(project->first("TEMPLATE") == "vclib") - project->variables()["TQMAKE_LIB_FLAG"].append("1"); - if ( project->variables()["TQMAKESPEC"].isEmpty() ) - project->variables()["TQMAKESPEC"].append( getenv("TQMAKESPEC") ); - - bool is_qt = (project->first("TARGET") == "qt"TQTDLL_POSTFIX || project->first("TARGET") == "qt-mt"TQTDLL_POSTFIX); - project->variables()["TQMAKE_ORIG_TARGET"] = project->variables()["TARGET"]; - - TQStringList &configs = project->variables()["CONFIG"]; - if (project->isActiveConfig("shared")) - project->variables()["DEFINES"].append("TQT_DLL"); - if (project->isActiveConfig("qt_dll")) - if(configs.findIndex("qt") == -1) configs.append("qt"); - if ( project->isActiveConfig("qtopia") ) { - if(configs.findIndex("qtopialib") == -1) - configs.append("qtopialib"); - if(configs.findIndex("qtopiainc") == -1) - configs.append("qtopiainc"); - } - if ( project->isActiveConfig("qt") ) { - if ( project->isActiveConfig( "plugin" ) ) { - project->variables()["CONFIG"].append("dll"); - project->variables()["DEFINES"].append("TQT_PLUGIN"); - } - if ( (project->variables()["DEFINES"].findIndex("TQT_NODLL") == -1) && - ((project->variables()["DEFINES"].findIndex("TQT_MAKEDLL") != -1 || - project->variables()["DEFINES"].findIndex("TQT_DLL") != -1) || - (getenv("TQT_DLL") && !getenv("TQT_NODLL"))) ) { - project->variables()["TQMAKE_TQT_DLL"].append("1"); - if ( is_qt && !project->variables()["TQMAKE_LIB_FLAG"].isEmpty() ) - project->variables()["CONFIG"].append("dll"); - } - } - if ( project->isActiveConfig("dll") || !project->variables()["TQMAKE_APP_FLAG"].isEmpty() ) { - project->variables()["CONFIG"].remove("staticlib"); - project->variables()["TQMAKE_APP_OR_DLL"].append("1"); - } else { - project->variables()["CONFIG"].append("staticlib"); - } - - if ( project->isActiveConfig("qt") || project->isActiveConfig("opengl") ) { - project->variables()["CONFIG"].append("windows"); - } - if ( !project->variables()["VERSION"].isEmpty() ) { - TQString version = project->variables()["VERSION"][0]; - int firstDot = version.find( "." ); - TQString major = version.left( firstDot ); - TQString minor = version.right( version.length() - firstDot - 1 ); - minor.replace( ".", "" ); - project->variables()["MSVCDSP_VERSION"].append( "/VERSION:" + major + "." + minor ); - } - - if ( project->isActiveConfig("qtopiainc") ) - project->variables()["INCLUDEPATH"] += project->variables()["TQMAKE_INCDIR_TQTOPIA"]; - if ( project->isActiveConfig("qtopialib") ) { - if(!project->isEmpty("TQMAKE_LIBDIR_TQTOPIA")) - project->variables()["TQMAKE_LIBDIR"] += project->variables()["TQMAKE_LIBDIR_TQTOPIA"]; - project->variables()["TQMAKE_LIBS"] += project->variables()["TQMAKE_LIBS_TQTOPIA"]; - } - - if ( project->isActiveConfig("qt") ) { - project->variables()["CONFIG"].append("tqmoc"); - project->variables()["INCLUDEPATH"] += project->variables()["TQMAKE_INCDIR_QT"]; - project->variables()["TQMAKE_LIBDIR"] += project->variables()["TQMAKE_LIBDIR_QT"]; - - if ( is_qt && !project->variables()["TQMAKE_LIB_FLAG"].isEmpty() ) { - if ( !project->variables()["TQMAKE_TQT_DLL"].isEmpty() ) { - project->variables()["DEFINES"].append("TQT_MAKEDLL"); - project->variables()["TQMAKE_LFLAGS"].append("/base:\"0x39D00000\""); - } - } else { - if( thread ) - project->variables()["TQMAKE_LIBS"] += project->variables()["TQMAKE_LIBS_TQT_THREAD"]; - else - project->variables()["TQMAKE_LIBS"] += project->variables()["TQMAKE_LIBS_QT"]; - if ( !project->variables()["TQMAKE_TQT_DLL"].isEmpty() ) { - int hver = findHighestVersion(project->first("TQMAKE_LIBDIR_QT"), "qt"); - if ( hver == -1 ) - hver = findHighestVersion(project->first("TQMAKE_LIBDIR_QT"), "qt-mt"); - if(hver != -1) { - TQString ver; - ver.sprintf("qt%s" TQTDLL_POSTFIX "%d.lib", (thread ? "-mt" : ""), hver); - TQStringList &libs = project->variables()["TQMAKE_LIBS"]; - for(TQStringList::Iterator libit = libs.begin(); libit != libs.end(); ++libit) - (*libit).replace(TQRegExp("qt(-mt)?\\.lib"), ver); - } - } - if ( project->isActiveConfig( "activeqt" ) ) { - project->variables().remove("TQMAKE_LIBS_TQT_ENTRY"); - project->variables()["TQMAKE_LIBS_TQT_ENTRY"] = "qaxserver.lib"; - if ( project->isActiveConfig( "dll" ) ) - project->variables()["TQMAKE_LIBS"] += project->variables()["TQMAKE_LIBS_TQT_ENTRY"]; - } - if ( !project->isActiveConfig("dll") && !project->isActiveConfig("plugin") ) { - project->variables()["TQMAKE_LIBS"] +=project->variables()["TQMAKE_LIBS_TQT_ENTRY"]; - } - } - } - - if ( project->isActiveConfig("debug") ) { - if ( !project->first("OBJECTS_DIR").isEmpty() ) - project->variables()["MSVCDSP_OBJECTSDIRDEB"] = project->first("OBJECTS_DIR"); - else - project->variables()["MSVCDSP_OBJECTSDIRDEB"] = "Debug"; - project->variables()["MSVCDSP_OBJECTSDIRREL"] = "Release"; - if ( !project->first("DESTDIR").isEmpty() ) - project->variables()["MSVCDSP_TARGETDIRDEB"] = project->first("DESTDIR"); - else - project->variables()["MSVCDSP_TARGETDIRDEB"] = "Debug"; - project->variables()["MSVCDSP_TARGETDIRREL"] = "Release"; - } else { - if ( !project->first("OBJECTS_DIR").isEmpty() ) - project->variables()["MSVCDSP_OBJECTSDIRREL"] = project->first("OBJECTS_DIR"); - else - project->variables()["MSVCDSP_OBJECTSDIRREL"] = "Release"; - project->variables()["MSVCDSP_OBJECTSDIRDEB"] = "Debug"; - if ( !project->first("DESTDIR").isEmpty() ) - project->variables()["MSVCDSP_TARGETDIRREL"] = project->first("DESTDIR"); - else - project->variables()["MSVCDSP_TARGETDIRREL"] = "Release"; - project->variables()["MSVCDSP_TARGETDIRDEB"] = "Debug"; - } - - if ( project->isActiveConfig("opengl") ) { - project->variables()["TQMAKE_LIBS"] += project->variables()["TQMAKE_LIBS_OPENGL"]; - project->variables()["TQMAKE_LFLAGS"] += project->variables()["TQMAKE_LFLAGS_OPENGL"]; - } - if ( thread ) { - if(project->isActiveConfig("qt")) - project->variables()[is_qt ? "PRL_EXPORT_DEFINES" : "DEFINES"].append("TQT_THREAD_SUPPORT" ); - if ( project->isActiveConfig("dll") || project->first("TARGET") == "qtmain" - || !project->variables()["TQMAKE_TQT_DLL"].isEmpty() ) { - project->variables()["MSVCDSP_MTDEFD"] += project->variables()["TQMAKE_CXXFLAGS_MT_DLLDBG"]; - project->variables()["MSVCDSP_MTDEF"] += project->variables()["TQMAKE_CXXFLAGS_MT_DLL"]; - } else { - // YES we want to use the DLL even in a static build - project->variables()["MSVCDSP_MTDEFD"] += project->variables()["TQMAKE_CXXFLAGS_MT_DBG"]; - project->variables()["MSVCDSP_MTDEF"] += project->variables()["TQMAKE_CXXFLAGS_MT"]; - } - if ( !project->variables()["DEFINES"].contains("TQT_DLL") && is_qt - && project->first("TARGET") != "qtmain" ) - project->variables()["TQMAKE_LFLAGS"].append("/NODEFAULTLIB:\"libc\""); - } - - if(project->isActiveConfig("qt")) { - if ( project->isActiveConfig("accessibility" ) ) - project->variables()[is_qt ? "PRL_EXPORT_DEFINES" : "DEFINES"].append("TQT_ACCESSIBILITY_SUPPORT"); - if ( project->isActiveConfig("tablet") ) - project->variables()[is_qt ? "PRL_EXPORT_DEFINES" : "DEFINES"].append("TQT_TABLET_SUPPORT"); - } - if ( project->isActiveConfig("dll") ) { - project->variables()["TQMAKE_CFLAGS_CONSOLE_ANY"] = project->variables()["TQMAKE_CFLAGS_CONSOLE_DLL"]; - project->variables()["TQMAKE_CXXFLAGS_CONSOLE_ANY"] = project->variables()["TQMAKE_CXXFLAGS_CONSOLE_DLL"]; - project->variables()["TQMAKE_LFLAGS_CONSOLE_ANY"] = project->variables()["TQMAKE_LFLAGS_CONSOLE_DLL"]; - project->variables()["TQMAKE_LFLAGS_WINDOWS_ANY"] = project->variables()["TQMAKE_LFLAGS_WINDOWS_DLL"]; - if ( !project->variables()["TQMAKE_LIB_FLAG"].isEmpty() ) { - TQString ver_xyz(project->first("VERSION")); - ver_xyz.replace(".", ""); - project->variables()["TARGET_EXT"].append(ver_xyz + ".dll"); - } else { - project->variables()["TARGET_EXT"].append(".dll"); - } - } else { - project->variables()["TQMAKE_CFLAGS_CONSOLE_ANY"] = project->variables()["TQMAKE_CFLAGS_CONSOLE"]; - project->variables()["TQMAKE_CXXFLAGS_CONSOLE_ANY"] = project->variables()["TQMAKE_CXXFLAGS_CONSOLE"]; - project->variables()["TQMAKE_LFLAGS_CONSOLE_ANY"] = project->variables()["TQMAKE_LFLAGS_CONSOLE"]; - project->variables()["TQMAKE_LFLAGS_WINDOWS_ANY"] = project->variables()["TQMAKE_LFLAGS_WINDOWS"]; - if ( !project->variables()["TQMAKE_APP_FLAG"].isEmpty() ) - project->variables()["TARGET_EXT"].append(".exe"); - else - project->variables()["TARGET_EXT"].append(".lib"); - } - - if ( project->isActiveConfig("windows") ) { - if ( project->isActiveConfig("console") ) { - project->variables()["TQMAKE_CFLAGS"] += project->variables()["TQMAKE_CFLAGS_CONSOLE_ANY"]; - project->variables()["TQMAKE_CXXFLAGS"] += project->variables()["TQMAKE_CXXFLAGS_CONSOLE_ANY"]; - project->variables()["TQMAKE_LFLAGS"] += project->variables()["TQMAKE_LFLAGS_CONSOLE_ANY"]; - project->variables()["TQMAKE_LIBS"] += project->variables()["TQMAKE_LIBS_CONSOLE"]; - } else { - project->variables()["TQMAKE_LFLAGS"] += project->variables()["TQMAKE_LFLAGS_WINDOWS_ANY"]; - } - project->variables()["TQMAKE_LIBS"] += project->variables()["TQMAKE_LIBS_WINDOWS"]; - } else { - project->variables()["TQMAKE_CFLAGS"] += project->variables()["TQMAKE_CFLAGS_CONSOLE_ANY"]; - project->variables()["TQMAKE_CXXFLAGS"] += project->variables()["TQMAKE_CXXFLAGS_CONSOLE_ANY"]; - project->variables()["TQMAKE_LFLAGS"] += project->variables()["TQMAKE_LFLAGS_CONSOLE_ANY"]; - project->variables()["TQMAKE_LIBS"] += project->variables()["TQMAKE_LIBS_CONSOLE"]; - } - - project->variables()["MSVCDSP_VER"] = "6.00"; - project->variables()["MSVCDSP_DEBUG_OPT"] = "/GZ /ZI"; - - if(!project->isActiveConfig("incremental")) { - project->variables()["TQMAKE_LFLAGS"].append(TQString("/incremental:no")); - if ( is_qt ) - project->variables()["MSVCDSP_DEBUG_OPT"] = "/GZ /Zi"; - } - - TQString msvcdsp_project; - if ( project->variables()["TARGET"].count() ) - msvcdsp_project = project->variables()["TARGET"].first(); - - TQString targetfilename = project->variables()["TARGET"].first(); - project->variables()["TARGET"].first() += project->first("TARGET_EXT"); - if ( project->isActiveConfig("tqmoc") ) - setMocAware(TRUE); - - project->variables()["TQMAKE_LIBS"] += project->variables()["LIBS"]; - project->variables()["TQMAKE_FILETAGS"] += TQStringList::split(' ', - "HEADERS SOURCES DEF_FILE RC_FILE TARGET TQMAKE_LIBS DESTDIR DLLDESTDIR INCLUDEPATH"); - TQStringList &l = project->variables()["TQMAKE_FILETAGS"]; - for(it = l.begin(); it != l.end(); ++it) { - TQStringList &gdmf = project->variables()[(*it)]; - for(TQStringList::Iterator inner = gdmf.begin(); inner != gdmf.end(); ++inner) - (*inner) = Option::fixPathToTargetOS((*inner), FALSE); - } - - MakefileGenerator::init(); - if ( msvcdsp_project.isEmpty() ) - msvcdsp_project = Option::output.name(); - - msvcdsp_project = msvcdsp_project.right( msvcdsp_project.length() - msvcdsp_project.findRev( "\\" ) - 1 ); - msvcdsp_project = msvcdsp_project.left( msvcdsp_project.findRev( "." ) ); - msvcdsp_project.replace("-", ""); - - project->variables()["MSVCDSP_PROJECT"].append(msvcdsp_project); - TQStringList &proj = project->variables()["MSVCDSP_PROJECT"]; - - for(it = proj.begin(); it != proj.end(); ++it) - (*it).replace(TQRegExp("\\.[a-zA-Z0-9_]*$"), ""); - - if ( !project->variables()["TQMAKE_APP_FLAG"].isEmpty() ) { - project->variables()["MSVCDSP_TEMPLATE"].append("win32app" + project->first( "DSP_EXTENSION" ) ); - if ( project->isActiveConfig("console") ) { - project->variables()["MSVCDSP_CONSOLE"].append("Console"); - project->variables()["MSVCDSP_WINCONDEF"].append("_CONSOLE"); - project->variables()["MSVCDSP_DSPTYPE"].append("0x0103"); - } else { - project->variables()["MSVCDSP_CONSOLE"].clear(); - project->variables()["MSVCDSP_WINCONDEF"].append("_WINDOWS"); - project->variables()["MSVCDSP_DSPTYPE"].append("0x0101"); - } - } else { - if ( project->isActiveConfig("dll") ) { - project->variables()["MSVCDSP_TEMPLATE"].append("win32dll" + project->first( "DSP_EXTENSION" ) ); - } else { - project->variables()["MSVCDSP_TEMPLATE"].append("win32lib" + project->first( "DSP_EXTENSION" ) ); - } - } - - project->variables()["TQMAKE_LIBS"] += project->variables()["TQMAKE_LIBS_WINDOWS"]; - - processPrlFiles(); - - // Update -lname to name.lib, - TQStringList &libList = project->variables()["TQMAKE_LIBS"]; - for( TQStringList::Iterator stIt = libList.begin(); stIt != libList.end(); ) { - TQString s = *stIt; - if( s.startsWith( "-l" ) ) { - stIt = libList.remove( stIt ); - stIt = libList.insert( stIt, s.mid( 2 ) + ".lib" ); - } else if( s.startsWith( "-L" ) ) { - stIt = libList.remove( stIt ); - project->variables()["TQMAKE_LIBDIR"].append(TQDir::convertSeparators(s.mid( 2 ))); - } else { - stIt++; - } - } - - project->variables()["MSVCDSP_LFLAGS" ] += project->variables()["TQMAKE_LFLAGS"]; - if ( !project->variables()["TQMAKE_LIBDIR"].isEmpty() ) - project->variables()["MSVCDSP_LFLAGS" ].append(varGlue("TQMAKE_LIBDIR","/LIBPATH:\"","\" /LIBPATH:\"","\"")); - project->variables()["MSVCDSP_CXXFLAGS" ] += project->variables()["TQMAKE_CXXFLAGS"]; - project->variables()["MSVCDSP_DEFINES"].append(varGlue("DEFINES","/D ","" " /D ","")); - project->variables()["MSVCDSP_DEFINES"].append(varGlue("PRL_EXPORT_DEFINES","/D ","" " /D ","")); - - if (!project->variables()["RES_FILE"].isEmpty()) - project->variables()["TQMAKE_LIBS"] += project->variables()["RES_FILE"]; - - TQStringList &libs = project->variables()["TQMAKE_LIBS"]; - for(TQStringList::Iterator libit = libs.begin(); libit != libs.end(); ++libit) { - TQString lib = (*libit); - lib.replace(TQRegExp("\""), ""); - project->variables()["MSVCDSP_LIBS"].append(" \"" + lib + "\""); - } - - TQStringList &incs = project->variables()["INCLUDEPATH"]; - for(TQStringList::Iterator incit = incs.begin(); incit != incs.end(); ++incit) { - TQString inc = (*incit); - inc.replace("\"", ""); - if(inc.endsWith("\\")) // Remove trailing \'s from paths - inc.truncate(inc.length()-1); - if (inc.startsWith("\"") && inc.endsWith("\"")) - inc = inc.mid(1, inc.length() - 2); - project->variables()["MSVCDSP_INCPATH"].append("/I \"" + inc + "\""); - } - - project->variables()["MSVCDSP_INCPATH"].append("/I \"" + specdir() + "\""); - if ( project->isActiveConfig("qt") ) { - project->variables()["MSVCDSP_RELDEFS"].append("/D \"TQT_NO_DEBUG\""); - } else { - project->variables()["MSVCDSP_RELDEFS"].clear(); - } - - TQString dest; - TQString postLinkStep; - TQString copyDllStep; - TQString activeTQtStepPreCopyDll; - TQString activeTQtStepPostCopyDll; - TQString activeTQtStepPreCopyDllDebug; - TQString activeTQtStepPostCopyDllDebug; - TQString activeTQtStepPreCopyDllRelease; - TQString activeTQtStepPostCopyDllRelease; - - if ( !project->variables()["TQMAKE_POST_LINK"].isEmpty() ) - postLinkStep += var("TQMAKE_POST_LINK"); - - if ( !project->variables()["DESTDIR"].isEmpty() ) { - project->variables()["TARGET"].first().prepend(project->first("DESTDIR")); - Option::fixPathToTargetOS(project->first("TARGET")); - dest = project->first("TARGET"); - if ( project->first("TARGET").startsWith("$(TQTDIR)") ) - dest.replace( "$(TQTDIR)", getenv("TQTDIR") ); - project->variables()["MSVCDSP_TARGET"].append( - TQString("/out:\"") + dest + "\""); - if ( project->isActiveConfig("dll") ) { - TQString imp = dest; - imp.replace(".dll", ".lib"); - project->variables()["MSVCDSP_TARGET"].append(TQString(" /implib:\"") + imp + "\""); - } - } - if ( project->isActiveConfig("dll") && !project->variables()["DLLDESTDIR"].isEmpty() ) { - TQStringList dlldirs = project->variables()["DLLDESTDIR"]; - if ( dlldirs.count() ) - copyDllStep += "\t"; - for ( TQStringList::Iterator dlldir = dlldirs.begin(); dlldir != dlldirs.end(); ++dlldir ) { - copyDllStep += "copy \"$(TargetPath)\" \"" + *dlldir + "\"\t"; - } - } - - if ( project->isActiveConfig("activeqt") ) { - TQString idl = project->variables()["TQMAKE_IDL"].first(); - TQString idc = project->variables()["TQMAKE_IDC"].first(); - TQString version = project->variables()["VERSION"].first(); - if ( version.isEmpty() ) - version = "1.0"; - project->variables()["MSVCDSP_IDLSOURCES"].append( var("OBJECTS_DIR") + targetfilename + ".idl" ); - if ( project->isActiveConfig( "dll" ) ) { - activeTQtStepPreCopyDll += - "\t" + idc + " %1 -idl " + var("OBJECTS_DIR") + targetfilename + ".idl -version " + version + - "\t" + idl + " /nologo " + var("OBJECTS_DIR") + targetfilename + ".idl /tlb " + var("OBJECTS_DIR") + targetfilename + ".tlb" + - "\t" + idc + " %2 /tlb " + var("OBJECTS_DIR") + targetfilename + ".tlb"; - activeTQtStepPostCopyDll += - "\t" + idc + " %1 /regserver\n"; - - TQString executable = project->variables()["MSVCDSP_TARGETDIRREL"].first() + "\\" + targetfilename + ".dll"; - activeTQtStepPreCopyDllRelease = activeTQtStepPreCopyDll.arg(executable).arg(executable); - activeTQtStepPostCopyDllRelease = activeTQtStepPostCopyDll.arg(executable); - - executable = project->variables()["MSVCDSP_TARGETDIRDEB"].first() + "\\" + targetfilename + ".dll"; - activeTQtStepPreCopyDllDebug = activeTQtStepPreCopyDll.arg(executable).arg(executable); - activeTQtStepPostCopyDllDebug = activeTQtStepPostCopyDll.arg(executable); - } else { - activeTQtStepPreCopyDll += - "\t%1 -dumpidl " + var("OBJECTS_DIR") + targetfilename + ".idl -version " + version + - "\t" + idl + " /nologo " + var("OBJECTS_DIR") + targetfilename + ".idl /tlb " + var("OBJECTS_DIR") + targetfilename + ".tlb" + - "\t" + idc + " %2 /tlb " + var("OBJECTS_DIR") + targetfilename + ".tlb"; - activeTQtStepPostCopyDll += - "\t%1 -regserver\n"; - TQString executable = project->variables()["MSVCDSP_TARGETDIRREL"].first() + "\\" + targetfilename + ".exe"; - activeTQtStepPreCopyDllRelease = activeTQtStepPreCopyDll.arg(executable).arg(executable); - activeTQtStepPostCopyDllRelease = activeTQtStepPostCopyDll.arg(executable); - - executable = project->variables()["MSVCDSP_TARGETDIRDEB"].first() + "\\" + targetfilename + ".exe"; - activeTQtStepPreCopyDllDebug = activeTQtStepPreCopyDll.arg(executable).arg(executable); - activeTQtStepPostCopyDllDebug = activeTQtStepPostCopyDll.arg(executable); - } - - } - - - if ( !postLinkStep.isEmpty() || !copyDllStep.isEmpty() || !activeTQtStepPreCopyDllDebug.isEmpty() || !activeTQtStepPreCopyDllRelease.isEmpty() ) { - project->variables()["MSVCDSP_POST_LINK_DBG"].append( - "# Begin Special Build Tool\n" - "SOURCE=$(InputPath)\n" - "PostBuild_Desc=Post Build Step\n" - "PostBuild_Cmds=" + postLinkStep + activeTQtStepPreCopyDllDebug + copyDllStep + activeTQtStepPostCopyDllDebug + "\n" - "# End Special Build Tool\n" ); - project->variables()["MSVCDSP_POST_LINK_REL"].append( - "# Begin Special Build Tool\n" - "SOURCE=$(InputPath)\n" - "PostBuild_Desc=Post Build Step\n" - "PostBuild_Cmds=" + postLinkStep + activeTQtStepPreCopyDllRelease + copyDllStep + activeTQtStepPostCopyDllRelease + "\n" - "# End Special Build Tool\n" ); - } - - if ( !project->variables()["SOURCES"].isEmpty() || !project->variables()["RC_FILE"].isEmpty() ) { - project->variables()["SOURCES"] += project->variables()["RC_FILE"]; - } - TQStringList &list = project->variables()["FORMS"]; - for( it = list.begin(); it != list.end(); ++it ) { - if ( TQFile::exists( *it + ".h" ) ) - project->variables()["SOURCES"].append( *it + ".h" ); - } - project->variables()["TQMAKE_INTERNAL_PRL_LIBS"] << "MSVCDSP_LIBS"; -} - - -TQString -DspMakefileGenerator::findTemplate(const TQString &file) -{ - TQString ret; - if(!TQFile::exists((ret = file)) && - !TQFile::exists((ret = TQString(Option::mkfile::qmakespec + "/" + file))) && - !TQFile::exists((ret = TQString(getenv("TQTDIR")) + "/mkspecs/win32-msvc/" + file)) && - !TQFile::exists((ret = (TQString(getenv("HOME")) + "/.tmake/" + file)))) - return ""; - return ret; -} - - -void -DspMakefileGenerator::processPrlVariable(const TQString &var, const TQStringList &l) -{ - if(var == "TQMAKE_PRL_DEFINES") { - TQStringList &out = project->variables()["MSVCDSP_DEFINES"]; - for(TQStringList::ConstIterator it = l.begin(); it != l.end(); ++it) { - if(out.findIndex((*it)) == -1) - out.append((" /D \"" + *it + "\"")); - } - } else { - MakefileGenerator::processPrlVariable(var, l); - } -} - - -void -DspMakefileGenerator::beginGroupForFile(TQString file, TQTextStream &t, - const TQString& filter) -{ - if(project->isActiveConfig("flat")) - return; - fileFixify(file, TQDir::currentDirPath(), TQDir::currentDirPath(), TRUE); - file = file.section(Option::dir_sep, 0, -2); - if(file.right(Option::dir_sep.length()) != Option::dir_sep) - file += Option::dir_sep; - if(file == currentGroup) - return; - - if(file.isEmpty() || !TQDir::isRelativePath(file)) { - endGroups(t); - return; - } - - TQString tempFile = file; - if(tempFile.startsWith(currentGroup)) - tempFile = tempFile.mid(currentGroup.length()); - int dirSep = currentGroup.findRev( Option::dir_sep ); - - while( !tempFile.startsWith( currentGroup ) && dirSep != -1 ) { - currentGroup.truncate( dirSep ); - dirSep = currentGroup.findRev( Option::dir_sep ); - if ( !tempFile.startsWith( currentGroup ) && dirSep != -1 ) - t << "\n# End Group\n"; - } - if ( !file.startsWith( currentGroup ) ) { - t << "\n# End Group\n"; - currentGroup = ""; - } - - TQStringList dirs = TQStringList::split(Option::dir_sep, file.right( file.length() - currentGroup.length() ) ); - for(TQStringList::Iterator dir_it = dirs.begin(); dir_it != dirs.end(); ++dir_it) { - t << "# Begin Group \"" << (*dir_it) << "\"\n" - << "# Prop Default_Filter \"" << filter << "\"\n"; - } - currentGroup = file; -} - - -void -DspMakefileGenerator::endGroups(TQTextStream &t) -{ - if(project->isActiveConfig("flat")) - return; - else if(currentGroup.isEmpty()) - return; - - TQStringList dirs = TQStringList::split(Option::dir_sep, currentGroup); - for(TQStringList::Iterator dir_it = dirs.end(); dir_it != dirs.begin(); --dir_it) { - t << "\n# End Group\n"; - } - currentGroup = ""; -} - -bool -DspMakefileGenerator::openOutput(TQFile &file) const -{ - TQString outdir; - if(!file.name().isEmpty()) { - if(TQDir::isRelativePath(file.name())) - file.setName(Option::output_dir + file.name()); //pwd when qmake was run - TQFileInfo fi(file); - if(fi.isDir()) - outdir = file.name() + TQDir::separator(); - } - if(!outdir.isEmpty() || file.name().isEmpty()) - file.setName(outdir + project->first("TARGET") + project->first("DSP_EXTENSION")); - if(TQDir::isRelativePath(file.name())) { - TQString ofile; - ofile = file.name(); - int slashfind = ofile.findRev('\\'); - if (slashfind == -1) { - ofile = ofile.replace(TQRegExp("-"), "_"); - } else { - int hypenfind = ofile.find('-', slashfind); - while (hypenfind != -1 && slashfind < hypenfind) { - ofile = ofile.replace(hypenfind, 1, "_"); - hypenfind = ofile.find('-', hypenfind + 1); - } - } - file.setName(Option::fixPathToLocalOS(TQDir::currentDirPath() + Option::dir_sep + ofile)); - } - return Win32MakefileGenerator::openOutput(file); -} |