@@ -17,6 +17,7 @@ bool runcpp2::Data::ScriptInfo::ParseYAML_Node(ryml::ConstNodeRef& node)
1717 NodeRequirement (" OverrideLinkFlags" , ryml::NodeType_e::MAP, false , true ),
1818 NodeRequirement (" OtherFilesToBeCompiled" , ryml::NodeType_e::MAP, false , true ),
1919 NodeRequirement (" Dependencies" , ryml::NodeType_e::SEQ, false , true ),
20+ NodeRequirement (" Defines" , ryml::NodeType_e::MAP, false , true )
2021 };
2122
2223 if (!CheckNodeRequirements (node, requirements))
@@ -120,6 +121,25 @@ bool runcpp2::Data::ScriptInfo::ParseYAML_Node(ryml::ConstNodeRef& node)
120121 }
121122 }
122123
124+ if (ExistAndHasChild (node, " Defines" ))
125+ {
126+ ryml::ConstNodeRef definesNode = node[" Defines" ];
127+
128+ for (int i = 0 ; i < definesNode.num_children (); ++i)
129+ {
130+ PlatformName platform = GetKey (definesNode[i]);
131+ ProfilesDefines profilesDefines;
132+ ryml::ConstNodeRef currentDefinesNode = definesNode[i];
133+
134+ if (!profilesDefines.ParseYAML_Node (currentDefinesNode))
135+ {
136+ ssLOG_ERROR (" ScriptInfo: Failed to parse Defines." );
137+ return false ;
138+ }
139+ Defines[platform] = profilesDefines;
140+ }
141+ }
142+
123143 return true ;
124144
125145 INTERNAL_RUNCPP2_SAFE_CATCH_RETURN (false );
@@ -166,5 +186,12 @@ std::string runcpp2::Data::ScriptInfo::ToString(std::string indentation) const
166186 for (int i = 0 ; i < Dependencies.size (); ++i)
167187 out += Dependencies[i].ToString (indentation + " " );
168188
189+ out += indentation + " Defines:\n " ;
190+ for (auto it = Defines.begin (); it != Defines.end (); ++it)
191+ {
192+ out += indentation + " " + it->first + " :\n " ;
193+ out += it->second .ToString (indentation + " " );
194+ }
195+
169196 return out;
170197}
0 commit comments