Supported Platforms

HeexSDK has been tested on the following platforms.

ArchitectureUbuntu 18.04 LTSUbuntu 20.04 LTSUbuntu 22.04 LTSWindows 7Windows 10Windows 11CentOS 7.9-2009
x86_64
ARM

Supported Compilers

HeexSDK has been tested with the following compilers for c++14:

gcc: 11.4.0 (22.04), 9.4.0 (20.04), 7.5.0 (18.04), 9.3.1 (CentOS)
msvc: 14.2

⚠️ Warning:

GLIBC version 3.4.30 is required to be able to use the heexCore.

On Ubuntu 18.04, you can add support for GLIBC 3.4.30 by running the following commands:

sudo apt install software-properties-common -y
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install --only-upgrade libstdc++6

Supported Python versions

HeexSDK has been tested with the following python library:

python: 3.10 (Ubuntu 22.04 & Windows), 3.8 (20.04), 3.6 (18.04 & CentOS)

⚠️ Warning:

Due to the Boost library version we are using (1.84.0), python 3.11 is currently not supported.

Configuring and building with python requires the --with-python optional flags to be provided to the ./heex sdk build CLI command.

Required libraries

The Heex SDK automates the installation of most of the dependencies and 3rd-party softwares required, with the Heex CLI.

Some software dependencies are not integrated in our solution, but are required to build and operate it at run-time.

Affected dependencies are tagged for non-automated install (ie. user manual installation is required) and for external tool (ie. the tool need to be available in the machine).

Pre-required on platforms

The following dependencies are required to be installed previous to any usage of the SDK.

  • sudo
  • jq
    → jq is a lightweight and flexible command-line JSON processor
    → Solely for users that call the runHeexKernel.sh script with the wait-for-jobs-completion option.

Automatically installed

The following dependencies are installed by our CLI.

Global dependencies

  • Boost 1.84.0
    • Some boost libraries used are not header-only and require a .lib to be provided to the linker. They are program_options, thread, filesystem, system,date_time, regex, serialization, and log. and python. Also requires python when enabled.
  • C++ development Build essentials package and tools
    • build-essential package (libc, gcc, g++, make, dpkg-dev, …)
    • cmake 3.24.0 binaries (for 18.04 and CentOS only)
  • Archiver
    • 7zip (external tool, pre-compiled binary): We use the pre-compiled binaries only, no usage of the source code.
  • whereami
  • makeself

SDK-specific dependencies

  • units units library auto-installed when building Heex SDK with Heex CLI.