6.2 KiB
Installation
Distribution packages
Ubuntu
# Currently supported Ubuntu versions are Focal, Jammy and Lunar
sudo add-apt-repository ppa:bkryza/clang-uml
sudo apt update
sudo apt install clang-uml
Fedora
# Fedora 36
wget https://github.com/bkryza/clang-uml/releases/download/0.4.0/clang-uml-0.4.0-1.fc36.x86_64.rpm
sudo dnf install ./clang-uml-0.4.0-1.fc36.x86_64.rpm
# Fedora 37
wget https://github.com/bkryza/clang-uml/releases/download/0.4.0/clang-uml-0.4.0-1.fc37.x86_64.rpm
sudo dnf install ./clang-uml-0.4.0-1.fc37.x86_64.rpm
# Fedora 38
wget https://github.com/bkryza/clang-uml/releases/download/0.4.0/clang-uml-0.4.0-1.fc38.x86_64.rpm
sudo dnf install ./clang-uml-0.4.0-1.fc38.x86_64.rpm
Conda
conda config --add channels conda-forge
conda config --set channel_priority strict
conda install -c bkryza/label/clang-uml clang-uml
Windows
Download and run the latest Windows installer from Releases page.
Building from source
Linux
First make sure that you have the following dependencies installed:
# Ubuntu (clang version will vary depending on Ubuntu version)
apt install ccache cmake libyaml-cpp-dev clang-12 libclang-12-dev libclang-cpp12-dev
Then proceed with building the sources:
git clone https://github.com/bkryza/clang-uml
cd clang-uml
# Please note that top level Makefile is just a convenience wrapper for CMake
make release
release/src/clang-uml --help
# To build using a specific installed version of LLVM use:
LLVM_VERSION=14 make release
# Optionally, to install in default prefix
make install
# or to install in custom prefix
make install DESTDIR=/opt/clang-uml
# or simply
export PATH=$PATH:$PWD/release
macos
brew install ccache cmake llvm yaml-cpp
export CC=/usr/local/opt/llvm/bin/clang
export CCX=/usr/local/opt/llvm/bin/clang++
LLVM_VERSION=14 make release
Windows
Visual Studio native build
These steps present how to build and use clang-uml natively using Visual Studio only.
First, install the following dependencies manually:
All the following steps should be invoked in
Developer PowerShell for VS.
Create installation directory for clang-uml and its dependencies:
# This is where clang-uml binary and its dependencies will be installed after build
# If you change this path, adapt all consecutive steps
mkdir C:\clang-uml
# This directory will be removed after build
mkdir C:\clang-uml-tmp
cd C:\clang-uml-tmp
Build and install yaml-cpp:
git clone https://github.com/jbeder/yaml-cpp
cd yaml-cpp
git checkout yaml-cpp-0.7.0
cd ..
cmake -S .\yaml-cpp\ -B .\yaml-cpp-build\ -DCMAKE_INSTALL_PREFIX="C:\clang-uml" -Thost=x64
cd yaml-cpp-build
msbuild .\INSTALL.vcxproj -maxcpucount /p:Configuration=Release
Build and install LLVM:
pip install psutil
# Update the LLVM branch if necessary
git clone --branch llvmorg-15.0.6 --depth 1 https://github.com/llvm/llvm-project.git llvm
cmake -S .\llvm\llvm -B llvm-build -DLLVM_ENABLE_PROJECTS=clang -DCMAKE_INSTALL_PREFIX="C:\clang-uml" -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD=X86 -Thost=x64
cd llvm-build
msbuild .\INSTALL.vcxproj -maxcpucount /p:Configuration=Release
Build and install clang-uml:
git clone https://github.com/bkryza/clang-uml
cmake -S .\clang-uml\ -B .\clang-uml-build\ -DCMAKE_INSTALL_PREFIX="C:\clang-uml" -DCMAKE_PREFIX_PATH="C:\clang-uml" -DBUILD_TESTS=OFF -Thost=x64
cd clang-uml-build
msbuild .\INSTALL.vcxproj -maxcpucount /p:Configuration=Release
Check if clang-uml works:
cd C:\clang-uml
bin\clang-uml.exe --version
It should produce something like:
clang-uml 0.4.0
Copyright (C) 2021-2023 Bartek Kryza <bkryza@gmail.com>
Built against LLVM/Clang libraries version: 15.0.6
Using LLVM/Clang libraries version: clang version 15.0.6 (https://github.com/llvm/llvm-project.git 088f33605d8a61ff519c580a71b1dd57d16a03f8)
Finally, remove the temporary build directory:
rm -r C:\clang-uml-tmp
Shell autocompletion scripts
For Linux and macos, Bash and Zsh autocomplete scripts are available, and
if clang-uml is installed from a distribution package they should work
out of the box. When installing clang-uml from sources the files need to be
installed manually. The completion scripts are available in directory:
Bash
The clang-uml.bash-completion script can be either directly loaded to the
current Bash session using:
source clang-uml.bash-completion
or the script can be copied to the /etc/bash_completion.d on Linux or
to /usr/local/etc/bash_completion.d on macos with Homebrew.
sudo cp clang-uml.bash-completion /etc/bash_completion.d/clang-uml
Make sure autocompletion is enabled in your ~/.bashrc or ~/.bash_profile:
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
On OSX you might need to install bash-completion using Homebrew:
brew install bash-completion
Make sure to the following lines are uncommented in the ~/.bashrc:
if [ -f $(brew --prefix)/etc/bash_completion ]; then
. $(brew --prefix)/etc/bash_completion
fi
Zsh
In Zsh, the _clang-uml Zsh completion file must be copied to one of the
folders under $FPATH variable, and the Zsh terminal should be reopened.
For testing, _clang-uml completion function can be updated without
restarting Zsh:
# Copy _clang-uml somewhere under $FPATH
$ unfunction _clang-uml
$ autoload -U _clang-uml