LYN-2537 AssetBundler updates (#426)

* LYN-2537 Updated the AssetBundler code to looks for the AssetSeedList
files within the Assets/Engine directory
Updated the MissingDependencyScanner GetXMLDependenciesFile functions to
use the Assets/Engine directory as well

Also fixed the MissingDependencyScanner to properly located dependency
xml files within gem directories

* Adding back input argument validation for the AssetBundler command options.

Also added an application_options settings registry file that contains the list of valid command options for the ComponentApplication

* Adding missing end of file newline for applications_options.setreg

* Fixed the AssetBundler help output for the bundleSeed command
This commit is contained in:
lumberyard-employee-dm
2021-05-03 20:09:37 -05:00
committed by GitHub
parent 15c2203e01
commit bcbe1bfef7
12 changed files with 127 additions and 95 deletions
@@ -15,6 +15,7 @@
#include <source/utils/GUIApplicationManager.h>
#include <source/utils/utils.h>
#include <AzCore/Utils/Utils.h>
#include <AzFramework/IO/LocalFileIO.h>
#include <AzFramework/StringFunc/StringFunc.h>
#include <AzQtComponents/Utilities/DesktopUtilities.h>
@@ -232,8 +233,8 @@ namespace AssetBundler
for (const QJsonValue scanPath : m_watchedFiles + m_watchedFolders)
{
AZStd::string scanFilePathStr = scanPath.toString().toUtf8().data();
AzFramework::StringFunc::Path::ConstructFull(GetCachedEngineRoot().c_str(), scanFilePathStr.c_str(), scanFilePathStr);
auto scanFilePathStr = (AZ::IO::Path(AZStd::string_view{ AZ::Utils::GetEnginePath() })
/ scanPath.toString().toUtf8().data()).LexicallyNormal();
// Check whether the file has already been watched
// Get absolute file paths via QFileInfo to keep consistency in the letter case
@@ -263,8 +264,8 @@ namespace AssetBundler
for (auto itr = scanPaths.begin(); itr != scanPaths.end(); ++itr)
{
QJsonValueRef scanPathValueRef = *itr;
AZStd::string scanPath = scanPathValueRef.toString().toUtf8().data();
AzFramework::StringFunc::Path::ConstructFull(GetCachedEngineRoot().c_str(), scanPath.c_str(), scanPath);
auto scanPath = (AZ::IO::Path(AZStd::string_view{ AZ::Utils::GetEnginePath() })
/ scanPathValueRef.toString().toUtf8().data()).LexicallyNormal();
// Check whether the file is being watched
// Get absolute file paths via QFileInfo to keep consistency in the letter case
@@ -316,13 +317,8 @@ namespace AssetBundler
for (const QJsonValue scanPath : scanPaths[AssetBundlingFileTypes[fileType]].toArray())
{
AZStd::string absoluteScanPath = scanPath.toString().toUtf8().data();
AZStd::replace(absoluteScanPath.begin(), absoluteScanPath.end(), AZ_WRONG_FILESYSTEM_SEPARATOR, AZ_CORRECT_FILESYSTEM_SEPARATOR);
if (AzFramework::StringFunc::Path::IsRelative(absoluteScanPath.c_str()))
{
AzFramework::StringFunc::Path::ConstructFull(GetCachedEngineRoot().c_str(), absoluteScanPath.c_str(), absoluteScanPath);
}
auto absoluteScanPath = (AZ::IO::Path(AZStd::string_view{ AZ::Utils::GetEnginePath() })
/ scanPath.toString().toUtf8().data()).LexicallyNormal();
if (AZ::IO::FileIOBase::GetInstance()->IsDirectory(absoluteScanPath.c_str()))
{
@@ -138,7 +138,7 @@ namespace AssetBundler
m_watchedFolders.insert(m_guiApplicationManager->GetSeedListsFolder().c_str());
// Get the list of default Seed List files
m_filePathToGemNameMap = AssetBundler::GetDefaultSeedListFiles(GetCachedEngineRoot().c_str(), m_guiApplicationManager->GetCurrentProjectName(),
m_filePathToGemNameMap = AssetBundler::GetDefaultSeedListFiles(AZStd::string_view{ AZ::Utils::GetEnginePath() }, m_guiApplicationManager->GetCurrentProjectName(),
m_guiApplicationManager->GetGemInfoList(), m_guiApplicationManager->GetEnabledPlatforms());
// Get the list of default Seeds that are not stored in a Seed List file on-disk