mirror of
https://github.com/decompme/decomp.me.git
synced 2026-02-24 23:40:03 -06:00
* Initial format * action * git subrepo pull --force backend/asm_differ subrepo: subdir: "backend/asm_differ" merged: "ee239a2b" upstream: origin: "https://github.com/simonlindholm/asm-differ" branch: "main" commit: "ee239a2b" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * git subrepo pull --force backend/mips_to_c subrepo: subdir: "backend/mips_to_c" merged: "6704d61f" upstream: origin: "https://github.com/matt-kempster/mips_to_c" branch: "master" commit: "6704d61f" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * vscode * fix * .
27 lines
908 B
Python
27 lines
908 B
Python
import os
|
|
import subprocess
|
|
import tempfile
|
|
from typing import List
|
|
|
|
|
|
def c_file_to_context(root_dir: str, in_file: str, cpp_flags: List[str]) -> str:
|
|
in_file = os.path.relpath(in_file, root_dir)
|
|
cpp_command = ["gcc", "-E", "-P", "-dM", *cpp_flags, in_file]
|
|
cpp_command2 = ["gcc", "-E", "-P", *cpp_flags, in_file]
|
|
|
|
with tempfile.NamedTemporaryFile(suffix=".c") as tmp:
|
|
stock_macros = subprocess.check_output(
|
|
["gcc", "-E", "-P", "-dM", tmp.name], cwd=root_dir, encoding="utf-8"
|
|
)
|
|
|
|
out_text = ""
|
|
out_text += subprocess.check_output(cpp_command, cwd=root_dir, encoding="utf-8")
|
|
out_text += subprocess.check_output(cpp_command2, cwd=root_dir, encoding="utf-8")
|
|
|
|
if not out_text:
|
|
raise Exception("cpp output is empty")
|
|
|
|
for line in stock_macros.strip().splitlines():
|
|
out_text = out_text.replace(line + "\n", "")
|
|
return out_text
|