Sourcetrail is a free and open-source cross-platform source explorer that helps you get productive on unfamiliar source code. It is:
- free
- working offline
- operating on Linux, Windows (and macOS)
- supporting C, C++ and Java
- offering an SDK (SourcetrailDB) to write custom language extensions
Binary releases are available for sponsors.
Sourcetrail is licensed under the GNU General Public License Version 3.
Important: This project was archived by the original autors and maintainers of Sourcetrail by the end of 2021. If you want to know more about this decision, read more in the original README.md
This is a fork of the Sourcetrail project and I want to keep this project at least buildable.
There are 2 ways to build the project:
- With vcpkg provided packages (Vcpkg build)
- With the system provided packages (System build)
It is important to clone the repository with the submodules and the symlinks:
git clone https://github.com/petermost/Sourcetrail.git --recurse-submodules --config core.symlinks=true
and get the updates with:
git pull --recurse-submodules
- In order to build the java_indexer additional software must be installed which are not provided by vcpkg:
- Linux: Because Qt6 is build from source, additional packages are needed. Install these packages with
script/install-qt6-dependencies.sh
. - Windows: The build must be done in a "x64 Native Tools Command Prompt for VS 2022".
Prepare the build:
$ cd Sourcetrail
$ cmake --preset vcpkg-ninja-release
Note that the initial compilation of the vcpkg packages (especially LLVM) will take a long time! Depending on your machine, it probably will take about 2 to 3 hours!
Build:
$ cd ../build/vcpkg-ninja-release
$ cmake --build .
To compile it under (K)ubuntu 24.10, "Oracular Oriole", install the following packages:
General packages: cmake, ninja-build, libboost1.83-all-dev, qt6-base-dev, qt6-svg-dev, libsqlite3-dev, libtinyxml-dev
C++ packages: clang-19, libclang-19-dev
Java packages: maven, openjdk-23-jdk
Unit test packages: catch2, libgtest-dev
Prepare the build:
$ cd Sourcetrail
$ cmake --preset system-ninja-release
Build:
$ cd ../build/system-ninja-release
$ cmake --build .
It's probably also possible to build with pre-installed libraries, like the original build instructions describe, but I didn't/don't test it.
Name | System | Vcpkg |
---|---|---|
Clang | 19.1.1 | 18.1.6 |
Qt | 6.6.2 | 6.8.1 |
Boost | 1.83.0 | 1.86.0 |
SQLite3 | 3.46.1 | 3.47.2 |
TinyXML | 2.6.2 | 2.6.2 |
OpenJDK | 23.0.1 | 23.0.1 |
Catch2 | 3.4.0 | 3.8.0 |
GTest | 1.15.2 | 1.15.2 |