Skip to content
Snippets Groups Projects
Commit 2f5bda81 authored by Filippo Cremonese's avatar Filippo Cremonese
Browse files

Fixed llvm-documentation component

parent 80f08779
No related branches found
No related tags found
No related merge requests found
......@@ -2,3 +2,5 @@ build/
root/
sources/
.orchestra/
__pycache__/
*.py[cod]
......@@ -3,16 +3,18 @@
#@yaml/text-templated-strings
---
#@ def _llvm_documentation_component():
repository: llvm-project
builds:
default:
depencencies:
- llvm
configure: |
rm -rf "$BUILD_DIR"
mkdir -p "$BUILD_DIR"
clone llvm-project "$BUILD_DIR"
cp -r "$SOURCE_DIR" "$BUILD_DIR"
# mkdir -p "$BUILD_DIR"
# clone llvm-project "$BUILD_DIR"
sed 's|FILE_PATTERNS|#FILE_PATTERNS|' -i "$BUILD_DIR/*/docs/doxygen.cfg.in"
sed 's|FILE_PATTERNS|#FILE_PATTERNS|' -i "$BUILD_DIR"/*/docs/doxygen.cfg.in
mkdir -p "$BUILD_DIR/build"
......@@ -32,28 +34,34 @@ builds:
fi
cd $BUILD_DIR/build/docs/doxygen/html
sed -i 's|$$$$(XCODE_INSTALL)/usr/bin/docsetutil|'$(PWD)'/support/docsetutil|' Makefile
sed -i 's|XCODE_INSTALL="$$$$(shell xcode-select -print-path)"||' Makefile
sed -i 's|$(XCODE_INSTALL)/usr/bin/docsetutil|'$ORCHESTRA'/helpers/docsetutil|' Makefile
sed -i 's|XCODE_INSTALL="$(shell xcode-select -print-path)"||' Makefile
sed -i 's|<string>doxygen</string>|<string>llvm</string>|' Info.plist
(@= make @)
sed -i -s 's/ inherit / /' llvm.docset/Contents/Resources/Documents/*.html
$(call download-file,$(1)/build/docs/doxygen/html/llvm.docset/Contents/Resources/Documents,https://opensource.apple.com/source/lldb/lldb-310.2.36/www/cpp_reference/html,dynsections.js)
cd $(1)/build/tools/clang/docs/doxygen/html
sed -i 's|$$$$(XCODE_INSTALL)/usr/bin/docsetutil|'$(PWD)'/support/docsetutil|' Makefile
sed -i 's|XCODE_INSTALL="$$$$(shell xcode-select -print-path)"||' Makefile
download_file.sh "$BUILD_DIR/build/docs/doxygen/html/llvm.docset/Contents/Resources/Documents" \
"https://opensource.apple.com/source/lldb/lldb-310.2.36/www/cpp_reference/html" \
"dynsections.js"
cd $BUILD_DIR/build/tools/clang/docs/doxygen/html
sed -i 's|$(XCODE_INSTALL)/usr/bin/docsetutil|'$ORCHESTRA'/helpers/docsetutil|' Makefile
sed -i 's|XCODE_INSTALL="$(shell xcode-select -print-path)"||' Makefile
sed -i 's|<string>doxygen</string>|<string>clang</string>|' Info.plist
(@= make @)
sed -i -s 's/ inherit / /' clang.docset/Contents/Resources/Documents/*.html
$(call download-file,$(1)/build/tools/clang/docs/doxygen/html/clang.docset/Contents/Resources/Documents,https://opensource.apple.com/source/lldb/lldb-310.2.36/www/cpp_reference/html,dynsections.js)
download_file.sh "$BUILD_DIR/build/tools/clang/docs/doxygen/html/clang.docset/Contents/Resources/Documents" \
"https://opensource.apple.com/source/lldb/lldb-310.2.36/www/cpp_reference/html" \
"dynsections.js"
mkdir -p $$$$DESTDIR$(INSTALL_PATH)/share/doc/llvm
cp -ar $(1)/build/docs/doxygen/html/llvm.docset $$$$DESTDIR$(INSTALL_PATH)/share/doc/llvm
mkdir -p "${DESTDIR}${ORCHESTRA_ROOT}/share/doc/llvm"
cp -ar "$BUILD_DIR/build/docs/doxygen/html/llvm.docset" "${DESTDIR}${ORCHESTRA_ROOT}/share/doc/llvm"
mkdir -p $$$$DESTDIR$(INSTALL_PATH)/share/doc/clang
cp -ar $(1)/build/tools/clang/docs/doxygen/html/clang.docset $$$$DESTDIR$(INSTALL_PATH)/share/doc/clang
mkdir -p "${DESTDIR}${ORCHESTRA_ROOT}/share/doc/clang"
cp -ar "$BUILD_DIR/build/tools/clang/docs/doxygen/html/clang.docset" "${DESTDIR}${ORCHESTRA_ROOT}/share/doc/clang"
#@ end
---
......
#!/usr/bin/env python3
import sys
import os
import subprocess
from xml.dom.minidom import parse, Element
import sqlite3
def main():
assert len(sys.argv) == 3
assert sys.argv[1] == "index"
base_path = sys.argv[2]
resources_path = os.path.join(base_path, "Contents", "Resources")
print("Loading Tokens.xml")
xml_root = parse(os.path.join(resources_path, "Tokens.xml"))
print("Extracting data")
data = set()
index = -1
for token in filter(lambda x: type(x) is Element,
xml_root.childNodes[0].childNodes):
name = token.getElementsByTagName("Name")[0].childNodes[0].nodeValue
item_type = ""
element_type = token.getElementsByTagName("Type")
if element_type:
item_type = element_type[0].childNodes[0].nodeValue
path = token.getElementsByTagName("Path")[0].childNodes[0].nodeValue
anchor = token.getElementsByTagName("Anchor")
if len(anchor) != 0:
anchor = anchor[0].childNodes[0].nodeValue
path += "#" + anchor
index += 1
data.add((index, name, item_type, path))
if name.startswith("llvm::"):
index += 1
data.add((index, name.replace("llvm::", ""), item_type, path))
print("Creating docSet.dsidx")
index_path = os.path.join(resources_path, "docSet.dsidx")
if os.path.exists(index_path):
os.remove(index_path)
connection = sqlite3.connect(index_path)
c = connection.cursor()
c.execute("""CREATE TABLE searchIndex(id INTEGER PRIMARY KEY,
name TEXT,
type TEXT,
path TEXT)""")
print("Inserting {} elements".format(len(data)))
c.executemany("""INSERT INTO searchIndex(id, name, type, path)
VALUES(?, ?, ?, ?)""", data);
print("Checking we inserted everything")
c.execute("SELECT COUNT(*) FROM searchIndex")
assert c.fetchall()[0][0] == len(data)
print("Committing and closing database")
connection.commit()
c.close()
print("All done")
if __name__ == "__main__":
main()
#!/bin/bash
# $(1): destination
# $(2): path
# $(3): file name
echo "Downloading $3 from $2"
mkdir -p "$SOURCE_ARCHIVES"
trap "rm -f -- '$SOURCE_ARCHIVES/$3'" EXIT
if [ -e "$SOURCE_ARCHIVES/$3" ]; then
echo "$3 already cached"
else
curl -L "$2/$3" > "$SOURCE_ARCHIVES/$3"
fi
trap - EXIT;
echo "Copying $3 into $1"
cp "$SOURCE_ARCHIVES/$3" "$1/$3"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment