]> git.tdb.fi Git - builder.git/blobdiff - plugins/msvc/msvcplugin.cpp
Add visibility decorations to the library and plugins
[builder.git] / plugins / msvc / msvcplugin.cpp
index 1a4fe7b54aca98c28f666a4d092d0af51683fc99..bf1e26e3ba33990f560a6aa1ea7caa3f3f755785 100644 (file)
@@ -1,6 +1,9 @@
 #include <msp/builder/architecture.h>
+#include <msp/builder/builder.h>
 #include "microsofttools.h"
 #include "msvcplugin.h"
+#include "vcxprojectfile.h"
+#include "vssolutionfile.h"
 
 void MsvcPlugin::add_tools(Toolchain &toolchain, const Architecture &arch) const
 {
@@ -8,9 +11,28 @@ 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);
+       }
+}
+
+
+#if defined(_WIN32)
+#define MSVCTOOLS_API __declspec(dllexport)
+#elif defined(__GNUC__)
+#define MSVCTOOLS_API __attribute__((visibility("default")))
+#else
+#define MSVCTOOLS_API
+#endif
 
 extern "C"
-Plugin *create_plugin(Builder &builder)
+MSVCTOOLS_API Plugin *create_plugin(Builder &builder)
 {
        return new MsvcPlugin(builder);
 }