summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2023-03-27 18:39:44 -0700
committerGitHub <noreply@github.com>2023-03-28 09:39:44 +0800
commit84dc318576e19ef1f86f6b012ba911c4b63f788d (patch)
treed7c70603509eebfeeb203ec527b71ce92eae59c1 /tools
parentca1f93a916ce6b984cba402c8d3710988f2b618f (diff)
Don't touch output file if content did not change. (#2738)
Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/slang-lookup-generator/lookup-generator-main.cpp11
1 files changed, 4 insertions, 7 deletions
diff --git a/tools/slang-lookup-generator/lookup-generator-main.cpp b/tools/slang-lookup-generator/lookup-generator-main.cpp
index 882563767..796275e4a 100644
--- a/tools/slang-lookup-generator/lookup-generator-main.cpp
+++ b/tools/slang-lookup-generator/lookup-generator-main.cpp
@@ -210,13 +210,8 @@ void writeHashFile(
const List<String> includes,
const HashParams& hashParams)
{
- FILE* f = nullptr;
- fopen_s(&f, outCppPath, "wb");
- if (!f)
- {
- return;
- }
- FileWriter writer(f, WriterFlags(0));
+ StringBuilder sb;
+ StringWriter writer(&sb, WriterFlags(0));
WriterHelper w(&writer);
w.print("// Hash function for %s\n", valueType);
@@ -299,6 +294,8 @@ void writeHashFile(
w.print("\n");
w.print("}\n");
+
+ File::writeAllTextIfChanged(outCppPath, sb.getUnownedSlice());
}
int main(int argc, const char* const* argv)