diff --git a/toonz/sources/toonzfarm/tfarm/tfarmtask.cpp b/toonz/sources/toonzfarm/tfarm/tfarmtask.cpp index 9005f92..f4c79a8 100644 --- a/toonz/sources/toonzfarm/tfarm/tfarmtask.cpp +++ b/toonz/sources/toonzfarm/tfarm/tfarmtask.cpp @@ -19,7 +19,15 @@ // MACOSX includes #ifdef _WIN32 #include +#elif MACOSX +#include "tversion.h" +using namespace TVER; +#include // gethostbyname +#include // inet_ntoa #else +// these were included for OSX, i'm not sure if they are required for linux or +// not? leaving them in as linux was building sucessfully already. damies13 - +// 2017-04-15. #include // gethostbyname #include // inet_ntoa #endif @@ -358,16 +366,21 @@ QString getExeName(bool isComposer) { #ifdef _WIN32 return name + ".exe "; +#elif MACOSX + TVER::ToonzVersion tver; + return "\"./" + QString::fromStdString(tver.getAppName()) + "_" + + QString::fromStdString(tver.getAppVersionString()) + + ".app/Contents/MacOS/" + name + "\" "; #else - return "\"./Toonz 7.1.app/Contents/MacOS/" + name + "\" "; + return name; #endif } //------------------------------------------------------------------------------ QString toString(int value, int w, char c = ' ') { - QString s = QString::number(value); - while (s.size() < w) s = c + s; + QString s = QString::number(value); + while (s.size() < w) s= c + s; return s; } @@ -471,8 +484,9 @@ QString TFarmTask::getCommandLine(bool isFarmTask) const { QString cmdline = getExeName(m_isComposerTask); if (!m_taskFilePath.isEmpty()) - cmdline += " \"" + QString::fromStdWString( - TSystem::toUNC(m_taskFilePath).getWideString()) + + cmdline += " \"" + + QString::fromStdWString( + TSystem::toUNC(m_taskFilePath).getWideString()) + "\""; if (m_callerMachineName != "") { @@ -627,8 +641,8 @@ TFarmTaskGroup::TFarmTaskGroup(const QString &id, const QString &name, outputPath, from, to, step, shrink, multimedia, chunksize, threadsIndex, maxTileSizeIndex, Overwrite_Off, false) , m_imp(new Imp()) { - int subCount = 0; - if (chunksize > 0) subCount = tceil((to - from + 1) / (double)chunksize); + int subCount = 0; + if (chunksize > 0) subCount= tceil((to - from + 1) / (double)chunksize); int ra = from; if (subCount > 1) { diff --git a/toonz/sources/toonzfarm/tfarmserver/tfarmserver.cpp b/toonz/sources/toonzfarm/tfarmserver/tfarmserver.cpp index 0b4b62c..c73fd02 100644 --- a/toonz/sources/toonzfarm/tfarmserver/tfarmserver.cpp +++ b/toonz/sources/toonzfarm/tfarmserver/tfarmserver.cpp @@ -378,12 +378,57 @@ private: }; //------------------------------------------------------------------- +QString getExeName(bool isComposer) { + QString name = isComposer ? "tcomposer" : "tcleanup"; + +#ifdef _WIN32 + return name + ".exe "; +#elif MACOSX + TVER::ToonzVersion tver; + return "\"./" + QString::fromStdString(tver.getAppName()) + "_" + + QString::fromStdString(tver.getAppVersionString()) + + ".app/Contents/MacOS/" + name + "\" "; +#else + return name; +#endif +} + +//------------------------------------------------------------------------------ void Task::run() { + QString cmdline; + + // =========== + // remap commandLine to local executable + + QStringList l = m_cmdline.split(" "); + QString appName = l.at(0); + // m_log->info(appName); + if (appName.contains("tcomposer") || appName.contains("tcleanup")) { + bool m_isComposerTask = appName.contains("tcomposer"); + // m_log->info(QString::number(m_isComposerTask)); + appName = getExeName(m_isComposerTask); + // m_log->info(appName); + + int i = 0; + cmdline = appName; + // m_log->info(cmdline); + for (i = 1; i < l.size(); i++) { + cmdline += " "; + cmdline += l.at(i); + // m_log->info(cmdline); + } + // m_log->info("remap commandLine to local executable"); + // m_log->info(appName); + } else { + cmdline = m_cmdline; + } + + // =========== QString logMsg("Starting task at "); logMsg += QDateTime::currentDateTime().toString(); logMsg += "\n"; - logMsg += "\"" + m_cmdline + "\""; + logMsg += "\"" + cmdline + "\""; logMsg += "\n\n"; m_log->info(logMsg); @@ -394,12 +439,10 @@ void Task::run() { if (m_cmdline.contains("runcasm")) service.mountDisks(); #endif - QString cmdline; - if (m_cmdline.contains(".bat")) - cmdline = "cmd /C " + m_cmdline; + cmdline = "cmd /C " + cmdline; else - cmdline = m_cmdline; + cmdline = cmdline; #ifdef LEVO else { // metto da parte il primo token della command line che e' il nome