Boost Clone

This action clones the Boost source directory, attempting to get it from the cache first. Only the specified modules are cloned and cached.

Cloning boost is useful when one wants the always use the latest version of boost in a library or is writing a boost proposal. For other use cases, individual boost modules can be fetched with vcpkg in Install Packages or directly included in a package manager manifest.

Besides the explicitly specified list of modules, the action can also scan directories for boost dependencies to implicitly determine what modules should be cloned.

The union of the implicitly and explicitly specified modules is cloned. Caching is based only on these dependencies.

For a project with about 5 boost dependencies, caching saves about 4 minutes in the workflow. When there’s no cache, the scanning scripting saves us about 3 minutes.

Example

steps:
- name: Clone Boost.Variant2
  uses: alandefreitas/cpp-actions/boost-clone@v1.2.0
  with:
    boost-dir: boost-root
    branch: master
    modules: variant2

Input Parameters

Parameter

Description

Default

boost-dir

The boost directory. The default value assumes boost is in-source.

boost

branch

Branch of the super-project.

master

patches

Libraries used to patch the boost installation.

modules

The boost submodules we need to clone.

modules-scan-paths

Additional modules subdirectory to scan; can be repeated.

modules-exclude-paths

Additional modules subdirectory to scan; can be repeated.

test

scan-modules-dir

An independent directory we should scan for boost dependencies to clone.

scan-modules-ignore

List of modules that should be ignored in scan-modules.

trace-commands

Trace commands executed by the workflow.

false