{"id":17216895,"url":"https://github.com/markusjx/install-boost","last_synced_at":"2025-04-05T22:08:24.239Z","repository":{"id":41837640,"uuid":"312548178","full_name":"MarkusJx/install-boost","owner":"MarkusJx","description":"Install boost on Github actions","archived":false,"fork":false,"pushed_at":"2025-03-28T02:55:06.000Z","size":3484,"stargazers_count":68,"open_issues_count":5,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-29T21:06:49.917Z","etag":null,"topics":["actions","boost","cplusplus","cpp","github-actions","macos","ubuntu","windows"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MarkusJx.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-13T10:46:13.000Z","updated_at":"2025-02-06T14:01:08.000Z","dependencies_parsed_at":"2024-02-11T10:28:15.358Z","dependency_job_id":"8b1b9dcf-ed89-4523-adc9-fb8475185c3e","html_url":"https://github.com/MarkusJx/install-boost","commit_stats":{"total_commits":84,"total_committers":3,"mean_commits":28.0,"dds":"0.023809523809523836","last_synced_commit":"3039450bb3dd2e8630d1cf10ec39cb1da3054bbd"},"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusJx%2Finstall-boost","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusJx%2Finstall-boost/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusJx%2Finstall-boost/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarkusJx%2Finstall-boost/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MarkusJx","download_url":"https://codeload.github.com/MarkusJx/install-boost/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247406090,"owners_count":20933803,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["actions","boost","cplusplus","cpp","github-actions","macos","ubuntu","windows"],"created_at":"2024-10-15T03:42:39.823Z","updated_at":"2025-04-05T22:08:24.166Z","avatar_url":"https://github.com/MarkusJx.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Download and install Boost\n\nInstall Boost in GitHub actions using prebuilt binaries.\n\n## Inputs\n\n### `boost_version`\n\n**Required** The boost version to install, e.g. `1.73.0`.\nA list of supported versions can be found [here](https://github.com/MarkusJx/prebuilt-boost/blob/main/versions-manifest.json). If you need a specific (unlisted) version, open a new issue\n[here](https://github.com/MarkusJx/prebuilt-boost), requesting the required version.\n\n### `platform_version`\n\n**Optional** The platform version of the system boost was compiled on, e.g. `18.04` for `ubuntu-18.04`, `2016` for `windows-2016` or `10.15` for `macos-10.15`.\nSupported values are `2016` (windows, until boost v1.78.0), `2019` (windows), `2022` (windows), `18.04` (ubuntu),\n`20.04` (ubuntu), `10.15` (macOs), `11` (macOs). **You maybe want to set this as a version will**\n**be selected at random if unset and [may cause issues](https://github.com/MarkusJx/install-boost/issues/7).**\n\n### `boost_install_dir`\n\n**Optional** The directory to install boost into. If specified, boost will be installed into\n`$boost_install_dir/boost/boost/`. The default value is `${{github.workspace}}`.\n\n### `version`\n\n**Optional** The version of the `install-boost` action to use. Must be either `default` or `legacy`. Defaults to `default`.\nIf the `default` version is used, the binaries are downloaded from [MarkusJx/prebuilt-boost](https://github.com/MarkusJx/prebuilt-boost).\nThe list of supported toolsets and versions can be found [here](https://github.com/MarkusJx/prebuilt-boost/blob/main/versions-manifest.json).\nIf the `legacy` version is used, the binaries are downloaded from [actions/boost-versions](https://github.com/actions/boost-versions).\nThe list of supported toolsets and versions can be found [here](https://github.com/actions/boost-versions/blob/main/versions-manifest.json).\n\n### `toolset`\n\n**Optional** A toolset used to compile boost, e.g. `msvc`.\nMay be one of `msvc` (windows), `mingw` (windows), `gcc` (linux) or `clang` (macOs).\n**You maybe want to set this on windows (when boost version is \u003e= `1.78.0`) as either `mingw` or `msvc` will be selected at random**\n**which may cause your build to fail.**\nSelecting this is only supported for boost versions `1.78.0` and higher with the new version of\nthis action or any version with the legacy versions. Please refer to the provided version manifests\nfor further information.\n\n### `link`\n\n**Optional** Whether the boost libraries will be supplied through static or shared libraries.\nMay be one of `static`, `shared` or `static+shared` for both static and shared\nlibraries to be supplied. Is only effective on windows, as unix builds contain by\ndefault both static and shared libraries. On windows, only `static` or `shared`\nmay be specified, as these binares can only contain either static or shared libraries.\nIf nothing is specified, static libraries will be preferred.\n\n### `arch`\n\n**Optional** The architecture the binares were built for. Must be either `x86` for\ndefault x86/amd64 or `aarch64` for arm64 systems. The `x86` can be used for\nthe default github runners, the `aarch64` images may be used for cross-compiling\nbinaries for arm systems. If not set, `x86` images will be used. Only works on\n`linux` images with version `20.04` (or just specify no os version).\n\n### `cache`\n\n**Optional** Whether to use `actions/cache` to further decrease build times.\nDefaults to `true`, you'll only ever need to set this if you want to disable the cache.\n\n## Outputs\n\n### `BOOST_ROOT`\n\nThe boost root directory path, to be passed to another tool, e.g. CMake to find Boost:\n\n```yml\n- name: Configure CMake\n  run: cmake . -DCMAKE_BUILD_TYPE=$BUILD_TYPE -B build\n  env:\n    BOOST_ROOT: ${{ steps.install-boost.outputs.BOOST_ROOT }}\n```\n\n**Notes**: Sometimes you'll have to pass the path to the include and library directories to cmake:\n\n```yml\n- name: Configure CMake\n  run: |\n    cmake . -DCMAKE_BUILD_TYPE=$BUILD_TYPE -B build\\\n    -DBoost_INCLUDE_DIR=${{steps.install-boost.outputs.BOOST_ROOT}}/include\\\n    -DBoost_LIBRARY_DIRS=${{steps.install-boost.outputs.BOOST_ROOT}}/lib\n  env:\n    BOOST_ROOT: ${{ steps.install-boost.outputs.BOOST_ROOT }}\n```\n\n### `BOOST_VER`\n\nThe version of boost installed, e.g. `boost-1.73.0-linux-16.04`.\n\n## Example usage\n\n### Windows\n\n```yml\n- name: Install boost\n  uses: MarkusJx/install-boost@v2\n  id: install-boost\n  with:\n    # REQUIRED: Specify the required boost version\n    # A list of supported versions can be found here:\n    # https://github.com/MarkusJx/prebuilt-boost/blob/main/versions-manifest.json\n    boost_version: 1.73.0\n    # OPTIONAL: Specify a custon install location\n    boost_install_dir: C:\\some_directory\n    # OPTIONAL: Specify a platform version\n    platform_version: 2019\n    # OPTIONAL: Specify a toolset\n    toolset: msvc\n\n    # NOTE: If a boost version matching all requirements cannot be found,\n    # this build step will fail\n```\n\n### Ubuntu\n\n```yml\n- name: Install boost\n  uses: MarkusJx/install-boost@v2\n  id: install-boost\n  with:\n    # REQUIRED: Specify the required boost version\n    # A list of supported versions can be found here:\n    # https://github.com/MarkusJx/prebuilt-boost/blob/main/versions-manifest.json\n    boost_version: 1.73.0\n    # OPTIONAL: Specify a platform version\n    platform_version: 18.04\n    # OPTIONAL: Specify a custom install location\n    boost_install_dir: /home/runner/some_directory\n    # OPTIONAL: Specify a toolset\n    toolset: gcc\n    # OPTIONAL: Specify an architecture\n    arch: x86\n\n    # NOTE: If a boost version matching all requirements cannot be found,\n    # this build step will fail\n```\n\n### MacOs\n\n```yml\n- name: Install boost\n  uses: MarkusJx/install-boost@v2\n  id: install-boost\n  with:\n    # REQUIRED: Specify the required boost version\n    # A list of supported versions can be found here:\n    # https://github.com/MarkusJx/prebuilt-boost/blob/main/versions-manifest.json\n    boost_version: 1.73.0\n    # OPTIONAL: Specify a platform version\n    platform_version: 10.15\n    # OPTIONAL: Specify a custom install location\n    boost_install_dir: /home/runner/some_directory\n    # OPTIONAL: Specify a toolset\n    toolset: clang\n\n    # NOTE: If a boost version matching all requirements cannot be found,\n    # this build step will fail\n```\n\n### Legacy use\n\n#### Windows\n\n```yml\n- name: Install boost\n  uses: MarkusJx/install-boost@v1.0.1\n  id: install-boost\n  with:\n    # REQUIRED: Specify the required boost version\n    # A list of supported versions can be found here:\n    # https://github.com/actions/boost-versions/blob/main/versions-manifest.json\n    boost_version: 1.73.0\n    # OPTIONAL: Specify a toolset on windows\n    toolset: msvc14.2\n    # OPTIONAL: Specify a custon install location\n    boost_install_dir: C:\\some_directory\n\n    # NOTE: If a boost version matching all requirements cannot be found,\n    # this build step will fail\n```\n\nor\n\n```yml\n- name: Install boost\n  uses: MarkusJx/install-boost@v2\n  id: install-boost\n  with:\n    # REQUIRED: Specify the required boost version\n    # A list of supported versions can be found here:\n    # https://github.com/actions/boost-versions/blob/main/versions-manifest.json\n    boost_version: 1.73.0\n    # Use the legacy version of this action\n    version: legacy\n    # OPTIONAL: Specify a toolset on windows\n    toolset: msvc14.2\n    # OPTIONAL: Specify a custon install location\n    boost_install_dir: C:\\some_directory\n\n    # NOTE: If a boost version matching all requirements cannot be found,\n    # this build step will fail\n```\n\n#### Ubuntu\n\n```yml\n- name: Install boost\n  uses: MarkusJx/install-boost@v1.0.1\n  id: install-boost\n  with:\n    # REQUIRED: Specify the required boost version\n    # A list of supported versions can be found here:\n    # https://github.com/actions/boost-versions/blob/main/versions-manifest.json\n    boost_version: 1.73.0\n    # OPTIONAL: Specify a platform version on ubuntu\n    platform_version: 18.04\n    # OPTIONAL: Specify a custom install location\n    boost_install_dir: /home/runner/some_directory\n\n    # NOTE: If a boost version matching all requirements cannot be found,\n    # this build step will fail\n```\n\n## Caching\n\nAs of version `2.4.0`, `install-boost` natively supports caching using `actions/cache`\nto further improve build times. This is enabled by default. You can disable\nthis behaviour by setting the `cache` variable to `false`.\n\n## Boost.Python\n\nStarting from boost version `1.80.0`, the pre-built binaries will be built with\n`boost.python` for the following python versions:\n\n- `3.7`\n- `3.8`\n- `3.9`\n- `3.10`\n- `3.11`\n\nDue to memory restrictions on the build runners, there are some binaries which don't support python:\n\n| Platform     | Link          | Compiler | Arch    | Python supported |\n| ------------ | ------------- | -------- | ------- | ---------------- |\n| ubuntu-18.04 | static+shared | gcc      | x86     | ✅               |\n| ubuntu-20.04 | static+shared | gcc      | aarch64 | ❌               |\n| ubuntu-20.04 | static+shared | gcc      | x86     | ✅               |\n| ubuntu-22.04 | static+shared | gcc      | x86     | ✅               |\n| windows-2019 | static        | msvc     | x86     | ✅               |\n| windows-2019 | shared        | msvc     | x86     | ❌               |\n| windows-2019 | static        | mingw    | x86     | ❌               |\n| windows-2022 | static        | msvc     | x86     | ✅               |\n| windows-2022 | shared        | msvc     | x86     | ❌               |\n| windows-2022 | static        | mingw    | x86     | ❌               |\n| windows-2022 | shared        | mingw    | x86     | ❌               |\n| macos-10.15  | static+shared | clang    | x86     | ✅               |\n| macos-11     | static+shared | clang    | x86     | ✅               |\n| macos-12     | static+shared | clang    | x86     | ✅               |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkusjx%2Finstall-boost","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarkusjx%2Finstall-boost","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarkusjx%2Finstall-boost/lists"}