Skip to content

Commit ca4b04d

Browse files
committed
build: bootstrap MrDocs self-reference run configuration
1 parent 2cfdd19 commit ca4b04d

File tree

2 files changed

+42
-8
lines changed

2 files changed

+42
-8
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,4 @@ docs/ui/build
1616
docs/ui/public
1717
share/mrdocs/libcxx/
1818
share/mrdocs/clang/
19+
docs/modules/reference

bootstrap.py

Lines changed: 41 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -861,6 +861,10 @@ def generate_clion_run_configs(self, configs):
861861
if 'folder' in config:
862862
attrib["folderName"] = config["folder"]
863863
clion_config = ET.SubElement(root, "configuration", attrib)
864+
if 'env' in config:
865+
envs = ET.SubElement(clion_config, "envs")
866+
for key, value in config['env'].items():
867+
ET.SubElement(envs, "env", name=key, value=value)
864868
method = ET.SubElement(clion_config, "method", v="2")
865869
ET.SubElement(method, "option",
866870
name="com.jetbrains.cidr.execution.CidrBuildBeforeRunTaskProvider$BuildBeforeRunTask",
@@ -1045,6 +1049,7 @@ def generate_run_configs(self):
10451049
]
10461050
})
10471051

1052+
num_cores = os.cpu_count() or 1
10481053
self.prompt_option("boost_src_dir")
10491054
if self.options.boost_src_dir and os.path.exists(self.options.boost_src_dir):
10501055
boost_libs = os.path.join(self.options.boost_src_dir, 'libs')
@@ -1057,24 +1062,52 @@ def generate_run_configs(self):
10571062
"name": f"Boost.{lib.title()} Documentation",
10581063
"target": "mrdocs",
10591064
"args": [
1060-
'"../CMakeLists.txt"',
1061-
f'--config="{self.options.boost_src_dir}/libs/{lib}/doc/mrdocs.yml"',
1062-
f'--output="{self.options.boost_src_dir}/libs/{lib}/doc/modules/reference/pages"',
1065+
'../CMakeLists.txt',
1066+
f'--config={self.options.boost_src_dir}/libs/{lib}/doc/mrdocs.yml',
1067+
f'--output={self.options.boost_src_dir}/libs/{lib}/doc/modules/reference/pages',
10631068
f'--generator=adoc',
1064-
f'--addons="{self.options.mrdocs_src_dir}/share/mrdocs/addons"',
1065-
f'--stdlib-includes="{self.options.llvm_install_dir}/include/c++/v1"',
1066-
f'--stdlib-includes="{self.options.llvm_install_dir}/lib/clang/20/include"',
1067-
f'--libc-includes="{self.options.mrdocs_src_dir}/share/mrdocs/headers/libc-stubs"',
1069+
f'--addons={self.options.mrdocs_src_dir}/share/mrdocs/addons',
1070+
f'--stdlib-includes={self.options.llvm_install_dir}/include/c++/v1',
1071+
f'--stdlib-includes={self.options.llvm_install_dir}/lib/clang/20/include',
1072+
f'--libc-includes={self.options.mrdocs_src_dir}/share/mrdocs/headers/libc-stubs',
10681073
f'--tagfile=reference.tag.xml',
10691074
'--multipage=true',
1070-
'--concurrency=32',
1075+
f'--concurrency={num_cores}',
10711076
'--log-level=debug'
10721077
]
10731078
})
10741079
else:
10751080
print(
10761081
f"Warning: Boost source directory '{self.options.boost_src_dir}' does not contain 'libs' directory. Skipping Boost documentation target generation.")
10771082

1083+
# Target to generate the documentation for MrDocs itself
1084+
configs.append({
1085+
"name": f"MrDocs Self-Reference",
1086+
"target": "mrdocs",
1087+
"args": [
1088+
'../CMakeLists.txt',
1089+
f'--config={self.options.mrdocs_src_dir}/docs/mrdocs.yml',
1090+
f'--output={self.options.mrdocs_src_dir}/docs/modules/reference/pages',
1091+
f'--generator=adoc',
1092+
f'--addons={self.options.mrdocs_src_dir}/share/mrdocs/addons',
1093+
f'--stdlib-includes={self.options.llvm_install_dir}/include/c++/v1',
1094+
f'--stdlib-includes={self.options.llvm_install_dir}/lib/clang/20/include',
1095+
f'--libc-includes={self.options.mrdocs_src_dir}/share/mrdocs/headers/libc-stubs',
1096+
f'--tagfile=reference.tag.xml',
1097+
'--multipage=true',
1098+
f'--concurrency={num_cores}',
1099+
'--log-level=debug'
1100+
],
1101+
"env": {
1102+
"LLVM_ROOT": self.options.llvm_install_dir,
1103+
"Clang_ROOT": self.options.llvm_install_dir,
1104+
"duktape_ROOT": self.options.duktape_install_dir,
1105+
"Duktape_ROOT": self.options.duktape_install_dir,
1106+
"libxml2_ROOT": self.options.libxml2_install_dir,
1107+
"LibXml2_ROOT": self.options.libxml2_install_dir
1108+
}
1109+
})
1110+
10781111
# bootstrap.py targets
10791112
configs.append({
10801113
"name": f"MrDocs Bootstrap Help",

0 commit comments

Comments
 (0)