diff --git a/README.md b/README.md index 68cf2de..d3ed21e 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ OrbitHub is in active development. - Milestones completed: M0-M5 and M8 - Current milestone: Milestone 9 (Packaging and Distribution) - Deferred milestone: Milestone 6 (VNC Fully Working) -- Latest checkpoint tag: `v0-m8-wip1` +- Latest checkpoint tag: `v0-m8-done` - VNC implementation milestone (M6) is currently deferred Progress and milestone details: diff --git a/docs/BUILDING.md b/docs/BUILDING.md index c5862d9..8975bf5 100644 --- a/docs/BUILDING.md +++ b/docs/BUILDING.md @@ -2,6 +2,14 @@ Run all commands from the repository root unless noted. +## Requirements + +Minimum toolchain requirements on all platforms: +- CMake 3.21+ +- C++17 compiler toolchain +- Qt 6.2+ with `Widgets` and `Sql` modules (dynamic linking) +- OpenSSH client available on `PATH` (required for SSH sessions) + ## Linux (Ubuntu / Mint) ```bash @@ -9,9 +17,9 @@ sudo apt update sudo apt install -y \ build-essential cmake ninja-build git pkg-config \ qt6-base-dev qt6-base-dev-tools qt6-tools-dev qt6-tools-dev-tools \ - openssh-client + openssh-client libssl-dev zlib1g-dev -cmake -S . -B build -G Ninja +cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release cmake --build build ./build/orbithub ``` @@ -21,39 +29,58 @@ cmake --build build ```bash xcode-select --install brew update -brew install cmake ninja pkg-config qt@6 openssh +brew install cmake ninja pkg-config qt@6 openssh openssl@3 -cmake -S . -B build -G Ninja -DCMAKE_PREFIX_PATH="$(brew --prefix qt@6)" +cmake -S . -B build -G Ninja \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_PREFIX_PATH="$(brew --prefix qt@6);$(brew --prefix openssl@3)" cmake --build build ./build/orbithub ``` ## Windows 11 (PowerShell + MSVC + vcpkg) +Install required software: + ```powershell winget install -e --id Git.Git winget install -e --id Kitware.CMake winget install -e --id Ninja-build.Ninja Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0 winget install -e --id Microsoft.VisualStudio.2022.BuildTools ` - --override "--quiet --wait --norestart --add Microsoft.VisualStudio.Workload.VCTools" + --override "--quiet --wait --norestart --add Microsoft.VisualStudio.Workload.VCTools --add Microsoft.VisualStudio.Component.Windows11SDK.22621" ``` -Open a new terminal after installs, then: +Install dependencies via vcpkg: ```powershell git clone https://github.com/microsoft/vcpkg C:\dev\vcpkg C:\dev\vcpkg\bootstrap-vcpkg.bat -C:\dev\vcpkg\vcpkg.exe install qtbase:x64-windows - -cmake -S . -B build -G Ninja ` - -DCMAKE_TOOLCHAIN_FILE=C:/dev/vcpkg/scripts/buildsystems/vcpkg.cmake -cmake --build build -.\build\orbithub.exe +C:\dev\vcpkg\vcpkg.exe install qtbase:x64-windows openssl:x64-windows zlib:x64-windows ``` +Open `x64 Native Tools Command Prompt for VS 2022` (or Developer PowerShell), then build: + +```powershell +cmake -S . -B build -G Ninja ` + -DCMAKE_BUILD_TYPE=Release ` + -DCMAKE_TOOLCHAIN_FILE=C:/dev/vcpkg/scripts/buildsystems/vcpkg.cmake ` + -DVCPKG_TARGET_TRIPLET=x64-windows +cmake --build build +``` + +Run (ensures DLL paths from vcpkg are present): + +```powershell +C:\dev\vcpkg\vcpkg.exe env --triplet x64-windows -- .\build\orbithub.exe +``` + +If you already have `Qt 6` from the Qt installer and do not want vcpkg Qt, you can point CMake at that Qt install with `-DCMAKE_PREFIX_PATH=...`, but you still need compatible `OpenSSL` and `zlib` development libraries for the embedded FreeRDP build. + ## Notes -- OrbitHub currently requires Qt6 Widgets and CMake 3.21+. -- Milestone 3 SSH sessions require an `ssh` client available on `PATH`. +- OrbitHub builds vendored `KodoTerm`, `libvterm`, and `FreeRDP` from `third_party/`. - If Qt is installed in a custom location, pass `-DCMAKE_PREFIX_PATH=/path/to/Qt/6.x.x/` to CMake. +- Build output executable: + - Linux/macOS: `build/orbithub` + - Windows: `build\\orbithub.exe`