Skip to content

Commit 68f5b99

Browse files
authored
Merge pull request #1312 from Lastique/feature/fix_make_qbk
Fix `doxygen_xml2qbk` execution from `make_qbk.py`
2 parents 6c17350 + e922b89 commit 68f5b99

File tree

2 files changed

+32
-3
lines changed

2 files changed

+32
-3
lines changed

doc/index/make_qbk.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,24 @@
1515

1616
import os, sys, shutil
1717

18-
cmd = "doxygen_xml2qbk"
18+
# Resolves the path to an executable and returns an absolute path to it
19+
def resolve_executable(orig_path):
20+
resolved_path = shutil.which(orig_path)
21+
if resolved_path is None:
22+
raise Exception("%s is not found or not executable" % orig_path)
23+
return os.path.abspath(resolved_path)
24+
25+
if 'DOXYGEN_XML2QBK' in os.environ:
26+
doxygen_xml2qbk_cmd = os.environ['DOXYGEN_XML2QBK']
27+
elif '--doxygen-xml2qbk' in sys.argv:
28+
doxygen_xml2qbk_cmd = sys.argv[sys.argv.index('--doxygen-xml2qbk')+1]
29+
else:
30+
doxygen_xml2qbk_cmd = 'doxygen_xml2qbk'
31+
doxygen_xml2qbk_cmd = resolve_executable(doxygen_xml2qbk_cmd)
32+
os.environ['DOXYGEN_XML2QBK'] = doxygen_xml2qbk_cmd
33+
doxygen_xml2qbk_cmd = '"' + doxygen_xml2qbk_cmd + '"'
34+
35+
cmd = doxygen_xml2qbk_cmd
1936
cmd = cmd + " --xml xml/%s.xml"
2037
cmd = cmd + " --start_include boost/"
2138
cmd = cmd + " --output_style alt"

doc/make_qbk.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,31 @@
2020
os.chdir(os.path.abspath(script_dir))
2121
print("Boost.Geometry is making .qbk files in %s" % os.getcwd())
2222

23+
# Resolves the path to an executable and returns an absolute path to it
24+
def resolve_executable(orig_path):
25+
resolved_path = shutil.which(orig_path)
26+
if resolved_path is None:
27+
raise Exception("%s is not found or not executable" % orig_path)
28+
return os.path.abspath(resolved_path)
29+
30+
# Resolve paths to executables early so that commands are executable from arbitrary locations
2331
if 'DOXYGEN' in os.environ:
2432
doxygen_cmd = os.environ['DOXYGEN']
2533
else:
2634
doxygen_cmd = 'doxygen'
35+
doxygen_cmd = resolve_executable(doxygen_cmd)
36+
os.environ['DOXYGEN'] = doxygen_cmd
37+
doxygen_cmd = '"' + doxygen_cmd + '"'
2738

2839
if 'DOXYGEN_XML2QBK' in os.environ:
2940
doxygen_xml2qbk_cmd = os.environ['DOXYGEN_XML2QBK']
3041
elif '--doxygen-xml2qbk' in sys.argv:
3142
doxygen_xml2qbk_cmd = sys.argv[sys.argv.index('--doxygen-xml2qbk')+1]
3243
else:
3344
doxygen_xml2qbk_cmd = 'doxygen_xml2qbk'
34-
os.environ['PATH'] = os.environ['PATH']+os.pathsep+os.path.dirname(doxygen_xml2qbk_cmd)
35-
doxygen_xml2qbk_cmd = os.path.basename(doxygen_xml2qbk_cmd)
45+
doxygen_xml2qbk_cmd = resolve_executable(doxygen_xml2qbk_cmd)
46+
os.environ['DOXYGEN_XML2QBK'] = doxygen_xml2qbk_cmd
47+
doxygen_xml2qbk_cmd = '"' + doxygen_xml2qbk_cmd + '"'
3648

3749
cmd = doxygen_xml2qbk_cmd
3850
cmd = cmd + " --xml doxy/doxygen_output/xml/%s.xml"

0 commit comments

Comments
 (0)