Fixed: Implement launch of executables under OS X

This commit is contained in:
kervala 2015-12-15 14:06:49 +01:00
parent 9f558e4d24
commit 6cdc7fb900

View file

@ -728,7 +728,30 @@ bool launchProgram(const std::string &programName, const std::string &arguments,
CloseHandle( pi.hThread ); CloseHandle( pi.hThread );
} }
#elif defined(NL_OS_UNIX) #elif defined(NL_OS_MAC)
std::string command;
if (CFile::getExtension(programName) == "app")
{
// we need to open bundles with "open" command
command = NLMISC::toString("open \"%s\"", programName.c_str());
}
else
{
command = programName;
}
// append arguments if any
if (!arguments.empty())
{
command += NLMISC::toString(" --args %s", arguments.c_str());
}
int res = system(command.c_str());
if (res && log)
nlwarning ("LAUNCH: Failed launched '%s' with arg '%s' return code %d", programName.c_str(), arguments.c_str(), res);
#else
static bool firstLaunchProgram = true; static bool firstLaunchProgram = true;
if (firstLaunchProgram) if (firstLaunchProgram)
@ -811,9 +834,6 @@ bool launchProgram(const std::string &programName, const std::string &arguments,
return true; return true;
} }
#else
if (log)
nlwarning ("LAUNCH: launchProgram() not implemented");
#endif #endif
return false; return false;