diff --git a/src/main.cpp b/src/main.cpp index 07a7b2e..fc2c29d 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -111,6 +111,7 @@ void add_tasks() .add_task("modorganizer-installer_quick") .add_task("modorganizer-installer_fomod") .add_task("modorganizer-installer_fomod_csharp") + .add_task("modorganizer-installer_omod", mo::nuget) .add_task("modorganizer-installer_ncc") .add_task("modorganizer-bsa_extractor") .add_task("modorganizer-plugin_python") diff --git a/src/tasks/modorganizer.cpp b/src/tasks/modorganizer.cpp index c104a1e..01bf060 100644 --- a/src/tasks/modorganizer.cpp +++ b/src/tasks/modorganizer.cpp @@ -54,6 +54,11 @@ bool modorganizer::is_gamebryo_plugin() const return is_set(flags_, gamebryo); } +bool modorganizer::is_nuget_plugin() const +{ + return is_set(flags_, nuget); +} + fs::path modorganizer::source_path() { return {}; @@ -146,6 +151,15 @@ void modorganizer::do_build_and_install() run_tool(create_this_cmake_tool()); }); + // until https://gitlab.kitware.com/cmake/cmake/-/issues/20646 is resolved, + // we need a manual way of running the msbuild -t:restore + if (is_nuget_plugin()) { + instrument([&] + { + run_tool(create_this_msbuild_tool().targets({ "restore" })); + }); + } + instrument([&] { run_tool(create_this_msbuild_tool()); diff --git a/src/tasks/tasks.h b/src/tasks/tasks.h index a3aae74..0f3c159 100644 --- a/src/tasks/tasks.h +++ b/src/tasks/tasks.h @@ -288,7 +288,8 @@ public: enum flags { noflags = 0x00, - gamebryo = 0x01 + gamebryo = 0x01, + nuget = 0x02, }; modorganizer(std::string name, flags f=noflags); @@ -306,6 +307,7 @@ public: bool is_super() const override; bool is_gamebryo_plugin() const; + bool is_nuget_plugin() const; url git_url() const; std::string org() const;