feat: add command line args to add asset and source search paths without overriding all

This commit is contained in:
Jan 2024-09-08 22:07:20 +02:00
parent 8ea9380526
commit 74a54ec981
No known key found for this signature in database
GPG Key ID: 44B581F78FF5C57C

View File

@ -49,6 +49,14 @@ const CommandLineOption* const OPTION_OUTPUT_FOLDER =
.WithParameter("outputFolderPath") .WithParameter("outputFolderPath")
.Build(); .Build();
const CommandLineOption* const OPTION_ADD_ASSET_SEARCH_PATH =
CommandLineOption::Builder::Create()
.WithLongName("add-asset-search-path")
.WithDescription("Adds a search paths used for assets. This does not override the default search paths.")
.WithParameter("assetSearchPathString")
.Reusable()
.Build();
const CommandLineOption* const OPTION_ASSET_SEARCH_PATH = const CommandLineOption* const OPTION_ASSET_SEARCH_PATH =
CommandLineOption::Builder::Create() CommandLineOption::Builder::Create()
.WithLongName("asset-search-path") .WithLongName("asset-search-path")
@ -63,6 +71,14 @@ const CommandLineOption* const OPTION_GDT_SEARCH_PATH =
.WithParameter("gdtSearchPathString") .WithParameter("gdtSearchPathString")
.Build(); .Build();
const CommandLineOption* const OPTION_ADD_SOURCE_SEARCH_PATH =
CommandLineOption::Builder::Create()
.WithLongName("add-source-search-path")
.WithDescription("Adds a search paths used for source files. This does not override the default search paths.")
.WithParameter("sourceSearchPathString")
.Reusable()
.Build();
const CommandLineOption* const OPTION_SOURCE_SEARCH_PATH = const CommandLineOption* const OPTION_SOURCE_SEARCH_PATH =
CommandLineOption::Builder::Create() CommandLineOption::Builder::Create()
.WithLongName("source-search-path") .WithLongName("source-search-path")
@ -100,8 +116,10 @@ const CommandLineOption* const COMMAND_LINE_OPTIONS[]{
OPTION_VERBOSE, OPTION_VERBOSE,
OPTION_BASE_FOLDER, OPTION_BASE_FOLDER,
OPTION_OUTPUT_FOLDER, OPTION_OUTPUT_FOLDER,
OPTION_ADD_ASSET_SEARCH_PATH,
OPTION_ASSET_SEARCH_PATH, OPTION_ASSET_SEARCH_PATH,
OPTION_GDT_SEARCH_PATH, OPTION_GDT_SEARCH_PATH,
OPTION_ADD_SOURCE_SEARCH_PATH,
OPTION_SOURCE_SEARCH_PATH, OPTION_SOURCE_SEARCH_PATH,
OPTION_LOAD, OPTION_LOAD,
OPTION_MENU_PERMISSIVE, OPTION_MENU_PERMISSIVE,
@ -287,6 +305,13 @@ bool LinkerArgs::ParseArgs(const int argc, const char** argv, bool& shouldContin
return false; return false;
} }
// --add-assets-search-path
for (const auto& specifiedValue : m_argument_parser.GetParametersForOption(OPTION_ADD_ASSET_SEARCH_PATH))
{
if (!FileUtils::ParsePathsString(specifiedValue, m_asset_search_paths))
return false;
}
// --gdt-search-path // --gdt-search-path
if (m_argument_parser.IsOptionSpecified(OPTION_GDT_SEARCH_PATH)) if (m_argument_parser.IsOptionSpecified(OPTION_GDT_SEARCH_PATH))
{ {
@ -311,6 +336,13 @@ bool LinkerArgs::ParseArgs(const int argc, const char** argv, bool& shouldContin
return false; return false;
} }
// --add-source-search-path
for (const auto& specifiedValue : m_argument_parser.GetParametersForOption(OPTION_ADD_SOURCE_SEARCH_PATH))
{
if (!FileUtils::ParsePathsString(specifiedValue, m_source_search_paths))
return false;
}
// -l; --load // -l; --load
if (m_argument_parser.IsOptionSpecified(OPTION_LOAD)) if (m_argument_parser.IsOptionSpecified(OPTION_LOAD))
m_zones_to_load = m_argument_parser.GetParametersForOption(OPTION_LOAD); m_zones_to_load = m_argument_parser.GetParametersForOption(OPTION_LOAD);