diff --git a/src/Linker/LinkerArgs.cpp b/src/Linker/LinkerArgs.cpp index f3e0e034..4617dfbb 100644 --- a/src/Linker/LinkerArgs.cpp +++ b/src/Linker/LinkerArgs.cpp @@ -49,6 +49,14 @@ const CommandLineOption* const OPTION_OUTPUT_FOLDER = .WithParameter("outputFolderPath") .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 = CommandLineOption::Builder::Create() .WithLongName("asset-search-path") @@ -63,6 +71,14 @@ const CommandLineOption* const OPTION_GDT_SEARCH_PATH = .WithParameter("gdtSearchPathString") .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 = CommandLineOption::Builder::Create() .WithLongName("source-search-path") @@ -100,8 +116,10 @@ const CommandLineOption* const COMMAND_LINE_OPTIONS[]{ OPTION_VERBOSE, OPTION_BASE_FOLDER, OPTION_OUTPUT_FOLDER, + OPTION_ADD_ASSET_SEARCH_PATH, OPTION_ASSET_SEARCH_PATH, OPTION_GDT_SEARCH_PATH, + OPTION_ADD_SOURCE_SEARCH_PATH, OPTION_SOURCE_SEARCH_PATH, OPTION_LOAD, OPTION_MENU_PERMISSIVE, @@ -287,6 +305,13 @@ bool LinkerArgs::ParseArgs(const int argc, const char** argv, bool& shouldContin 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 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; } + // --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 if (m_argument_parser.IsOptionSpecified(OPTION_LOAD)) m_zones_to_load = m_argument_parser.GetParametersForOption(OPTION_LOAD);