From 60e423094249cfccc267dd9d3d872a5b8fedd12c Mon Sep 17 00:00:00 2001 From: Markus <28785953+MarkusJx@users.noreply.github.com> Date: Wed, 27 Apr 2022 07:53:47 +0200 Subject: [PATCH] Allow installing ARM64 images (#14) --- .github/workflows/test-cmake.yml | 24 +++++++++++- README.md | 20 ++++++++++ action.yml | 4 ++ dist/index.js | 25 ++++++++++--- dist/index.js.map | 2 +- dist/installV2.js | 4 +- dist/installV2.js.map | 2 +- dist/shared.js | 15 +++++++- dist/shared.js.map | 2 +- package-lock.json | 64 +++++++++++++++++++++++++++++--- src/index.ts | 7 +++- src/installV2.ts | 4 +- src/shared.ts | 16 ++++++-- test/CMakeLists.txt | 14 +++++++ 14 files changed, 177 insertions(+), 26 deletions(-) diff --git a/.github/workflows/test-cmake.yml b/.github/workflows/test-cmake.yml index 383297a..0b1255b 100644 --- a/.github/workflows/test-cmake.yml +++ b/.github/workflows/test-cmake.yml @@ -21,12 +21,19 @@ jobs: - os: ubuntu-20.04 COMPILER: gcc PLATFORM: 20.04 + ARCH: x86 + - os: ubuntu-20.04 + COMPILER: gcc + PLATFORM: 20.04 + ARCH: aarch64 - os: windows-2019 COMPILER: msvc PLATFORM: 2019 + ARCH: x86 - os: windows-2019 COMPILER: mingw PLATFORM: 2019 + ARCH: x86 steps: - uses: actions/checkout@v2 @@ -34,14 +41,19 @@ jobs: uses: ./ id: install-boost with: - boost_version: 1.78.0 + boost_version: 1.79.0 platform_version: ${{matrix.PLATFORM}} toolset: ${{matrix.COMPILER}} + arch: ${{matrix.ARCH}} - name: Setup MinGW uses: egor-tensin/setup-mingw@v2 if: ${{runner.os == 'Windows' && matrix.COMPILER == 'mingw'}} + - name: Install arm64 compiler + run: sudo apt-get update && sudo apt-get install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu -y + if: matrix.ARCH == 'aarch64' + - name: Configure CMake mingw shell: bash working-directory: test @@ -50,11 +62,19 @@ jobs: env: BOOST_ROOT: ${{steps.install-boost.outputs.BOOST_ROOT}} + - name: Configure CMake arm64 + shell: bash + working-directory: test + run: cmake . -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_ARM_BINARIES=1 -DBoost_LIBRARY_DIRS="${{steps.install-boost.outputs.BOOST_ROOT}}/lib" -B build + if: matrix.ARCH == 'aarch64' + env: + BOOST_ROOT: ${{steps.install-boost.outputs.BOOST_ROOT}} + - name: Configure CMake shell: bash working-directory: test run: cmake . -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBoost_LIBRARY_DIRS="${{steps.install-boost.outputs.BOOST_ROOT}}/lib" -B build - if: ${{matrix.COMPILER != 'mingw'}} + if: ${{matrix.COMPILER != 'mingw' && matrix.ARCH != 'aarch64'}} env: BOOST_ROOT: ${{steps.install-boost.outputs.BOOST_ROOT}} - name: Build diff --git a/README.md b/README.md index 0df38be..102775a 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,13 @@ default both static and shared libraries. On windows, only ``static`` or ``share may be specified, as these binares can only contain either static or shared libraries. If nothing is specified, static libraries will be preferred. +### `arch` +**Optional** The architecture the binares were built for. Must be either ``x86`` for +default x86/amd64 or ``aarch64`` for arm64 systems. The ``x86`` can be used for +the default github runners, the ``aarch64`` images may be used for cross-compiling +binaries for arm systems. If not set, ``x86`` images will be used. Only works on +``linux`` images with version ``20.04`` (or just specify no os version). + ## Outputs ### `BOOST_ROOT` The boost root directory path, to be passed to another tool, e.g. CMake to find Boost: @@ -52,6 +59,17 @@ The boost root directory path, to be passed to another tool, e.g. CMake to find BOOST_ROOT: ${{ steps.install-boost.outputs.BOOST_ROOT }} ``` +**Notes**: Sometimes you'll have to pass the path to the include and library directories to cmake: +```yml +- name: Configure CMake + run: | + cmake . -DCMAKE_BUILD_TYPE=$BUILD_TYPE -B build\ + -DBoost_INCLUDE_DIR=${{steps.install-boost.outputs.BOOST_ROOT}}/include\ + -DBoost_LIBRARY_DIRS=${{steps.install-boost.outputs.BOOST_ROOT}}/lib + env: + BOOST_ROOT: ${{ steps.install-boost.outputs.BOOST_ROOT }} +``` + ### `BOOST_VER` The version of boost installed, e.g. ``boost-1.73.0-linux-16.04``. @@ -93,6 +111,8 @@ The version of boost installed, e.g. ``boost-1.73.0-linux-16.04``. boost_install_dir: /home/runner/some_directory # OPTIONAL: Specify a toolset toolset: gcc + # OPTIONAL: Specify an architecture + arch: x86 # NOTE: If a boost version matching all requirements cannot be found, # this build step will fail diff --git a/action.yml b/action.yml index d9217ba..fd10d4e 100644 --- a/action.yml +++ b/action.yml @@ -17,6 +17,10 @@ inputs: description: 'Whether the boost libraries are linked statically or dynamically' required: false default: '' + arch: + description: 'The architecture the binaries were built for' + required: false + default: 'x86' boost_install_dir: description: 'The dirctory to install boost into' required: false diff --git a/dist/index.js b/dist/index.js index 162e015..a2ac89c 100644 --- a/dist/index.js +++ b/dist/index.js @@ -30,6 +30,7 @@ function main() { const platform_version = core.getInput("platform_version"); const boost_install_dir = core.getInput("boost_install_dir"); const link = core.getInput("link"); + const arch = core.getInput("arch"); let script_version = core.getInput("version"); if (boost_version.length <= 0) { throw new Error("the boost_version variable must be defined"); @@ -50,6 +51,9 @@ function main() { if (link && link !== "static" && link !== "shared" && link !== "static+shared") { throw new Error("'link' must be one of: 'static', 'shared' or 'static+shared'"); } + if (arch && arch !== "x86" && arch !== "aarch64") { + throw new Error("'arch' must be one of: 'x86' or 'aarch64'"); + } if (script_version === "legacy") { if (link) { core.warning("The script version was set to 'legacy', but the 'link' option was supplied, ignoring this"); @@ -57,7 +61,7 @@ function main() { yield installV1_1.default(boost_version, toolset, platform_version, BOOST_ROOT_DIR); } else if (script_version === "default") { - yield installV2_1.default(boost_version, toolset, platform_version, link, BOOST_ROOT_DIR); + yield installV2_1.default(boost_version, toolset, platform_version, link, arch, BOOST_ROOT_DIR); } else { throw new Error("Invalid value entered for option 'version'"); @@ -155,12 +159,12 @@ const core = __nccwpck_require__(2186); const path = __nccwpck_require__(5622); const shared_1 = __nccwpck_require__(6058); const VERSION_MANIFEST_ADDR = "https://raw.githubusercontent.com/MarkusJx/prebuilt-boost/main/versions-manifest.json"; -function installV2(boost_version, toolset, platform_version, link, BOOST_ROOT_DIR) { +function installV2(boost_version, toolset, platform_version, link, arch, BOOST_ROOT_DIR) { return __awaiter(this, void 0, void 0, function* () { console.log("Downloading versions-manifest.json..."); const versions = yield shared_1.getVersions(VERSION_MANIFEST_ADDR); console.log("Parsing versions-manifest.json..."); - const ver_data = shared_1.parseArguments(versions, boost_version, toolset, platform_version, link); + const ver_data = shared_1.parseArguments(versions, boost_version, toolset, platform_version, link, arch); const download_url = ver_data.url; const filename = ver_data.filename; core.startGroup(`Create ${BOOST_ROOT_DIR}`); @@ -257,7 +261,7 @@ exports.createDirectory = createDirectory; * @param platform_version the requested platform version * @returns the url and file name or throws an error if the requested version could not be found */ -function parseArguments(versions, boost_version, toolset, platform_version, link = null) { +function parseArguments(versions, boost_version, toolset, platform_version, link = null, arch = null) { let platform = process.platform; if (platform === "darwin") { platform = "macos"; @@ -294,7 +298,18 @@ function parseArguments(versions, boost_version, toolset, platform_version, link continue; } else if (!link && file.hasOwnProperty("link") && file["link"] === "shared") { - core.debug("The file's 'link' was set to 'shared', but 'link' was specified, ignoring this file"); + core.debug("The file's 'link' was set to 'shared', but 'link' was not specified, ignoring this file"); + continue; + } + if (arch && !file["arch"]) { + core.warning("The parameter 'arch' was specified, which doesn't have any effect on this boost version"); + } + else if (arch && file.hasOwnProperty("arch") && arch !== file["arch"]) { + core.debug("File does not match param 'arch'"); + continue; + } + else if (!arch && file.hasOwnProperty("arch") && file["arch"] !== "x86") { + core.debug("The file's 'arch' was not set to 'x86', but 'arch' was not specified, ignoring this file"); continue; } return { url: file["download_url"], filename: file["filename"] }; diff --git a/dist/index.js.map b/dist/index.js.map index e5606fb..cb9494e 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,2CAAoC;AACpC,2CAAoC;AAEpC,sCAAsC;AACtC,6BAA6B;AAE7B,IAAI,cAAc,GAAW,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;AAC9E,MAAM,OAAO,GAAW,OAAO,CAAC;AAEhC,SAAe,IAAI;;QACf,MAAM,aAAa,GAAW,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAW,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACjD,MAAM,gBAAgB,GAAW,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QACnE,MAAM,iBAAiB,GAAW,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QACrE,MAAM,IAAI,GAAW,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,cAAc,GAAW,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEtD,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SACjE;QAED,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,iDAAiD,cAAc,EAAE,CAAC,CAAC;SAClF;QAED,IAAI,CAAC,cAAc,EAAE;YACjB,cAAc,GAAG,SAAS,CAAC;SAC9B;QAED,IAAI,CAAC,gBAAgB,EAAE;YACnB,IAAI,CAAC,OAAO,CAAC,qFAAqF,CAAC,CAAC;SACvG;QAED,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;YAC1C,IAAI,CAAC,OAAO,CAAC,4EAA4E,CAAC,CAAC;SAC9F;QAED,IAAI,IAAI,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,eAAe,EAAE;YAC5E,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;SACnF;QAED,IAAI,cAAc,KAAK,QAAQ,EAAE;YAC7B,IAAI,IAAI,EAAE;gBACN,IAAI,CAAC,OAAO,CAAC,2FAA2F,CAAC,CAAC;aAC7G;YAED,MAAM,mBAAS,CAAC,aAAa,EAAE,OAAO,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;SAC7E;aAAM,IAAI,cAAc,KAAK,SAAS,EAAE;YACrC,MAAM,mBAAS,CAAC,aAAa,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;SACnF;aAAM;YACH,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SACjE;IACL,CAAC;CAAA;AAED,IAAI;IACA,OAAO,CAAC,GAAG,CAAC,0BAA0B,OAAO,EAAE,CAAC,CAAC;IACjD,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,GAAG,CAAC,iBAAiB,OAAO,wBAAwB,CAAC,CAAC;IAClE,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE;QACV,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;CACN;AAAC,OAAO,KAAK,EAAE;IACZ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;CACjC"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,2CAAoC;AACpC,2CAAoC;AAEpC,sCAAsC;AACtC,6BAA6B;AAE7B,IAAI,cAAc,GAAW,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;AAC9E,MAAM,OAAO,GAAW,OAAO,CAAC;AAEhC,SAAe,IAAI;;QACf,MAAM,aAAa,GAAW,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAW,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QACjD,MAAM,gBAAgB,GAAW,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QACnE,MAAM,iBAAiB,GAAW,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QACrE,MAAM,IAAI,GAAW,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAW,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,cAAc,GAAW,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEtD,IAAI,aAAa,CAAC,MAAM,IAAI,CAAC,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SACjE;QAED,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,iDAAiD,cAAc,EAAE,CAAC,CAAC;SAClF;QAED,IAAI,CAAC,cAAc,EAAE;YACjB,cAAc,GAAG,SAAS,CAAC;SAC9B;QAED,IAAI,CAAC,gBAAgB,EAAE;YACnB,IAAI,CAAC,OAAO,CAAC,qFAAqF,CAAC,CAAC;SACvG;QAED,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;YAC1C,IAAI,CAAC,OAAO,CAAC,4EAA4E,CAAC,CAAC;SAC9F;QAED,IAAI,IAAI,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,eAAe,EAAE;YAC5E,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;SACnF;QAED,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,SAAS,EAAE;YAC9C,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;SAChE;QAED,IAAI,cAAc,KAAK,QAAQ,EAAE;YAC7B,IAAI,IAAI,EAAE;gBACN,IAAI,CAAC,OAAO,CAAC,2FAA2F,CAAC,CAAC;aAC7G;YAED,MAAM,mBAAS,CAAC,aAAa,EAAE,OAAO,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;SAC7E;aAAM,IAAI,cAAc,KAAK,SAAS,EAAE;YACrC,MAAM,mBAAS,CAAC,aAAa,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;SACzF;aAAM;YACH,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SACjE;IACL,CAAC;CAAA;AAED,IAAI;IACA,OAAO,CAAC,GAAG,CAAC,0BAA0B,OAAO,EAAE,CAAC,CAAC;IACjD,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,GAAG,CAAC,iBAAiB,OAAO,wBAAwB,CAAC,CAAC;IAClE,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE;QACV,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;CACN;AAAC,OAAO,KAAK,EAAE;IACZ,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;CACjC"} \ No newline at end of file diff --git a/dist/installV2.js b/dist/installV2.js index 0943d42..cf1dcd1 100644 --- a/dist/installV2.js +++ b/dist/installV2.js @@ -13,12 +13,12 @@ const core = require("@actions/core"); const path = require("path"); const shared_1 = require("./shared"); const VERSION_MANIFEST_ADDR = "https://raw.githubusercontent.com/MarkusJx/prebuilt-boost/main/versions-manifest.json"; -function installV2(boost_version, toolset, platform_version, link, BOOST_ROOT_DIR) { +function installV2(boost_version, toolset, platform_version, link, arch, BOOST_ROOT_DIR) { return __awaiter(this, void 0, void 0, function* () { console.log("Downloading versions-manifest.json..."); const versions = yield shared_1.getVersions(VERSION_MANIFEST_ADDR); console.log("Parsing versions-manifest.json..."); - const ver_data = shared_1.parseArguments(versions, boost_version, toolset, platform_version, link); + const ver_data = shared_1.parseArguments(versions, boost_version, toolset, platform_version, link, arch); const download_url = ver_data.url; const filename = ver_data.filename; core.startGroup(`Create ${BOOST_ROOT_DIR}`); diff --git a/dist/installV2.js.map b/dist/installV2.js.map index f3c510c..75436a8 100644 --- a/dist/installV2.js.map +++ b/dist/installV2.js.map @@ -1 +1 @@ -{"version":3,"file":"installV2.js","sourceRoot":"","sources":["../src/installV2.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAAsC;AACtC,6BAA6B;AAC7B,qCAA4G;AAE5G,MAAM,qBAAqB,GAAW,uFAAuF,CAAC;AAE9H,SAA8B,SAAS,CAAC,aAAqB,EAAE,OAAe,EAAE,gBAAwB,EAAE,IAAY,EAAE,cAAsB;;QAC1I,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAa,MAAM,oBAAW,CAAC,qBAAqB,CAAC,CAAC;QAEpE,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,uBAAc,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;QAC1F,MAAM,YAAY,GAAW,QAAQ,CAAC,GAAG,CAAC;QAC1C,MAAM,QAAQ,GAAW,QAAQ,CAAC,QAAQ,CAAC;QAE3C,IAAI,CAAC,UAAU,CAAC,UAAU,cAAc,EAAE,CAAC,CAAC;QAC5C,wBAAe,CAAC,cAAc,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAClC,MAAM,sBAAa,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,IAAI,QAAQ,GAAW,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACxE,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAE5D,IAAI,CAAC,UAAU,CAAC,WAAW,QAAQ,EAAE,CAAC,CAAC;QACvC,MAAM,mBAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5B,gBAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,0BAA0B,cAAc,SAAS,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,yBAAyB,QAAQ,GAAG,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;CAAA;AAnCD,4BAmCC"} \ No newline at end of file +{"version":3,"file":"installV2.js","sourceRoot":"","sources":["../src/installV2.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAAsC;AACtC,6BAA6B;AAC7B,qCAA4G;AAE5G,MAAM,qBAAqB,GAAW,uFAAuF,CAAC;AAE9H,SAA8B,SAAS,CAAC,aAAqB,EAAE,OAAe,EAAE,gBAAwB,EAAE,IAAY,EAAE,IAAY,EAAE,cAAsB;;QACxJ,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAa,MAAM,oBAAW,CAAC,qBAAqB,CAAC,CAAC;QAEpE,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,uBAAc,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAChG,MAAM,YAAY,GAAW,QAAQ,CAAC,GAAG,CAAC;QAC1C,MAAM,QAAQ,GAAW,QAAQ,CAAC,QAAQ,CAAC;QAE3C,IAAI,CAAC,UAAU,CAAC,UAAU,cAAc,EAAE,CAAC,CAAC;QAC5C,wBAAe,CAAC,cAAc,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAClC,MAAM,sBAAa,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,IAAI,QAAQ,GAAW,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACxE,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QAE5D,IAAI,CAAC,UAAU,CAAC,WAAW,QAAQ,EAAE,CAAC,CAAC;QACvC,MAAM,mBAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5B,gBAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,0BAA0B,cAAc,SAAS,CAAC,CAAC;QAC/D,OAAO,CAAC,GAAG,CAAC,yBAAyB,QAAQ,GAAG,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEhB,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;CAAA;AAnCD,4BAmCC"} \ No newline at end of file diff --git a/dist/shared.js b/dist/shared.js index fbfa513..e47006b 100644 --- a/dist/shared.js +++ b/dist/shared.js @@ -61,7 +61,7 @@ exports.createDirectory = createDirectory; * @param platform_version the requested platform version * @returns the url and file name or throws an error if the requested version could not be found */ -function parseArguments(versions, boost_version, toolset, platform_version, link = null) { +function parseArguments(versions, boost_version, toolset, platform_version, link = null, arch = null) { let platform = process.platform; if (platform === "darwin") { platform = "macos"; @@ -98,7 +98,18 @@ function parseArguments(versions, boost_version, toolset, platform_version, link continue; } else if (!link && file.hasOwnProperty("link") && file["link"] === "shared") { - core.debug("The file's 'link' was set to 'shared', but 'link' was specified, ignoring this file"); + core.debug("The file's 'link' was set to 'shared', but 'link' was not specified, ignoring this file"); + continue; + } + if (arch && !file["arch"]) { + core.warning("The parameter 'arch' was specified, which doesn't have any effect on this boost version"); + } + else if (arch && file.hasOwnProperty("arch") && arch !== file["arch"]) { + core.debug("File does not match param 'arch'"); + continue; + } + else if (!arch && file.hasOwnProperty("arch") && file["arch"] !== "x86") { + core.debug("The file's 'arch' was not set to 'x86', but 'arch' was not specified, ignoring this file"); continue; } return { url: file["download_url"], filename: file["filename"] }; diff --git a/dist/shared.js.map b/dist/shared.js.map index 7b6a99e..9177a24 100644 --- a/dist/shared.js.map +++ b/dist/shared.js.map @@ -1 +1 @@ -{"version":3,"file":"shared.js","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"shared.js","sourceRoot":"","sources":["../src/shared.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index d9f1e4b..d40068d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -465,11 +465,22 @@ } }, "node_modules/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, "engines": { "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } } }, "node_modules/oauth-sign": { @@ -618,6 +629,11 @@ "node": ">=0.8" } }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, "node_modules/tunnel": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", @@ -690,6 +706,20 @@ "extsprintf": "^1.2.0" } }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -1084,9 +1114,12 @@ } }, "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } }, "oauth-sign": { "version": "0.9.0", @@ -1196,6 +1229,11 @@ "punycode": "^2.1.1" } }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=" + }, "tunnel": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", @@ -1248,6 +1286,20 @@ "extsprintf": "^1.2.0" } }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", diff --git a/src/index.ts b/src/index.ts index 019fe71..b25fa1b 100644 --- a/src/index.ts +++ b/src/index.ts @@ -13,6 +13,7 @@ async function main(): Promise { const platform_version: string = core.getInput("platform_version"); const boost_install_dir: string = core.getInput("boost_install_dir"); const link: string = core.getInput("link"); + const arch: string = core.getInput("arch"); let script_version: string = core.getInput("version"); if (boost_version.length <= 0) { @@ -40,6 +41,10 @@ async function main(): Promise { throw new Error("'link' must be one of: 'static', 'shared' or 'static+shared'"); } + if (arch && arch !== "x86" && arch !== "aarch64") { + throw new Error("'arch' must be one of: 'x86' or 'aarch64'"); + } + if (script_version === "legacy") { if (link) { core.warning("The script version was set to 'legacy', but the 'link' option was supplied, ignoring this"); @@ -47,7 +52,7 @@ async function main(): Promise { await installV1(boost_version, toolset, platform_version, BOOST_ROOT_DIR); } else if (script_version === "default") { - await installV2(boost_version, toolset, platform_version, link, BOOST_ROOT_DIR); + await installV2(boost_version, toolset, platform_version, link, arch, BOOST_ROOT_DIR); } else { throw new Error("Invalid value entered for option 'version'"); } diff --git a/src/installV2.ts b/src/installV2.ts index 310f614..818905f 100644 --- a/src/installV2.ts +++ b/src/installV2.ts @@ -4,12 +4,12 @@ import { cleanup, createDirectory, downloadBoost, getVersions, parseArguments, u const VERSION_MANIFEST_ADDR: string = "https://raw.githubusercontent.com/MarkusJx/prebuilt-boost/main/versions-manifest.json"; -export default async function installV2(boost_version: string, toolset: string, platform_version: string, link: string, BOOST_ROOT_DIR: string): Promise { +export default async function installV2(boost_version: string, toolset: string, platform_version: string, link: string, arch: string, BOOST_ROOT_DIR: string): Promise { console.log("Downloading versions-manifest.json..."); const versions: object[] = await getVersions(VERSION_MANIFEST_ADDR); console.log("Parsing versions-manifest.json..."); - const ver_data = parseArguments(versions, boost_version, toolset, platform_version, link); + const ver_data = parseArguments(versions, boost_version, toolset, platform_version, link, arch); const download_url: string = ver_data.url; const filename: string = ver_data.filename; diff --git a/src/shared.ts b/src/shared.ts index 4a216ed..f6b9ebb 100644 --- a/src/shared.ts +++ b/src/shared.ts @@ -57,7 +57,7 @@ type parsedVersion = { * @param platform_version the requested platform version * @returns the url and file name or throws an error if the requested version could not be found */ -export function parseArguments(versions: object[], boost_version: string, toolset: string | null, platform_version: string, link: string | null = null): parsedVersion { +export function parseArguments(versions: object[], boost_version: string, toolset: string | null, platform_version: string, link: string | null = null, arch: string | null = null): parsedVersion { let platform: string = process.platform; if (platform === "darwin") { platform = "macos"; @@ -96,7 +96,17 @@ export function parseArguments(versions: object[], boost_version: string, toolse core.debug("File does not match param 'link'"); continue; } else if (!link && file.hasOwnProperty("link") && file["link"] === "shared") { - core.debug("The file's 'link' was set to 'shared', but 'link' was specified, ignoring this file"); + core.debug("The file's 'link' was set to 'shared', but 'link' was not specified, ignoring this file"); + continue; + } + + if (arch && !file["arch"]) { + core.warning("The parameter 'arch' was specified, which doesn't have any effect on this boost version"); + } else if (arch && file.hasOwnProperty("arch") && arch !== file["arch"]) { + core.debug("File does not match param 'arch'"); + continue; + } else if (!arch && file.hasOwnProperty("arch") && file["arch"] !== "x86") { + core.debug("The file's 'arch' was not set to 'x86', but 'arch' was not specified, ignoring this file"); continue; } @@ -168,7 +178,7 @@ export function deleteFiles(files: string[]): void { * @param out_dir the output directory * @param working_directory the working directory */ - function untarLinux(filename: string, out_dir: string, working_directory: string, rename: boolean): Promise { +function untarLinux(filename: string, out_dir: string, working_directory: string, rename: boolean): Promise { return new Promise((resolve, reject) => { const args: string[] = ["xzf", filename]; if (rename) { diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 1da64b9..e108435 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -3,6 +3,20 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.14) set(CMAKE_CXX_STANDARD 17) +if (BUILD_ARM_BINARIES) + message(STATUS "Compiling for ARM64") + + set(CMAKE_SYSTEM_PROCESSOR arm) + set(CROSS aarch64-linux-gnu-) + set(CMAKE_C_COMPILER ${CROSS}gcc) + set(CMAKE_CXX_COMPILER ${CROSS}g++) + set(AS_EXECUTABLE ${CROSS}as) + set(CMAKE_C_FLAGS_INIT "-march=armv8-a") + set(CMAKE_CXX_FLAGS_INIT "-march=armv8-a") + set(AOM_AS_FLAGS "-march=armv8-a") + set(CMAKE_SYSTEM_PROCESSOR "arm64") +endif () + find_package(Boost 1.70 COMPONENTS thread chrono REQUIRED) message(STATUS "Boost version: ${Boost_VERSION_STRING}")