Skip to content

Commit f936346

Browse files
authored
fix: bootstrap uses lastest clang include directory
1 parent e354410 commit f936346

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

bootstrap.py

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1678,6 +1678,17 @@ def install_mrdocs(self):
16781678
else:
16791679
print(f"\nMrDocs has been successfully installed in {self.options.mrdocs_install_dir}.\n")
16801680

1681+
@lru_cache(maxsize=1)
1682+
def find_latest_clang_include_dir(self):
1683+
parent = os.path.join(self.options.llvm_install_dir, "lib", "clang")
1684+
subdirs = [d for d in os.listdir(parent) if os.path.isdir(os.path.join(parent, d))]
1685+
numeric_subdirs = [d for d in subdirs if d.isdigit()]
1686+
if not numeric_subdirs:
1687+
raise RuntimeError(f"No numeric directories found in {parent}")
1688+
latest_numeric_subdir = max(numeric_subdirs, key=lambda d: int(d))
1689+
1690+
return os.path.join(parent, latest_numeric_subdir, "include")
1691+
16811692
def generate_clion_run_configs(self, configs):
16821693
import xml.etree.ElementTree as ET
16831694

@@ -2210,7 +2221,7 @@ def generate_run_configs(self):
22102221
f'--generator={generator}',
22112222
f'--addons={os.path.join(self.options.mrdocs_src_dir, "share", "mrdocs", "addons")}',
22122223
f'--stdlib-includes={os.path.join(self.options.llvm_install_dir, "include", "c++", "v1")}',
2213-
f'--stdlib-includes={os.path.join(self.options.llvm_install_dir, "lib", "clang", "20", "include")}',
2224+
f'--stdlib-includes={self.find_latest_clang_include_dir()}',
22142225
f'--libc-includes={os.path.join(self.options.mrdocs_src_dir, "share", "mrdocs", "headers", "libc-stubs")}',
22152226
'--log-level=warn'
22162227
]
@@ -2236,7 +2247,7 @@ def generate_run_configs(self):
22362247
f'--generator=adoc',
22372248
f'--addons={os.path.join(self.options.mrdocs_src_dir, "share", "mrdocs", "addons")}',
22382249
f'--stdlib-includes={os.path.join(self.options.llvm_install_dir, "include", "c++", "v1")}',
2239-
f'--stdlib-includes={os.path.join(self.options.llvm_install_dir, "lib", "clang", "20", "include")}',
2250+
f'--stdlib-includes={self.find_latest_clang_include_dir()}',
22402251
f'--libc-includes={os.path.join(self.options.mrdocs_src_dir, "share", "mrdocs", "headers", "libc-stubs")}',
22412252
f'--tagfile=reference.tag.xml',
22422253
'--multipage=true',
@@ -2260,7 +2271,7 @@ def generate_run_configs(self):
22602271
f'--generator=adoc',
22612272
f'--addons={os.path.join(self.options.mrdocs_src_dir, "share", "mrdocs", "addons")}',
22622273
f'--stdlib-includes={os.path.join(self.options.llvm_install_dir, "include", "c++", "v1")}',
2263-
f'--stdlib-includes={os.path.join(self.options.llvm_install_dir, "lib", "clang", "20", "include")}',
2274+
f'--stdlib-includes={self.find_latest_clang_include_dir()}',
22642275
f'--libc-includes={os.path.join(self.options.mrdocs_src_dir, "share", "mrdocs", "headers", "libc-stubs")}',
22652276
f'--tagfile=reference.tag.xml',
22662277
'--multipage=true',

0 commit comments

Comments
 (0)