void Win32MakefileGenerator::processVars() { //If the TARGET looks like a path split it into DESTDIR and the resulting TARGET if(!project->isEmpty("TARGET")) { QString targ = project->first("TARGET"); int slsh = qMax(targ.lastIndexOf('/'), targ.lastIndexOf(Option::dir_sep)); if(slsh != -1) { if(project->isEmpty("DESTDIR")) project->values("DESTDIR").append(""); else if(project->first("DESTDIR").right(1) != Option::dir_sep) project->values("DESTDIR") = QStringList(project->first("DESTDIR") + Option::dir_sep); project->values("DESTDIR") = QStringList(project->first("DESTDIR") + targ.left(slsh+1)); project->values("TARGET") = QStringList(targ.mid(slsh+1)); } } project->values("QMAKE_ORIG_TARGET") = project->values("TARGET"); if (!project->values("QMAKE_INCDIR").isEmpty()) project->values("INCLUDEPATH") += project->values("QMAKE_INCDIR"); if (!project->values("VERSION").isEmpty()) { QStringList l = project->first("VERSION").split('.'); if (l.size() > 0) project->values("VER_MAJ").append(l[0]); if (l.size() > 1) project->values("VER_MIN").append(l[1]); } // TARGET_VERSION_EXT will be used to add a version number onto the target name if (project->values("TARGET_VERSION_EXT").isEmpty() && !project->values("VER_MAJ").isEmpty()) project->values("TARGET_VERSION_EXT").append(project->values("VER_MAJ").first()); if(project->isEmpty("QMAKE_COPY_FILE")) project->values("QMAKE_COPY_FILE").append("$(COPY)"); if(project->isEmpty("QMAKE_COPY_DIR")) project->values("QMAKE_COPY_DIR").append("xcopy /s /q /y /i"); if(project->isEmpty("QMAKE_INSTALL_FILE")) project->values("QMAKE_INSTALL_FILE").append("$(COPY_FILE)"); if(project->isEmpty("QMAKE_INSTALL_PROGRAM")) project->values("QMAKE_INSTALL_PROGRAM").append("$(COPY_FILE)"); if(project->isEmpty("QMAKE_INSTALL_DIR")) project->values("QMAKE_INSTALL_DIR").append("$(COPY_DIR)"); fixTargetExt(); processRcFileVar(); processFileTagsVar(); QStringList &incDir = project->values("INCLUDEPATH"); for(QStringList::Iterator incDir_it = incDir.begin(); incDir_it != incDir.end(); ++incDir_it) { if(!(*incDir_it).isEmpty()) (*incDir_it) = Option::fixPathToTargetOS((*incDir_it), false, false); } QStringList &libDir = project->values("QMAKE_LIBDIR"); for(QStringList::Iterator libDir_it = libDir.begin(); libDir_it != libDir.end(); ++libDir_it) { if(!(*libDir_it).isEmpty()) (*libDir_it) = Option::fixPathToTargetOS((*libDir_it), false, false); } }
void Win32MakefileGenerator::processVars() { project->values("QMAKE_ORIG_TARGET") = project->values("TARGET"); if (project->isEmpty("QMAKE_PROJECT_NAME")) project->values("QMAKE_PROJECT_NAME") = project->values("QMAKE_ORIG_TARGET"); else if (project->first("TEMPLATE").startsWith("vc")) project->values("MAKEFILE") = project->values("QMAKE_PROJECT_NAME"); if (!project->values("QMAKE_INCDIR").isEmpty()) project->values("INCLUDEPATH") += project->values("QMAKE_INCDIR"); if (!project->values("VERSION").isEmpty()) { QStringList l = project->first("VERSION").toQString().split('.'); if (l.size() > 0) project->values("VER_MAJ").append(l[0]); if (l.size() > 1) project->values("VER_MIN").append(l[1]); } // TARGET_VERSION_EXT will be used to add a version number onto the target name if (!project->isActiveConfig("skip_target_version_ext") && project->values("TARGET_VERSION_EXT").isEmpty() && !project->values("VER_MAJ").isEmpty()) project->values("TARGET_VERSION_EXT").append(project->values("VER_MAJ").first()); if(project->isEmpty("QMAKE_COPY_FILE")) project->values("QMAKE_COPY_FILE").append("$(COPY)"); if(project->isEmpty("QMAKE_COPY_DIR")) project->values("QMAKE_COPY_DIR").append("xcopy /s /q /y /i"); if (project->isEmpty("QMAKE_STREAM_EDITOR")) project->values("QMAKE_STREAM_EDITOR").append("$(QMAKE) -install sed"); if(project->isEmpty("QMAKE_INSTALL_FILE")) project->values("QMAKE_INSTALL_FILE").append("$(COPY_FILE)"); if(project->isEmpty("QMAKE_INSTALL_PROGRAM")) project->values("QMAKE_INSTALL_PROGRAM").append("$(COPY_FILE)"); if(project->isEmpty("QMAKE_INSTALL_DIR")) project->values("QMAKE_INSTALL_DIR").append("$(COPY_DIR)"); fixTargetExt(); processRcFileVar(); ProStringList &incDir = project->values("INCLUDEPATH"); for (ProStringList::Iterator incDir_it = incDir.begin(); incDir_it != incDir.end(); ++incDir_it) if (!(*incDir_it).isEmpty()) (*incDir_it) = Option::fixPathToTargetOS((*incDir_it).toQString(), false, false); ProString libArg = project->first("QMAKE_L_FLAG"); ProStringList libs; ProStringList &libDir = project->values("QMAKE_LIBDIR"); for (ProStringList::Iterator libDir_it = libDir.begin(); libDir_it != libDir.end(); ++libDir_it) { QString lib = (*libDir_it).toQString(); if (!lib.isEmpty()) { lib.remove('"'); if (lib.endsWith('\\')) lib.chop(1); libs << libArg + escapeFilePath(Option::fixPathToTargetOS(lib, false, false)); } } project->values("QMAKE_LIBS") += libs + escapeFilePaths(project->values("LIBS")); project->values("QMAKE_LIBS_PRIVATE") += escapeFilePaths(project->values("LIBS_PRIVATE")); if (project->values("TEMPLATE").contains("app")) { project->values("QMAKE_CFLAGS") += project->values("QMAKE_CFLAGS_APP"); project->values("QMAKE_CXXFLAGS") += project->values("QMAKE_CXXFLAGS_APP"); project->values("QMAKE_LFLAGS") += project->values("QMAKE_LFLAGS_APP"); } else if (project->values("TEMPLATE").contains("lib") && project->isActiveConfig("dll")) { if(!project->isActiveConfig("plugin") || !project->isActiveConfig("plugin_no_share_shlib_cflags")) { project->values("QMAKE_CFLAGS") += project->values("QMAKE_CFLAGS_SHLIB"); project->values("QMAKE_CXXFLAGS") += project->values("QMAKE_CXXFLAGS_SHLIB"); } if (project->isActiveConfig("plugin")) { project->values("QMAKE_CFLAGS") += project->values("QMAKE_CFLAGS_PLUGIN"); project->values("QMAKE_CXXFLAGS") += project->values("QMAKE_CXXFLAGS_PLUGIN"); project->values("QMAKE_LFLAGS") += project->values("QMAKE_LFLAGS_PLUGIN"); } else { project->values("QMAKE_LFLAGS") += project->values("QMAKE_LFLAGS_SHLIB"); } } }