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
- Supporting C/C++ and Java
- Operating on Linux, Windows (and macOS)
- Offering a SDK (SourcetrailDB) to write custom language extensions
Sourcetrail is licensed under the GNU General Public License Version 3.
This project was archived by the original autors and maintainers of Sourcetrail by the end of 2021. You can read more about this decision in this blog entry.
This is a fork of the Sourcetrail project and I want to keep this project at least buildable.
If you like the changes I've done so far, then please consider sponsoring me. As a sponser you have access to binary releases.
- GUI: Fix handling of Esc/Return keys for dialogs (Indexing, Bookmark, etc.) (Fixes issue 27)
- GUI: Activate bookmark with double click and close bookmark manager
- GUI: Highlight the taskbar entry when indexing has finished
- GUI: Show indexing progress in window title
- GUI: Added tooltips or prompt texts to many widgets
- Java: Add Support for record classes
- macOS: Fix vcpkg build. Thanks to ChristianWieden for the help
- Java: Add support for Eclipse JDT 3.40 (Java 23)
- Java: Update Gradle support to 8.12
- C/C++: Add support for Clang 19 (C++23).
- C/C++: Re-enable detection of non-trivial destructor calls.
- Fix: Keep the console window open when logging is enabled.
- Framework: Replace/Remove last Qt5 dependency.
- GUI: Try to hide the external console window on Windows. See "The console window is not hidden under Windows 11" for additional information.
- GUI: Add the 'Hack' font.
- Fix: Copy the tutorial project files on initial run.
- GUI: Remove
qt.conf
which seems to improve the menu font rendering under Windows
- GUI: Fix non-working dialogs i.e. the selected action weren't executed
- C/C++: Disabled indexing of non-trivial destructor calls. See #7 (comment) for further details.
- Installation: Add Debian packaging
- C/C++: Add indexing of the deduced type of auto variables
- C/C++: Add indexing of user defined conversion operators
- C/C++: Add indexing of non-trivial destructor calls
- C/C++: Update libClang/LibTooling to Clang 18
- C/C++: Add indexing of the deduced type of auto variables
- C/C++: Add indexing of user defined conversion operators
- C/C++: Update support for C++ standards C++20, C++23
- C/C++: Update detection of 'Global Include Paths' for Visual Studio 2017, 2019, 2022
- Java: Generalize detection of JRE/JVM
- Java: Generalize detection of Maven
- Java: Update support for Java Standard 16, 17, 18, 19, 20
- Framework: Update libClang/LibTooling to Clang 16/17
- Framework: Switch from Qt5 to Qt6
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
Depending on the platform and the selected indexer, additional software/packages must be installed.
- Java Indexer:
- Linux:
- Qt6: Install additional packages with
script/install-qt6-dependencies.sh
.
- Qt6: Install additional packages with
- Windows:
- macOS:
- Xcode
- libtools, autoconf, autoconf-archive, automake, patchelf, ninja
Prepare the build in a terminal or command prompt ("x64 Native Tools Command Prompt"):
$ cd Sourcetrail
$ cmake --preset vcpkg-ninja-release
Note that the initial compilation of the vcpkg packages (especially LLVM) will take a long time!
Tip
Download a binary release.
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 .
System build is not tested and therefore not supported.
System build is not tested and therefore not supported.
C++
Name | System | Vcpkg | Notes |
---|---|---|---|
Clang | 19.1.1 | 18.1.6 | C++23 Support |
Java
Name | System/Vcpkg | Notes |
---|---|---|
Eclipse JDT | 3.40 | Java 23 Support |
Maven | Locally installed version | |
Gradle | 8.12 |
Miscellaneous
Name | System | Vcpkg |
---|---|---|
Qt | 6.6.2 | 6.8.2 |
Boost | 1.83.0 | 1.87.0 |
SQLite3 | 3.46.1 | 3.47.2 |
TinyXML | 2.6.2 | 2.6.2 |
Tests
Name | System | Vcpkg |
---|---|---|
Catch2 | 3.4.0 | 3.8.0 |
GTest | 1.15.2 | 1.16.0 |