# btrfs subvolume create ~/public_html/code/llvm/
# docker run -t -v ~/public_html/code/llvm/:/output/llvm -v /tmp/images:/images -v $PWD:/scripts:ro codebrowser /bin/bash /scripts/update-llvm.sh
MODULE=llvm
OUTPUTDIR=/output/$MODULE
WOBOQ_PATH=/woboq_codebrowser
#Python 3 need to be the default
mkdir $HOME/bin
ln -s /usr/bin/python3 $HOME/bin/python
export PATH=$HOME/bin:$PATH
LLVMDIR=$HOME/llvm
cd $HOME
git clone --depth 1 https://github.com/llvm/llvm-project llvm
rm -r $OUTPUTDIR
cd $LLVMDIR
rm -r llvm_build
REV=`git describe --always`
PROJECTS=`ls -d */ | sed "s|^\(.*\)/$|-p \\1:$PWD/\\1:$REV |g"| tr -d '\n'`
echo $PROJECTS
mkdir llvm_build
cd llvm_build
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCMAKE_C_COMPILER=/llvm/bin/clang -DCMAKE_CXX_COMPILER=/llvm/bin/clang++ $LLVMDIR/llvm -DLLVM_ENABLE_PROJECTS=all
make -j4 clang-tablegen-targets
cd $LLVMDIR
mkdir -p $OUTPUTDIR
time $WOBOQ_PATH/generator/codebrowser_generator -a -b llvm_build/ -o $OUTPUTDIR $PROJECTS
#skip the clang/test/ because it is likely to cause a crash
time find -type f | grep -v "clang/test/" | egrep -i "\\.(c$|s$|cpp|cc|cxx|qml|qdoc|m$|mm|h$|hpp|hxx|hh|td)" | \
xargs $WOBOQ_PATH/generator/codebrowser_generator -b llvm_build/ -o $OUTPUTDIR $PROJECTS
date
$WOBOQ_PATH/indexgenerator/codebrowser_indexgenerator $OUTPUTDIR
touch $OUTPUTDIR/refs/index.html $OUTPUTDIR/fnSearch/index.html
mksquashfs $OUTPUTDIR /images/$MODULE.sqs -no-xattrs -all-root -no-progress -noappend