Ref T103, executable file path moved to CDirectoryUtils::executableFilePath

This commit is contained in:
Klaus Basan
2017-07-06 23:56:11 +02:00
committed by Mathew Sutcliffe
parent 3245ff4ef4
commit caf358401f
5 changed files with 34 additions and 20 deletions

View File

@@ -50,6 +50,13 @@ namespace BlackConfig
return s;
}
bool CBuildConfig::isKnownExecutableName(const QString &executable)
{
return executable == CBuildConfig::swiftCoreExecutableName() ||
executable == CBuildConfig::swiftDataExecutableName() ||
executable == CBuildConfig::swiftGuiExecutableName();
}
bool CBuildConfig::isRunningOnWindowsNtPlatform()
{
#ifdef Q_OS_WIN

View File

@@ -19,7 +19,7 @@
namespace BlackConfig
{
//! Build configuration
//! Build configuration, also used to secure VATSIM key
class CBuildConfig
{
public:
@@ -101,6 +101,9 @@ namespace BlackConfig
//! Executable name for swift data, no(!) appendix
static const QString &swiftDataExecutableName();
//! Known executable
static bool isKnownExecutableName(const QString &executable);
//! End of lifetime
static const QDateTime &getEol(); // defined in buildconfig_gen.cpp.in

View File

@@ -45,6 +45,23 @@ namespace BlackMisc
return pDir;
}
QString CDirectoryUtils::executableFilePath(const QString &executable)
{
Q_ASSERT_X(!executable.isEmpty(), Q_FUNC_INFO, "Missing executable file path");
Q_ASSERT_X(CBuildConfig::isKnownExecutableName(executable), Q_FUNC_INFO, "Unknown exectuable");
QString s = CFileUtils::appendFilePaths(CDirectoryUtils::binDirectory(), executable);
if (CBuildConfig::isRunningOnMacOSXPlatform() && CDirectoryUtils::isMacOSXAppBundle())
{
s += QLatin1String(".app/Contents/MacOS/") + executable;
}
else if (CBuildConfig::isRunningOnWindowsNtPlatform())
{
s += QLatin1String(".exe");
}
return s;
}
QString normalizedApplicationDirectoryImpl()
{
QString appDir = CDirectoryUtils::binDirectory();

View File

@@ -34,6 +34,9 @@ namespace BlackMisc
//! Plugins directory
static const QString &pluginsDirectory();
//! The executable file path
static QString executableFilePath(const QString &executable);
//! swift application data directory, contains 0..n swift installation directories
static const QString &applicationDataDirectory();

View File

@@ -265,13 +265,7 @@ void CSwiftLauncher::startSwiftCore()
// I set this for debug purpose only
m_executableArgs = args;
m_executable.clear();
m_executable = CFileUtils::appendFilePaths(CDirectoryUtils::binDirectory(), CBuildConfig::swiftCoreExecutableName());
if (CBuildConfig::isRunningOnMacOSXPlatform())
{
m_executable += QLatin1String(".app/Contents/MacOS/");
m_executable += CBuildConfig::swiftCoreExecutableName();
}
m_executable = CDirectoryUtils::executableFilePath(CBuildConfig::swiftCoreExecutableName());
CLogMessage(this).info(this->getCmdLine());
// start
@@ -281,24 +275,14 @@ void CSwiftLauncher::startSwiftCore()
void CSwiftLauncher::setSwiftDataExecutable()
{
m_executable.clear();
m_executable = CFileUtils::appendFilePaths(CDirectoryUtils::binDirectory(), CBuildConfig::swiftDataExecutableName());
if (CBuildConfig::isRunningOnMacOSXPlatform())
{
m_executable += QLatin1String(".app/Contents/MacOS/");
m_executable += CBuildConfig::swiftDataExecutableName();
}
m_executable = CDirectoryUtils::executableFilePath(CBuildConfig::swiftDataExecutableName());
m_executableArgs.clear();
}
bool CSwiftLauncher::setSwiftGuiExecutable()
{
m_executable.clear();
m_executable = CFileUtils::appendFilePaths(CDirectoryUtils::binDirectory(), CBuildConfig::swiftGuiExecutableName());
if (CBuildConfig::isRunningOnMacOSXPlatform())
{
m_executable += QLatin1String(".app/Contents/MacOS/");
m_executable += CBuildConfig::swiftGuiExecutableName();
}
m_executable = CDirectoryUtils::executableFilePath(CBuildConfig::swiftGuiExecutableName());
QStringList args
{