From 147de6e2405e91f8685d04133b475a011122ad8a Mon Sep 17 00:00:00 2001 From: Jan Date: Sun, 8 Sep 2024 21:42:49 +0200 Subject: [PATCH 1/3] feat: add zone_raw/?project? as default source directory --- src/Linker/LinkerArgs.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Linker/LinkerArgs.h b/src/Linker/LinkerArgs.h index 8b465fa2..a36c0d33 100644 --- a/src/Linker/LinkerArgs.h +++ b/src/Linker/LinkerArgs.h @@ -20,7 +20,7 @@ public: static constexpr auto DEFAULT_OUTPUT_FOLDER = "?base?/zone_out/?project?"; static constexpr auto DEFAULT_ASSET_SEARCH_PATH = "?bin?/raw/?game?;?base?/raw;?base?/raw/?game?;?base?/zone_raw/?project?"; static constexpr auto DEFAULT_GDT_SEARCH_PATH = "?base?/source_data;?base?/zone_raw/?project?/source_data"; - static constexpr auto DEFAULT_SOURCE_SEARCH_PATH = "?base?/zone_source;?base?/zone_raw/?project?/zone_source"; + static constexpr auto DEFAULT_SOURCE_SEARCH_PATH = "?base?/zone_source;?base?/zone_raw/?project?;?base?/zone_raw/?project?/zone_source"; LinkerArgs(); bool ParseArgs(int argc, const char** argv, bool& shouldContinue); From 8ea9380526dd35b7dd8153f561246ceef840eb85 Mon Sep 17 00:00:00 2001 From: Jan Date: Sun, 8 Sep 2024 21:43:45 +0200 Subject: [PATCH 2/3] chore: fix command line description for linker gdt and source args --- src/Linker/LinkerArgs.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Linker/LinkerArgs.cpp b/src/Linker/LinkerArgs.cpp index 1513b99b..f3e0e034 100644 --- a/src/Linker/LinkerArgs.cpp +++ b/src/Linker/LinkerArgs.cpp @@ -59,14 +59,14 @@ const CommandLineOption* const OPTION_ASSET_SEARCH_PATH = const CommandLineOption* const OPTION_GDT_SEARCH_PATH = CommandLineOption::Builder::Create() .WithLongName("gdt-search-path") - .WithDescription("Specifies the search paths used for assets. Defaults to \"" + std::string(LinkerArgs::DEFAULT_GDT_SEARCH_PATH) + "\".") + .WithDescription("Specifies the search paths used for gdt files. Defaults to \"" + std::string(LinkerArgs::DEFAULT_GDT_SEARCH_PATH) + "\".") .WithParameter("gdtSearchPathString") .Build(); const CommandLineOption* const OPTION_SOURCE_SEARCH_PATH = CommandLineOption::Builder::Create() .WithLongName("source-search-path") - .WithDescription("Specifies the search paths used for assets. Defaults to \"" + std::string(LinkerArgs::DEFAULT_SOURCE_SEARCH_PATH) + "\".") + .WithDescription("Specifies the search paths used for source files. Defaults to \"" + std::string(LinkerArgs::DEFAULT_SOURCE_SEARCH_PATH) + "\".") .WithParameter("sourceSearchPathString") .Build(); From 74a54ec98131d250d662d93ba5f8fa7530d4caee Mon Sep 17 00:00:00 2001 From: Jan Date: Sun, 8 Sep 2024 22:07:20 +0200 Subject: [PATCH 3/3] feat: add command line args to add asset and source search paths without overriding all --- src/Linker/LinkerArgs.cpp | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) 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);