Update emscripten/version.h whenever we update emscripten-version.txt

Fixes: https://github.com/emscripten-core/emscripten/issues/26226
diff --git a/emsdk.py b/emsdk.py
index f1dba36..9456278 100644
--- a/emsdk.py
+++ b/emsdk.py
@@ -2179,11 +2179,24 @@
     # (If this is not an actual release, but some other build, then we do not
     # write anything.)
     if hasattr(self, 'emscripten_releases_hash'):
-      emscripten_version_file_path = os.path.join(to_native_path(self.expand_vars(self.activated_path)), 'emscripten-version.txt')
+      emscripten_root = to_native_path(self.expand_vars(self.activated_path))
+      emscripten_version_file_path = os.path.join(emscripten_root, 'emscripten-version.txt')
       version = get_emscripten_release_version(self.emscripten_releases_hash)
       if version:
         with open(emscripten_version_file_path, 'w') as f:
           f.write('"%s"\n' % version)
+        emscripten_version_header = os.path.join(emscripten_root, 'cache/sysroot/include/emscripten/version.h')
+        if os.path.exists(emscripten_version_header):
+          header = open(emscripten_version_header).read()
+          major, minor, tiny = version.split('.')
+          header = re.sub(r'define __EMSCRIPTEN_MAJOR__ \d*', f'define __EMSCRIPTEN_MAJOR__ {major}', header)
+          header = re.sub(r'define __EMSCRIPTEN_MINOR__ \d*', f'define __EMSCRIPTEN_MINOR__ {minor}', header)
+          header = re.sub(r'define __EMSCRIPTEN_TINY__ \d*', f'define __EMSCRIPTEN_TINY__ {tiny}', header)
+          header = re.sub(r'define __EMSCRIPTEN_major__ \d*', f'define __EMSCRIPTEN_major__ {major}', header)
+          header = re.sub(r'define __EMSCRIPTEN_minor__ \d*', f'define __EMSCRIPTEN_minor__ {minor}', header)
+          header = re.sub(r'define __EMSCRIPTEN_tiny__ \d*', f'define __EMSCRIPTEN_tiny__ {tiny}', header)
+          with open(emscripten_version_header, 'w') as f:
+            f.write(header)
 
     print(f"Done installing tool '{self}'.")