Skip to content

Latest commit

 

History

History
266 lines (161 loc) · 6.69 KB

README.md

File metadata and controls

266 lines (161 loc) · 6.69 KB

Containers

This directory contains the base dockerfiles used for development in containers and scripts that install the necessary dependencies for these images.

See: Visual Studio Code: Developing inside a Container.

Dockerfiles

The Dockerfiles here must be manually published to Docker Hub so that they can be reused in CIs and save time building containers. To publish manually, use the Dockerfile: Build and Push Manually workflow. Stable images must be labeled with the latest tag, and development images are always labeled with the manual- prefix. The context for the workflow is the root of the repository; i.e, for an image located in this directory, it is equivalent to running:

  docker build -f containers/<Dockerfile> .

See: RobôCIn's Docker Hub for the published images and Development Containers Images for the standard base images.

The base image for C++ development with ssl-core.

The base image for Python development with ssl-core.

The base image for C++ gRPC development with ssl-core.

The base image for Mbed OS Embedded development with ssl-core, based on ARMmbed/mbed-os-docker-images.

The base image for Golang development with ssl-core.

Scripts

Install Google Benchmark library.

  • Arguments:

    1. library_directory: The directory where the library will be installed
      • default: /usr/local
  • Usage:

bash benchmark.sh <library_directory>

Install Buf CLI.

  • Arguments:

    1. version: The version of Buf to install.
    2. executable_directory: The directory where the executable will be installed
      • default: /usr/local/bin
  • Usage:

bash buf.sh <version> <executable_directory>

Install CMake build system.

  • Arguments:

    1. version: The version of CMake to install
  • Usage:

bash cmake.sh <version>

Install cppzmq library.

  • Arguments:

    1. version: The version of cppzmq to install
    2. library_directory: The directory where the library will be installed
      • default: /usr/local
  • Usage:

bash cppzmq.sh <version> <library_directory>

Note: The cppzmq library must be installed after and in the same directory as the libzmq library.

Install GCC compiler.

  • Arguments:

    1. version: The version of GCC to install
  • Usage:

bash gcc.sh <version>

Install GoogleTest library.

Note: GoogleTest follows the Abseil Live at Head philosophy, which means that it is always in a stable state and any changes are always backwards compatible.

  • Arguments:

    1. version: The version of GoogleTest to install
    2. library_directory: The directory where the library will be installed
      • default: /usr/local
  • Usage:

bash googletest.sh <version> <library_directory>

Install libzmq library.

  • Arguments:

    1. version: The version of libzmq to install
    2. library_directory: The directory where the library will be installed
      • default: /usr/local
  • Usage:

bash libzmq.sh <version> <library_directory>

Install LLVM tools: clang, clang++, clang-format, clang-tidy, clangd.

  • Arguments:

    1. version: The version of LLVM to install
  • Usage:

bash llvm.sh <version>

Install Ninja build system.

  • Arguments:

    1. version: The version of Ninja to install
  • Usage:

bash ninja.sh <version>

Install Protocol Buffers library.

  • Arguments:

    1. version: The version of protobuf to install
    2. library_directory: The directory where the library will be installed
      • default: /usr/local
  • Usage:

bash protobuf.sh <version> <directory>

Install Protocol Buffers compiler.

  • Arguments:

    1. version: The version of protoc to install
    2. directory: The directory where the bin and include directories will be installed
      • default: /usr/local
bash protoc.sh <version> <library_directory>

Install Abseil libraries.

  • Arguments:

    1. library_directory: The directory where the library will be installed
      • default: /usr/local
  • Usage:

bash absl.sh <library_directory>

Install gRPC framework.

  • Arguments:

    1. version: The version of libzmq to install
    2. library_directory: The directory where the library will be installed
      • default: /usr/local
  • Usage:

bash grpc.sh <version> <library_directory>

Install arm-none-eabi-gcc, the Arm GNU Toolchain.

  • Arguments:

    1. version: The version of arm-none-eabi-gcc to install
    2. library_directory: The directory where the library will be installed
      • default: /usr/local
  • Usage:

bash arm-none-eabi-gcc.sh <version> <library_directory>

Install nanopb, the plain-C protobuf library.

  • Arguments:

    1. version: The version of nanopb to install
    2. library_directory: The directory where the library will be installed
      • default: /usr/local
  • Usage:

bash nanopb.sh <version> <library_directory>