Add OutputName to Build Settings for game output exe/package renaming

#1174
This commit is contained in:
Wojtek Figat
2023-11-16 10:29:58 +01:00
parent 6af6edb4fe
commit 640f380237
10 changed files with 69 additions and 15 deletions

View File

@@ -295,7 +295,7 @@ bool AndroidPlatformTools::OnPostProcess(CookingData& data)
// Copy result package
const String apk = data.OriginalOutputPath / (distributionPackage ? TEXT("app/build/outputs/apk/release/app-release-unsigned.apk") : TEXT("app/build/outputs/apk/debug/app-debug.apk"));
const String outputApk = data.OriginalOutputPath / gameSettings->ProductName + TEXT(".apk");
const String outputApk = data.OriginalOutputPath / EditorUtilities::GetOutputName() + TEXT(".apk");
if (FileSystem::CopyFile(outputApk, apk))
{
LOG(Error, "Failed to copy package from {0} to {1}", apk, outputApk);

View File

@@ -42,11 +42,11 @@ bool WindowsPlatformTools::OnDeployBinaries(CookingData& data)
{
const auto platformSettings = WindowsPlatformSettings::Get();
// Apply executable icon
Array<String> files;
FileSystem::DirectoryGetFiles(files, data.NativeCodeOutputPath, TEXT("*.exe"), DirectorySearchOption::TopDirectoryOnly);
if (files.HasItems())
{
// Apply executable icon
TextureData iconData;
if (!EditorUtilities::GetApplicationImage(platformSettings->OverrideIcon, iconData))
{
@@ -56,11 +56,31 @@ bool WindowsPlatformTools::OnDeployBinaries(CookingData& data)
return true;
}
}
// Rename app
const String newName = EditorUtilities::GetOutputName();
if (newName != StringUtils::GetFileNameWithoutExtension(files[0]))
{
if (FileSystem::MoveFile(data.NativeCodeOutputPath / newName + TEXT(".exe"), files[0], true))
{
data.Error(TEXT("Failed to change output executable name."));
return true;
}
}
}
return false;
}
void WindowsPlatformTools::OnBuildStarted(CookingData& data)
{
// Remove old executable
Array<String> files;
FileSystem::DirectoryGetFiles(files, data.NativeCodeOutputPath, TEXT("*.exe"), DirectorySearchOption::TopDirectoryOnly);
for (auto& file : files)
FileSystem::DeleteFile(file);
}
void WindowsPlatformTools::OnRun(CookingData& data, String& executableFile, String& commandLineFormat, String& workingDir)
{
// Pick the first executable file

View File

@@ -31,6 +31,7 @@ public:
ArchitectureType GetArchitecture() const override;
bool UseSystemDotnet() const override;
bool OnDeployBinaries(CookingData& data) override;
void OnBuildStarted(CookingData& data) override;
void OnRun(CookingData& data, String& executableFile, String& commandLineFormat, String& workingDir) override;
};