@@ -1678,6 +1678,17 @@ def install_mrdocs(self):
16781678 else :
16791679 print (f"\n MrDocs 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