From 1dc209f3b40259a5ff2ebdc3081e533b9fbc7b52 Mon Sep 17 00:00:00 2001 From: Mikko Rasa Date: Wed, 28 Dec 2022 15:47:10 +0200 Subject: [PATCH] Move the VS project and solution generators to the MSVC plugin --- plugins/base/baseplugin.cpp | 8 -------- plugins/base/basetools.cpp | 4 ---- plugins/msvc/microsofttools.cpp | 5 +++++ plugins/msvc/msvcplugin.cpp | 14 ++++++++++++++ plugins/msvc/msvcplugin.h | 1 + plugins/{base => msvc}/vcxprojectfile.cpp | 0 plugins/{base => msvc}/vcxprojectfile.h | 0 plugins/{base => msvc}/vcxprojectgenerator.cpp | 0 plugins/{base => msvc}/vcxprojectgenerator.h | 0 plugins/{base => msvc}/vssolutionfile.cpp | 0 plugins/{base => msvc}/vssolutionfile.h | 0 plugins/{base => msvc}/vssolutiongenerator.cpp | 0 plugins/{base => msvc}/vssolutiongenerator.h | 0 13 files changed, 20 insertions(+), 12 deletions(-) rename plugins/{base => msvc}/vcxprojectfile.cpp (100%) rename plugins/{base => msvc}/vcxprojectfile.h (100%) rename plugins/{base => msvc}/vcxprojectgenerator.cpp (100%) rename plugins/{base => msvc}/vcxprojectgenerator.h (100%) rename plugins/{base => msvc}/vssolutionfile.cpp (100%) rename plugins/{base => msvc}/vssolutionfile.h (100%) rename plugins/{base => msvc}/vssolutiongenerator.cpp (100%) rename plugins/{base => msvc}/vssolutiongenerator.h (100%) diff --git a/plugins/base/baseplugin.cpp b/plugins/base/baseplugin.cpp index b43c851..96ce2fa 100644 --- a/plugins/base/baseplugin.cpp +++ b/plugins/base/baseplugin.cpp @@ -4,8 +4,6 @@ #include "basetools.h" #include "compilecommandsjson.h" #include "pkgconfigfile.h" -#include "vcxprojectfile.h" -#include "vssolutionfile.h" void BasePlugin::add_tools(Toolchain &toolchain, const Architecture &) const { @@ -22,12 +20,6 @@ void BasePlugin::create_targets(SourcePackage &spkg) const builder.get_build_graph().get_target("install")->add_dependency(*builder.get_toolchain().get_tool("CP").create_target(*pc)); } - if(native_arch.get_system()=="windows") - { - new VcxProjectFile(builder, spkg); - new VsSolutionFile(builder, spkg); - } - new CompileCommandsJson(builder, spkg); } diff --git a/plugins/base/basetools.cpp b/plugins/base/basetools.cpp index d7502a8..2ad3e3a 100644 --- a/plugins/base/basetools.cpp +++ b/plugins/base/basetools.cpp @@ -3,15 +3,11 @@ #include "compilecommandsgenerator.h" #include "pkgconfiggenerator.h" #include "tar.h" -#include "vcxprojectgenerator.h" -#include "vssolutiongenerator.h" BaseTools::BaseTools(Builder &builder) { add_tool(new Copy(builder)); add_tool(new Tar(builder)); add_tool(new PkgConfigGenerator(builder)); - add_tool(new VcxProjectGenerator(builder)); - add_tool(new VsSolutionGenerator(builder)); add_tool(new CompileCommandsGenerator(builder)); } diff --git a/plugins/msvc/microsofttools.cpp b/plugins/msvc/microsofttools.cpp index 0370f45..03905b6 100644 --- a/plugins/msvc/microsofttools.cpp +++ b/plugins/msvc/microsofttools.cpp @@ -10,6 +10,8 @@ #include "msvcarchiver.h" #include "msvccompiler.h" #include "msvclinker.h" +#include "vcxprojectgenerator.h" +#include "vssolutiongenerator.h" using namespace std; using namespace Msp; @@ -25,6 +27,9 @@ MicrosoftTools::MicrosoftTools(Builder &builder, const Architecture &arch): add_tool(new MsvcCompiler(builder, arch, "CXX", *this)); add_tool(new MsvcLinker(builder, arch, *this)); add_tool(new MsvcArchiver(builder, arch, *this)); + + add_tool(new VcxProjectGenerator(builder)); + add_tool(new VsSolutionGenerator(builder)); } void MicrosoftTools::find_vc_bin_dir(Builder &builder, const Architecture &arch) diff --git a/plugins/msvc/msvcplugin.cpp b/plugins/msvc/msvcplugin.cpp index 1a4fe7b..9ebf24a 100644 --- a/plugins/msvc/msvcplugin.cpp +++ b/plugins/msvc/msvcplugin.cpp @@ -1,6 +1,9 @@ #include +#include #include "microsofttools.h" #include "msvcplugin.h" +#include "vcxprojectfile.h" +#include "vssolutionfile.h" void MsvcPlugin::add_tools(Toolchain &toolchain, const Architecture &arch) const { @@ -8,6 +11,17 @@ void MsvcPlugin::add_tools(Toolchain &toolchain, const Architecture &arch) const toolchain.add_toolchain(new MicrosoftTools(builder, arch)); } +void MsvcPlugin::create_targets(SourcePackage &spkg) const +{ + const Architecture &native_arch = builder.get_native_arch(); + + if(native_arch.get_system()=="windows") + { + new VcxProjectFile(builder, spkg); + new VsSolutionFile(builder, spkg); + } +} + extern "C" Plugin *create_plugin(Builder &builder) diff --git a/plugins/msvc/msvcplugin.h b/plugins/msvc/msvcplugin.h index 78190d3..c47b7d9 100644 --- a/plugins/msvc/msvcplugin.h +++ b/plugins/msvc/msvcplugin.h @@ -9,6 +9,7 @@ public: MsvcPlugin(Builder &b): Plugin(b) { } void add_tools(Toolchain &, const Architecture &) const override; + void create_targets(SourcePackage &) const override; }; #endif diff --git a/plugins/base/vcxprojectfile.cpp b/plugins/msvc/vcxprojectfile.cpp similarity index 100% rename from plugins/base/vcxprojectfile.cpp rename to plugins/msvc/vcxprojectfile.cpp diff --git a/plugins/base/vcxprojectfile.h b/plugins/msvc/vcxprojectfile.h similarity index 100% rename from plugins/base/vcxprojectfile.h rename to plugins/msvc/vcxprojectfile.h diff --git a/plugins/base/vcxprojectgenerator.cpp b/plugins/msvc/vcxprojectgenerator.cpp similarity index 100% rename from plugins/base/vcxprojectgenerator.cpp rename to plugins/msvc/vcxprojectgenerator.cpp diff --git a/plugins/base/vcxprojectgenerator.h b/plugins/msvc/vcxprojectgenerator.h similarity index 100% rename from plugins/base/vcxprojectgenerator.h rename to plugins/msvc/vcxprojectgenerator.h diff --git a/plugins/base/vssolutionfile.cpp b/plugins/msvc/vssolutionfile.cpp similarity index 100% rename from plugins/base/vssolutionfile.cpp rename to plugins/msvc/vssolutionfile.cpp diff --git a/plugins/base/vssolutionfile.h b/plugins/msvc/vssolutionfile.h similarity index 100% rename from plugins/base/vssolutionfile.h rename to plugins/msvc/vssolutionfile.h diff --git a/plugins/base/vssolutiongenerator.cpp b/plugins/msvc/vssolutiongenerator.cpp similarity index 100% rename from plugins/base/vssolutiongenerator.cpp rename to plugins/msvc/vssolutiongenerator.cpp diff --git a/plugins/base/vssolutiongenerator.h b/plugins/msvc/vssolutiongenerator.h similarity index 100% rename from plugins/base/vssolutiongenerator.h rename to plugins/msvc/vssolutiongenerator.h -- 2.43.0