Linux Quickstart Guide

Table of Contents


System Requirements

  • C++ Compiler: C++20 compatible

    • GCC 10+ or Clang 10+

  • Version Control: Git (recent version)

  • Build System: CMake 3.16+

  • Configuration Tool: pkg-config

Installing Base Dependencies

For systems lacking these tools:

# On Ubuntu/Debian systems:
sudo apt update && sudo apt install build-essential cmake git pkg-config

# On RHEL/CentOS systems:
sudo yum groupinstall "Development Tools"
sudo yum install cmake git pkgconfig

Alternative for conda Users

When using the conda approach below, you may install prerequisites within your conda environment instead of system-wide:

conda install -c conda-forge cmake git pkg-config cxx-compiler make

This eliminates the need for sudo privileges while still providing the necessary build tools.


Method 1: conda Environment Setup (Preferred)

This approach leverages conda for streamlined dependency management and is our top recommendation. Ensure your system requirements are met first.

Step 1: conda Installation

If conda isn’t already available:

cd ~
curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh"

chmod +x Miniforge3-Linux-x86_64.sh
./Miniforge3-Linux-x86_64.sh

Complete the installation prompts and verify conda activation by checking for (base) in your terminal prompt. If it is not activated, you may need to run source ~/miniforge3/bin/activate.

Step 2: Environment Creation

conda env create -f packaging/environment.yml
conda activate huira_env

Step 3: Compilation Process

mkdir build && cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../cmake/conda-toolchain.cmake -DCMAKE_BUILD_TYPE=Release ../
cmake --build . -j

Step 4: Environment Installation (Optional)

After successful compilation, integrate Huira into your conda environment:

cmake --install .

Method 2: vcpkg Package Manager

vcpkg provides cross-platform package management through source compilation. Initial builds may take considerable time due to source-based dependency building. Verify system requirements before proceeding.

vcpkg Configuration:

git clone https://github.com/microsoft/vcpkg.git ~/vcpkg
~/vcpkg/bootstrap-vcpkg.sh
~/vcpkg/vcpkg integrate install

Compilation Steps:

mkdir build && cd build
cmake -DCMAKE_TOOLCHAIN_FILE=~/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Release ../
cmake --build . -j

Method 3: Manual Dependency Management (Advanced Users)

This approach requires manual installation of all dependencies through system package managers or source compilation. Warning: This method is unsupported and may encounter compatibility issues with system-available library versions.

Required Dependencies

Package

Version Requirement

Purpose

assimp

>=5.2,<6.0

3D asset importing

catch2

>=3.8.0

Unit testing suite (when HUIRA_TESTS=ON)

cfitsio

>=3.49

FITS file handling

cspice

=67

NASA SPICE toolkit

embree3

>=3.13,<4.0

Ray intersection kernels

fftw

>=3.3.10,<4.0

Fourier transform operations

gdal

>=3.10,<4.0

Geographic data processing

glm

>=1.0.1

Mathematical operations

libtiff

>=4.7.0

TIFF image processing

tbb-devel

>=2021.0

Threading Building Blocks

Build Process

Once dependencies are satisfied, execute from the repository root:

mkdir build
cd build
cmake ../ -DCMAKE_BUILD_TYPE=Release
cmake --build . -j