CaveWhere is a cave mapping software with an intuitive design that enables building and visualizing underground cave maps. Using it’s advanced 3D engine, CaveWhere automatically morphs your 2D cave notes in 3D. Loop closures re-morph effected scan scraps automatically so your map is always up-to-date.
GitHub Actions provide the most up-to-date instructions for building CaveWhere.
You can check the latest workflow file here:
Linux Build Workflow
This guide outlines the steps to build and run CaveWhere, a cave mapping software, on Ubuntu 23.
First, update your package list and install all necessary dependencies with the following command:
sudo apt update && sudo apt install -y build-essential cmake ninja-build pipx liblocale-po-perl git
Conan is required for managing packages and dependencies. If you have Conan installed, skip this step. Otherwise, uninstall any existing Conan versions and install the specified version using pipx
:
pipx install conan
pipx ensurepath
Restart your terminal or you'll get:
bash: conan: command not found
-
Clone the Repository and Prepare the Environment
Clone the CaveWhere repository and checkout the correct branch (assuming
master
in this case). Initialize and update the submodules:
git clone https://github.com/Cavewhere/cavewhere.git
cd cavewhere
git submodule update --init --recursive
cd ..
-
Create a Build Directory
Create a separate directory for the build to keep it clean from the source code:
mkdir cavewhere-build-release && cd cavewhere-build-release
-
Install Dependencies with Conan
Use Conan to install the project dependencies:
conan profile detect --force
- Modify the default Conan profile due to this issue: conan-io/conan-center-index#26878. Without this modification, wxWidgets will fail to build with CMake 4.0.
PROFILE_PATH="$(conan config home)/profiles/default"
echo >> "$PROFILE_PATH" # ensure a blank line
echo "[tool_requires]" >> "$PROFILE_PATH"
echo '!cmake/*: cmake/[>=3 <4]' >> "$PROFILE_PATH"
- Install CaveWhere dependancies through Conan
conan install ../cavewhere -o "&:system_qt=False" --build=missing -c tools.system.package_manager:mode=install -c tools.system.package_manager:sudo=True -of conan_deps
Conan will try to use the local package manager to install compatible dependencies. If a dependency isn't compatible, it will download it from Conan Center or build it from source.
Conan may also build Qt from source, which can take a long time and use a large amount of ram (16GB recommend for the build, 2GB VM will not cut it). However, this ensures you get the correct version of Qt that has been tested with Cavewhere. To use the system's Qt, set system_qt=False
.
To use the system Qt libraries (note that you might encounter build errors, as Qt is typically outdated on most Linux distributions 2025.2 will build and run on 6.8 or later):
sudo apt install -y qt6-base-dev qt6-declarative-dev qt6-svg-dev qt6-shadertools-dev
- Configure the Project with CMake
cmake -G Ninja --preset conan-release -DCMAKE_TOOLCHAIN_FILE=conan_deps/conan_toolchain.cmake -S ../cavewhere -B .
-
Build the Project
Now, build the project using CMake:
cmake --build .
After a successful build, run CaveWhere directly from the build directory:
./CaveWhere