natvis support in build system + some natvis
This commit is contained in:
1 parent
2fd675cf11
commit
1367146503
5 files changed
+137
-6
No files matched your search
@@ -1221,6 +1221,14 @@ static void GenerateProject(const char* projectName, const char* projectDir, con
|
||||
CollectFiles(projectDir, NULL, ".inl", srcFiles);
|
||||
}
|
||||
|
||||
FilePathList* natvisFiles = CreateFilePathList();
|
||||
if (DirectoryExists("Natvis")) {
|
||||
CollectFiles("Natvis", NULL, ".natvis", natvisFiles);
|
||||
}
|
||||
if (FileExists("External\\imgui\\misc\\debuggers\\imgui.natvis")) {
|
||||
FilePathListAdd(natvisFiles, "External\\imgui\\misc\\debuggers\\imgui.natvis");
|
||||
}
|
||||
|
||||
char* buf = (char*)ArenaPush(4 * 1024 * 1024);
|
||||
int offset = 0;
|
||||
|
||||
@@ -1315,6 +1323,14 @@ static void GenerateProject(const char* projectName, const char* projectDir, con
|
||||
}
|
||||
offset += sprintf_s(buf + offset, (4 * 1024 * 1024) - offset, " </ItemGroup>\n");
|
||||
|
||||
if (natvisFiles->Count > 0) {
|
||||
offset += sprintf_s(buf + offset, (4 * 1024 * 1024) - offset, " <ItemGroup>\n");
|
||||
for (int i = 0; i < natvisFiles->Count; i++) {
|
||||
offset += sprintf_s(buf + offset, (4 * 1024 * 1024) - offset, " <Natvis Include=\"..\\%s\" />\n", natvisFiles->Paths[i]);
|
||||
}
|
||||
offset += sprintf_s(buf + offset, (4 * 1024 * 1024) - offset, " </ItemGroup>\n");
|
||||
}
|
||||
|
||||
offset += sprintf_s(buf + offset, (4 * 1024 * 1024) - offset,
|
||||
" <Import Project=\"$(VCTargetsPath)\\Microsoft.Cpp.targets\" />\n"
|
||||
" <ImportGroup Label=\"ExtensionTargets\">\n"
|
||||
@@ -1373,6 +1389,16 @@ static void GenerateProject(const char* projectName, const char* projectDir, con
|
||||
}
|
||||
}
|
||||
|
||||
if (natvisFiles->Count > 0) {
|
||||
bool found = false;
|
||||
for (int f = 0; f < filterCount; f++) {
|
||||
if (_stricmp(filters[f], "Natvis") == 0) { found = true; break; }
|
||||
}
|
||||
if (!found && filterCount < 512) {
|
||||
strcpy_s(filters[filterCount++], 256, "Natvis");
|
||||
}
|
||||
}
|
||||
|
||||
char* filterBuf = (char*)ArenaPush(4 * 1024 * 1024);
|
||||
int filterOffset = 0;
|
||||
filterOffset += sprintf_s(filterBuf + filterOffset, (4 * 1024 * 1024) - filterOffset,
|
||||
@@ -1416,6 +1442,15 @@ static void GenerateProject(const char* projectName, const char* projectDir, con
|
||||
" <%s Include=\"..\\%s\" />\n", type, path);
|
||||
}
|
||||
}
|
||||
|
||||
if (natvisFiles->Count > 0) {
|
||||
for (int i = 0; i < natvisFiles->Count; i++) {
|
||||
filterOffset += sprintf_s(filterBuf + filterOffset, (4 * 1024 * 1024) - filterOffset,
|
||||
" <Natvis Include=\"..\\%s\">\n"
|
||||
" <Filter>Natvis</Filter>\n"
|
||||
" </Natvis>\n", natvisFiles->Paths[i]);
|
||||
}
|
||||
}
|
||||
filterOffset += sprintf_s(filterBuf + filterOffset, (4 * 1024 * 1024) - filterOffset,
|
||||
" </ItemGroup>\n</Project>\n");
|
||||
|
||||
|
||||
Reference in new issue
Block a user