summaryrefslogtreecommitdiffstats
path: root/tqtinterface/qt4/qmake/generators/win32/msvc_dsp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tqtinterface/qt4/qmake/generators/win32/msvc_dsp.cpp')
-rw-r--r--tqtinterface/qt4/qmake/generators/win32/msvc_dsp.cpp1145
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 sales@trolltech.com.
-**
-** 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);
-}