-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFilesTypesInfo.cpp
More file actions
103 lines (83 loc) · 3.33 KB
/
Copy pathFilesTypesInfo.cpp
File metadata and controls
103 lines (83 loc) · 3.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#include "runcpp2/Data/FilesTypesInfo.hpp"
#include "runcpp2/ParseUtil.hpp"
#include "ssLogger/ssLog.hpp"
bool runcpp2::Data::FilesTypesInfo::ParseYAML_Node(ryml::ConstNodeRef& node)
{
ssLOG_FUNC_DEBUG();
INTERNAL_RUNCPP2_SAFE_START();
std::vector<NodeRequirement> requirements =
{
NodeRequirement("ObjectLinkFile", ryml::NodeType_e::MAP, true, false),
NodeRequirement("SharedLinkFile", ryml::NodeType_e::MAP, true, false),
NodeRequirement("SharedLibraryFile", ryml::NodeType_e::MAP, true, false),
NodeRequirement("StaticLinkFile", ryml::NodeType_e::MAP, true, false),
NodeRequirement("DebugSymbolFile", ryml::NodeType_e::MAP, false, false),
};
if(!CheckNodeRequirements(node, requirements))
{
ssLOG_ERROR("FilesTypesInfo: Failed to meet requirements");
return false;
}
ryml::ConstNodeRef objectLinkFileNode = node["ObjectLinkFile"];
if(!ObjectLinkFile.ParseYAML_Node(objectLinkFileNode))
{
ssLOG_ERROR("Compiler profile: ObjectLinkFile is invalid");
return false;
}
ryml::ConstNodeRef sharedLinkFileNode = node["SharedLinkFile"];
if(!SharedLinkFile.ParseYAML_Node(sharedLinkFileNode))
{
ssLOG_ERROR("Compiler profile: SharedLinkFile is invalid");
return false;
}
ryml::ConstNodeRef sharedLibraryFileNode = node["SharedLibraryFile"];
if(!SharedLibraryFile.ParseYAML_Node(sharedLibraryFileNode))
{
ssLOG_ERROR("Compiler profile: SharedLibraryFile is invalid");
return false;
}
ryml::ConstNodeRef staticLinkFileNode = node["StaticLinkFile"];
if(!StaticLinkFile.ParseYAML_Node(staticLinkFileNode))
{
ssLOG_ERROR("Compiler profile: StaticLinkFile is invalid");
return false;
}
if(ExistAndHasChild(node, "DebugSymbolFile"))
{
ryml::ConstNodeRef debugSymbolFileNode = node["DebugSymbolFile"];
if(!DebugSymbolFile.ParseYAML_Node(debugSymbolFileNode))
{
ssLOG_ERROR("Compiler profile: DebugSymbolFile is invalid");
return false;
}
}
return true;
INTERNAL_RUNCPP2_SAFE_CATCH_RETURN(false);
}
std::string runcpp2::Data::FilesTypesInfo::ToString(std::string indentation) const
{
ssLOG_FUNC_DEBUG();
std::string out;
out += indentation + "ObjectLinkFile:\n";
out += ObjectLinkFile.ToString(indentation + " ");
out += indentation + "SharedLinkFile:\n";
out += SharedLinkFile.ToString(indentation + " ");
out += indentation + "SharedLibraryFile:\n";
out += SharedLibraryFile.ToString(indentation + " ");
out += indentation + "StaticLinkFile:\n";
out += StaticLinkFile.ToString(indentation + " ");
if(!DebugSymbolFile.Prefix.empty() || !DebugSymbolFile.Extension.empty())
{
out += indentation + "DebugSymbolFile:\n";
out += DebugSymbolFile.ToString(indentation + " ");
}
return out;
}
bool runcpp2::Data::FilesTypesInfo::Equals(const FilesTypesInfo& other) const
{
return ObjectLinkFile.Equals(other.ObjectLinkFile) &&
SharedLinkFile.Equals(other.SharedLinkFile) &&
SharedLibraryFile.Equals(other.SharedLibraryFile) &&
StaticLinkFile.Equals(other.StaticLinkFile) &&
DebugSymbolFile.Equals(other.DebugSymbolFile);
}