11#pragma once
2+ #include " ../pugixml/pugixml.hpp" // pugi::xml_node
23#include " EnumReflect.h"
34#include " CppReflect.h"
45
@@ -87,7 +88,7 @@ DECLARE_ENUM(EItemType, "",
8788 Natvis
8889);
8990
90- class SPM_DLLEXPORT ProjectItemGeneralConf : ReflectClassT<ProjectItemGeneralConf>
91+ class SPM_DLLEXPORT ProjectItemGeneralConf : public ReflectClassT<ProjectItemGeneralConf>
9192{
9293public:
9394 REFLECTABLE (ProjectItemGeneralConf,
@@ -137,7 +138,7 @@ DECLARE_ENUM(EKeyword, "projecttype_",
137138 projecttype_GradlePackage
138139);
139140
140- class SPM_DLLEXPORT ProjectGlobalConf : ReflectClassT<ProjectGlobalConf>
141+ class SPM_DLLEXPORT ProjectGlobalConf : public ReflectClassT<ProjectGlobalConf>
141142{
142143public:
143144 REFLECTABLE (ProjectGlobalConf,
@@ -239,11 +240,21 @@ DECLARE_ENUM(EGenerateDebugInformation, "debuginfo_",
239240);
240241
241242
242- class SPM_DLLEXPORT BuildToolProperties
243+ class SPM_DLLEXPORT PlatformConfigurationProperties
243244{
245+ public:
246+ // So can safely delete by base pointer.
247+ virtual ~PlatformConfigurationProperties () { }
248+
249+ // Configuration name / platform of specific configuration
250+ std::wstring configurationName;
251+ std::wstring platform;
252+
253+ pugi::xml_node node;
254+
244255};
245256
246- class SPM_DLLEXPORT CustomBuildToolProperties : BuildToolProperties, ReflectClassT<CustomBuildToolProperties>
257+ class SPM_DLLEXPORT CustomBuildToolProperties : public PlatformConfigurationProperties, public ReflectClassT<CustomBuildToolProperties>
247258{
248259public:
249260 REFLECTABLE (CustomBuildToolProperties,
@@ -263,15 +274,15 @@ class SPM_DLLEXPORT CustomBuildToolProperties : BuildToolProperties, ReflectClas
263274
264275
265276
266- class SPM_DLLEXPORT LinkerSystemConf: ReflectClassT<LinkerSystemConf>
277+ class SPM_DLLEXPORT LinkerSystemConf: public ReflectClassT<LinkerSystemConf>
267278{
268279public:
269280 REFLECTABLE (LinkerSystemConf,
270281 (ESubSystem)SubSystem
271282 );
272283};
273284
274- class SPM_DLLEXPORT LinkerDebuggingConf : ReflectClassT<LinkerDebuggingConf>
285+ class SPM_DLLEXPORT LinkerDebuggingConf : public ReflectClassT<LinkerDebuggingConf>
275286{
276287public:
277288 REFLECTABLE (LinkerDebuggingConf,
0 commit comments