From fce827625022e42e6e9538437a5c9741f22d8c27 Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Sat, 17 Jun 2023 21:20:16 +0200
Subject: [PATCH] Use ninja build tool
---
action.yml | 4 +
package-lock.json | 144 +-
package.json | 4 +-
packed/index.js | 4531 +++++++++++++++++++++++++++++++--
src/{tags.ts => constants.ts} | 5 +-
src/main.ts | 57 +-
src/ninja.ts | 59 +
src/platform.ts | 51 +
src/{error.ts => util.ts} | 0
src/version.ts | 4 +-
10 files changed, 4536 insertions(+), 323 deletions(-)
rename src/{tags.ts => constants.ts} (87%)
create mode 100644 src/ninja.ts
create mode 100644 src/platform.ts
rename src/{error.ts => util.ts} (100%)
diff --git a/action.yml b/action.yml
index 2f53fd2..1b0dde7 100644
--- a/action.yml
+++ b/action.yml
@@ -13,6 +13,10 @@ inputs:
description: "CMake build type (Release/Debug/RelWithDebInfo/MinSizeRel)"
default: "Release"
required: true
+ ninja:
+ description: "Use Ninja make files"
+ default: "true"
+ required: true
outputs:
prefix:
description: "Actual root of the SDL package"
diff --git a/package-lock.json b/package-lock.json
index 292c695..fafbf4d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -7,7 +7,9 @@
"name": "setup-sdl",
"license": "MIT",
"dependencies": {
- "@actions/core": "^1.10.0"
+ "@actions/core": "^1.10.0",
+ "@actions/tool-cache": "^2.0.1",
+ "nodejs-file-downloader": "^4.12.1"
},
"devDependencies": {
"@types/node": "^18.11.18",
@@ -30,6 +32,14 @@
"uuid": "^8.3.2"
}
},
+ "node_modules/@actions/exec": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@actions/exec/-/exec-1.1.1.tgz",
+ "integrity": "sha512-+sCcHHbVdk93a0XT19ECtO/gIXoxvdsgQLzb2fE2/5sIZmWQuluYyjPQtrtTHdU1YzTZ7bAPN4sITq2xi1679w==",
+ "dependencies": {
+ "@actions/io": "^1.0.1"
+ }
+ },
"node_modules/@actions/http-client": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.1.0.tgz",
@@ -38,6 +48,41 @@
"tunnel": "^0.0.6"
}
},
+ "node_modules/@actions/io": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@actions/io/-/io-1.1.3.tgz",
+ "integrity": "sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q=="
+ },
+ "node_modules/@actions/tool-cache": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/@actions/tool-cache/-/tool-cache-2.0.1.tgz",
+ "integrity": "sha512-iPU+mNwrbA8jodY8eyo/0S/QqCKDajiR8OxWTnSk/SnYg0sj8Hp4QcUEVC1YFpHWXtrfbQrE13Jz4k4HXJQKcA==",
+ "dependencies": {
+ "@actions/core": "^1.2.6",
+ "@actions/exec": "^1.0.0",
+ "@actions/http-client": "^2.0.1",
+ "@actions/io": "^1.1.1",
+ "semver": "^6.1.0",
+ "uuid": "^3.3.2"
+ }
+ },
+ "node_modules/@actions/tool-cache/node_modules/semver": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@actions/tool-cache/node_modules/uuid": {
+ "version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+ "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
+ "bin": {
+ "uuid": "bin/uuid"
+ }
+ },
"node_modules/@babel/runtime": {
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.5.tgz",
@@ -422,6 +467,17 @@
"acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
},
+ "node_modules/agent-base": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
+ "dependencies": {
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6.0.0"
+ }
+ },
"node_modules/ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
@@ -756,7 +812,6 @@
"version": "4.3.4",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
"integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
"dependencies": {
"ms": "2.1.2"
},
@@ -1538,6 +1593,25 @@
"integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
"dev": true
},
+ "node_modules/follow-redirects": {
+ "version": "1.15.2",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
+ "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/RubenVerborgh"
+ }
+ ],
+ "engines": {
+ "node": ">=4.0"
+ },
+ "peerDependenciesMeta": {
+ "debug": {
+ "optional": true
+ }
+ }
+ },
"node_modules/for-each": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
@@ -1804,6 +1878,18 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/https-proxy-agent": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
+ "dependencies": {
+ "agent-base": "6",
+ "debug": "4"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/ignore": {
"version": "5.2.4",
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
@@ -2266,6 +2352,25 @@
"node": ">=8.6"
}
},
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
"node_modules/minimatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
@@ -2290,8 +2395,7 @@
"node_modules/ms": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/natural-compare": {
"version": "1.4.0",
@@ -2311,6 +2415,17 @@
"integrity": "sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ==",
"dev": true
},
+ "node_modules/nodejs-file-downloader": {
+ "version": "4.12.1",
+ "resolved": "https://registry.npmjs.org/nodejs-file-downloader/-/nodejs-file-downloader-4.12.1.tgz",
+ "integrity": "sha512-LpfCTNhh805AlLnJnzt1PuEj+RmbrccbAQZ6hBRw2e6QPVR0Qntuo6qqyvPHG5s77/0w0IEKgRAD4nbSnr/X4w==",
+ "dependencies": {
+ "follow-redirects": "^1.15.1",
+ "https-proxy-agent": "^5.0.0",
+ "mime-types": "^2.1.27",
+ "sanitize-filename": "^1.6.3"
+ }
+ },
"node_modules/object-inspect": {
"version": "1.12.3",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz",
@@ -2699,6 +2814,14 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/sanitize-filename": {
+ "version": "1.6.3",
+ "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz",
+ "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==",
+ "dependencies": {
+ "truncate-utf8-bytes": "^1.0.0"
+ }
+ },
"node_modules/semver": {
"version": "7.5.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.2.tgz",
@@ -2888,6 +3011,14 @@
"node": ">=8.0"
}
},
+ "node_modules/truncate-utf8-bytes": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
+ "integrity": "sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==",
+ "dependencies": {
+ "utf8-byte-length": "^1.0.1"
+ }
+ },
"node_modules/tsconfig-paths": {
"version": "3.14.2",
"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz",
@@ -3034,6 +3165,11 @@
"punycode": "^2.1.0"
}
},
+ "node_modules/utf8-byte-length": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz",
+ "integrity": "sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA=="
+ },
"node_modules/uuid": {
"version": "8.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
diff --git a/package.json b/package.json
index c71e7ee..be150c3 100644
--- a/package.json
+++ b/package.json
@@ -26,7 +26,9 @@
"SDL"
],
"dependencies": {
- "@actions/core": "^1.10.0"
+ "@actions/core": "^1.10.0",
+ "@actions/tool-cache": "^2.0.1",
+ "nodejs-file-downloader": "^4.12.1"
},
"devDependencies": {
"@types/node": "^18.11.18",
diff --git a/packed/index.js b/packed/index.js
index d3dce68..c6ffc3f 100644
--- a/packed/index.js
+++ b/packed/index.js
@@ -1,24 +1,58 @@
/******/ (() => { // webpackBootstrap
/******/ var __webpack_modules__ = ({
-/***/ 624:
+/***/ 7077:
/***/ ((__unused_webpack_module, exports) => {
"use strict";
Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.SetupSdlError = void 0;
-class SetupSdlError extends Error {
- constructor(message) {
- super(message);
- }
-}
-exports.SetupSdlError = SetupSdlError;
+exports.SDL_TAGS = exports.SDL_GIT_URL = exports.NINJA_VERSION = void 0;
+exports.NINJA_VERSION = "1.11.1";
+exports.SDL_GIT_URL = "https://github.com/libsdl-org/SDL.git";
+exports.SDL_TAGS = [
+ "2.0.22-RC1",
+ "2.0.22-RC2",
+ "2.0.22-RC3",
+ "release-2.0.0",
+ "release-2.0.1",
+ "release-2.0.2",
+ "release-2.0.3",
+ "release-2.0.4",
+ "release-2.0.5",
+ "release-2.0.6",
+ "release-2.0.7",
+ "release-2.0.8",
+ "release-2.0.9",
+ "release-2.0.10",
+ "release-2.0.12",
+ "release-2.0.14",
+ "release-2.0.16",
+ "release-2.0.18",
+ "release-2.0.20",
+ "release-2.0.22",
+ "prerelease-2.23.1",
+ "prerelease-2.23.2",
+ "release-2.24.0",
+ "release-2.24.1",
+ "release-2.24.2",
+ "prerelease-2.25.1",
+ "release-2.26.0",
+ "release-2.26.1",
+ "release-2.26.2",
+ "release-2.26.3",
+ "release-2.26.4",
+ "release-2.26.5",
+ "prerelease-2.27.1",
+ // Add SDL2 releases here
+ "prerelease-3.0.0",
+ // Add SDL3 releases here
+];
/***/ }),
-/***/ 538:
+/***/ 9538:
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
"use strict";
@@ -47,48 +81,17 @@ var __importStar = (this && this.__importStar) || function (mod) {
return result;
};
Object.defineProperty(exports, "__esModule", ({ value: true }));
-const child_process = __importStar(__nccwpck_require__(81));
-const fs = __importStar(__nccwpck_require__(147));
-const os = __importStar(__nccwpck_require__(37));
-const core = __importStar(__nccwpck_require__(186));
-const error_1 = __nccwpck_require__(624);
-const version_1 = __nccwpck_require__(970);
-const SDL_GIT_URL = "https://github.com/libsdl-org/SDL.git";
-var SdlBuildPlatform;
-(function (SdlBuildPlatform) {
- SdlBuildPlatform["Windows"] = "Windows";
- SdlBuildPlatform["Linux"] = "Linux";
- SdlBuildPlatform["Macos"] = "MacOS";
-})(SdlBuildPlatform || (SdlBuildPlatform = {}));
-function get_sdl_build_platform() {
- switch (os.platform()) {
- case "linux":
- return SdlBuildPlatform.Linux;
- case "darwin":
- return SdlBuildPlatform.Macos;
- case "win32":
- return SdlBuildPlatform.Windows;
- }
- throw new error_1.SetupSdlError("Unsupported build platform");
-}
-function get_platform_root_directory(build_platform) {
- const root = core.getInput("root");
- if (root) {
- return root;
- }
- switch (build_platform) {
- case SdlBuildPlatform.Windows:
- return "C:/setupsdl";
- case SdlBuildPlatform.Macos:
- case SdlBuildPlatform.Linux:
- return "/tmp/setup-sdl";
- default:
- throw new error_1.SetupSdlError("Unsupported SDL build platform");
- }
-}
+const child_process = __importStar(__nccwpck_require__(2081));
+const fs = __importStar(__nccwpck_require__(7147));
+const core = __importStar(__nccwpck_require__(2186));
+const constants_1 = __nccwpck_require__(7077);
+const ninja_1 = __nccwpck_require__(6526);
+const util_1 = __nccwpck_require__(9731);
+const version_1 = __nccwpck_require__(6970);
+const platform_1 = __nccwpck_require__(5527);
async function convert_git_branch_tag_to_hash(branch_tag) {
const git_hash = await core.group(`Calculating git hash of ${branch_tag}`, async () => {
- const command = `git ls-remote ${SDL_GIT_URL} ${branch_tag}`;
+ const command = `git ls-remote ${constants_1.SDL_GIT_URL} ${branch_tag}`;
core.info(`Executing "${command}"`);
const output = child_process.execSync(command, {
stdio: "pipe",
@@ -108,7 +111,7 @@ async function checkout_sdl_git_hash(branch_tag_hash, directory) {
fs.mkdirSync(directory, { recursive: true });
await core.group(`Checking out ${branch_tag_hash} into ${directory}`, async () => {
await echo_command_and_execute(`git init`, directory);
- await echo_command_and_execute(`git remote add SDL ${SDL_GIT_URL}`, directory);
+ await echo_command_and_execute(`git remote add SDL ${constants_1.SDL_GIT_URL}`, directory);
await echo_command_and_execute(`git fetch --depth 1 SDL ${branch_tag_hash}`, directory);
await echo_command_and_execute(`git checkout FETCH_HEAD`, directory);
});
@@ -134,10 +137,11 @@ async function cmake_configure_build(source_dir, build_dir, prefix_dir, build_ty
});
}
async function run() {
- const SDL_BUILD_PLATFORM = get_sdl_build_platform();
+ const SDL_BUILD_PLATFORM = (0, platform_1.get_sdl_build_platform)();
core.info(`build platform=${SDL_BUILD_PLATFORM}`);
- const SETUP_SDL_ROOT = get_platform_root_directory(SDL_BUILD_PLATFORM);
+ const SETUP_SDL_ROOT = (0, platform_1.get_platform_root_directory)(SDL_BUILD_PLATFORM);
core.info(`root=${SETUP_SDL_ROOT}`);
+ const USE_NINJA = core.getBooleanInput("ninja");
const REQUESTED_VERSION_TYPE = (0, version_1.parse_requested_sdl_version)(core.getInput("version"));
const CMAKE_BUILD_TYPE = core.getInput("build-type");
const CMAKE_BUILD_TYPES = [
@@ -147,7 +151,7 @@ async function run() {
"RelWithDebInfo",
];
if (!CMAKE_BUILD_TYPES.includes(CMAKE_BUILD_TYPE)) {
- throw new error_1.SetupSdlError("Invalid build-type");
+ throw new util_1.SetupSdlError("Invalid build-type");
}
let git_branch_hash;
if (REQUESTED_VERSION_TYPE == null) {
@@ -163,22 +167,30 @@ async function run() {
git_branch_hash = "main";
}
else {
- throw new error_1.SetupSdlError("Invalid -head version");
+ throw new util_1.SetupSdlError("Invalid -head version");
}
}
else {
const sdl_release = version_1.SdlRelease.find_release(requested_version, core.getBooleanInput("pre-release"), requested_type);
if (!sdl_release) {
- throw new error_1.SetupSdlError(`Could not find a matching SDL release for ${requested_version}`);
+ throw new util_1.SetupSdlError(`Could not find a matching SDL release for ${requested_version}`);
}
git_branch_hash = sdl_release.tag;
}
}
const git_hash = await convert_git_branch_tag_to_hash(git_branch_hash);
+ if (USE_NINJA) {
+ await core.group(`Configuring Ninja`, async () => {
+ await (0, ninja_1.configure_ninja_build_tool)(SDL_BUILD_PLATFORM);
+ });
+ }
const source_dir = `${SETUP_SDL_ROOT}/src`;
const build_dir = `${SETUP_SDL_ROOT}/build`;
const install_dir = `${SETUP_SDL_ROOT}`;
- const cmake_args = `-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}`;
+ let cmake_args = `-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}`;
+ if (USE_NINJA) {
+ cmake_args += " -GNinja";
+ }
await checkout_sdl_git_hash(git_hash, source_dir);
await cmake_configure_build(source_dir, build_dir, install_dir, CMAKE_BUILD_TYPE, cmake_args);
core.setOutput("prefix", install_dir);
@@ -188,72 +200,192 @@ run();
/***/ }),
-/***/ 11:
+/***/ 6526:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ var desc = Object.getOwnPropertyDescriptor(m, k);
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+ desc = { enumerable: true, get: function() { return m[k]; } };
+ }
+ Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.configure_ninja_build_tool = exports.get_ninja_download_url = void 0;
+const fs = __importStar(__nccwpck_require__(7147));
+const process = __importStar(__nccwpck_require__(7282));
+const core = __importStar(__nccwpck_require__(2186));
+const tc = __importStar(__nccwpck_require__(7784));
+const constants_1 = __nccwpck_require__(7077);
+const platform_1 = __nccwpck_require__(5527);
+function get_ninja_download_url(platform, version) {
+ let zip_filename;
+ switch (platform) {
+ case platform_1.SdlBuildPlatform.Linux:
+ zip_filename = "ninja-linux.zip";
+ break;
+ case platform_1.SdlBuildPlatform.Macos:
+ zip_filename = "ninja-mac.zip";
+ break;
+ case platform_1.SdlBuildPlatform.Windows:
+ zip_filename = "ninja-windows.zip";
+ break;
+ }
+ return `https://github.com/ninja-build/ninja/releases/download/v${version}/${zip_filename}`;
+}
+exports.get_ninja_download_url = get_ninja_download_url;
+async function configure_ninja_build_tool(platform) {
+ const ninja_dir = `${(0, platform_1.get_platform_root_directory)(platform)}/ninja`;
+ fs.mkdirSync(ninja_dir, { recursive: true });
+ const cache_name = `sdl-${platform}`;
+ let ninja_directory = tc.find(cache_name, constants_1.NINJA_VERSION);
+ if (!ninja_directory) {
+ core.info(`Could not find ninja ${constants_1.NINJA_VERSION} in the cache.`);
+ const ninja_url = get_ninja_download_url(platform, constants_1.NINJA_VERSION);
+ core.info(`Downloading ${ninja_url}.`);
+ const ninja_zip_path = await tc.downloadTool(ninja_url);
+ core.info(`Extracting ${ninja_zip_path}.`);
+ const ninja_extract_folder = await tc.extractZip(ninja_zip_path, ninja_dir);
+ ninja_directory = await tc.cacheDir(ninja_extract_folder, cache_name, constants_1.NINJA_VERSION);
+ }
+ const path_env_sep = (0, platform_1.get_platform_path_env_separator)(platform);
+ process.env.PATH = ninja_directory + path_env_sep + process.env.PATH;
+}
+exports.configure_ninja_build_tool = configure_ninja_build_tool;
+
+
+/***/ }),
+
+/***/ 5527:
+/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
+
+"use strict";
+
+var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ var desc = Object.getOwnPropertyDescriptor(m, k);
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
+ desc = { enumerable: true, get: function() { return m[k]; } };
+ }
+ Object.defineProperty(o, k2, desc);
+}) : (function(o, m, k, k2) {
+ if (k2 === undefined) k2 = k;
+ o[k2] = m[k];
+}));
+var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
+}) : function(o, v) {
+ o["default"] = v;
+});
+var __importStar = (this && this.__importStar) || function (mod) {
+ if (mod && mod.__esModule) return mod;
+ var result = {};
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
+ __setModuleDefault(result, mod);
+ return result;
+};
+Object.defineProperty(exports, "__esModule", ({ value: true }));
+exports.get_platform_root_directory = exports.get_platform_path_env_separator = exports.get_sdl_build_platform = exports.SdlBuildPlatform = void 0;
+const os = __importStar(__nccwpck_require__(2037));
+const core = __importStar(__nccwpck_require__(2186));
+const util_1 = __nccwpck_require__(9731);
+var SdlBuildPlatform;
+(function (SdlBuildPlatform) {
+ SdlBuildPlatform["Windows"] = "Windows";
+ SdlBuildPlatform["Linux"] = "Linux";
+ SdlBuildPlatform["Macos"] = "MacOS";
+})(SdlBuildPlatform = exports.SdlBuildPlatform || (exports.SdlBuildPlatform = {}));
+function get_sdl_build_platform() {
+ switch (os.platform()) {
+ case "linux":
+ return SdlBuildPlatform.Linux;
+ case "darwin":
+ return SdlBuildPlatform.Macos;
+ case "win32":
+ return SdlBuildPlatform.Windows;
+ }
+ throw new util_1.SetupSdlError("Unsupported build platform");
+}
+exports.get_sdl_build_platform = get_sdl_build_platform;
+function get_platform_path_env_separator(platform) {
+ switch (platform) {
+ case SdlBuildPlatform.Windows:
+ return ";";
+ case SdlBuildPlatform.Macos:
+ case SdlBuildPlatform.Linux:
+ default:
+ return ":";
+ }
+}
+exports.get_platform_path_env_separator = get_platform_path_env_separator;
+function get_platform_root_directory(platform) {
+ const root = core.getInput("root");
+ if (root) {
+ return root;
+ }
+ switch (platform) {
+ case SdlBuildPlatform.Windows:
+ return "C:/setupsdl";
+ case SdlBuildPlatform.Macos:
+ case SdlBuildPlatform.Linux:
+ return "/tmp/setup-sdl";
+ }
+}
+exports.get_platform_root_directory = get_platform_root_directory;
+
+
+/***/ }),
+
+/***/ 9731:
/***/ ((__unused_webpack_module, exports) => {
"use strict";
-// Available SDL releases
-// After a (successful)
Object.defineProperty(exports, "__esModule", ({ value: true }));
-exports.SDL_TAGS = void 0;
-exports.SDL_TAGS = [
- "2.0.22-RC1",
- "2.0.22-RC2",
- "2.0.22-RC3",
- "release-2.0.0",
- "release-2.0.1",
- "release-2.0.2",
- "release-2.0.3",
- "release-2.0.4",
- "release-2.0.5",
- "release-2.0.6",
- "release-2.0.7",
- "release-2.0.8",
- "release-2.0.9",
- "release-2.0.10",
- "release-2.0.12",
- "release-2.0.14",
- "release-2.0.16",
- "release-2.0.18",
- "release-2.0.20",
- "release-2.0.22",
- "prerelease-2.23.1",
- "prerelease-2.23.2",
- "release-2.24.0",
- "release-2.24.1",
- "release-2.24.2",
- "prerelease-2.25.1",
- "release-2.26.0",
- "release-2.26.1",
- "release-2.26.2",
- "release-2.26.3",
- "release-2.26.4",
- "release-2.26.5",
- "prerelease-2.27.1",
- // Add SDL2 releases here
- "prerelease-3.0.0",
- // Add SDL3 releases here
-];
+exports.SetupSdlError = void 0;
+class SetupSdlError extends Error {
+ constructor(message) {
+ super(message);
+ }
+}
+exports.SetupSdlError = SetupSdlError;
/***/ }),
-/***/ 970:
+/***/ 6970:
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
"use strict";
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.parse_requested_sdl_version = exports.SdlRelease = exports.SdlReleaseType = exports.SdlVersion = void 0;
-const tags_1 = __nccwpck_require__(11);
-const error_1 = __nccwpck_require__(624);
+const constants_1 = __nccwpck_require__(7077);
+const util_1 = __nccwpck_require__(9731);
class SdlVersion {
constructor(version) {
if (typeof version == "string") {
const v_list = version.split(".");
if (v_list.length == 0 || v_list.length > 3) {
- throw new error_1.SetupSdlError(`Cannot convert version (${version}) to MAJOR.MINOR.PATCH`);
+ throw new util_1.SetupSdlError(`Cannot convert version (${version}) to MAJOR.MINOR.PATCH`);
}
this.major = Number(v_list[0]);
if (v_list.length > 0) {
@@ -275,7 +407,7 @@ class SdlVersion {
this.patch = version.patch;
}
if (isNaN(this.major) || isNaN(this.minor) || isNaN(this.patch)) {
- throw new error_1.SetupSdlError(`Cannot convert version (${version}) to MAJOR.MINOR.PATCH`);
+ throw new util_1.SetupSdlError(`Cannot convert version (${version}) to MAJOR.MINOR.PATCH`);
}
}
compare(other) {
@@ -323,10 +455,10 @@ class SdlRelease {
static get_releases() {
const releases = [];
const R = new RegExp("(release-|prerelease-)([0-9.]+)(-RC([0-9]+))");
- for (const tag of tags_1.SDL_TAGS) {
+ for (const tag of constants_1.SDL_TAGS) {
const m = tag.match(R);
if (m == null) {
- throw new error_1.SetupSdlError(`Invalid tag: ${tag}`);
+ throw new util_1.SetupSdlError(`Invalid tag: ${tag}`);
}
let prerelease = null;
if (m[1] != null) {
@@ -431,7 +563,7 @@ exports.parse_requested_sdl_version = parse_requested_sdl_version;
/***/ }),
-/***/ 351:
+/***/ 7351:
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
"use strict";
@@ -457,8 +589,8 @@ var __importStar = (this && this.__importStar) || function (mod) {
};
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.issue = exports.issueCommand = void 0;
-const os = __importStar(__nccwpck_require__(37));
-const utils_1 = __nccwpck_require__(278);
+const os = __importStar(__nccwpck_require__(2037));
+const utils_1 = __nccwpck_require__(5278);
/**
* Commands
*
@@ -530,7 +662,7 @@ function escapeProperty(s) {
/***/ }),
-/***/ 186:
+/***/ 2186:
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
"use strict";
@@ -565,12 +697,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
};
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0;
-const command_1 = __nccwpck_require__(351);
+const command_1 = __nccwpck_require__(7351);
const file_command_1 = __nccwpck_require__(717);
-const utils_1 = __nccwpck_require__(278);
-const os = __importStar(__nccwpck_require__(37));
-const path = __importStar(__nccwpck_require__(17));
-const oidc_utils_1 = __nccwpck_require__(41);
+const utils_1 = __nccwpck_require__(5278);
+const os = __importStar(__nccwpck_require__(2037));
+const path = __importStar(__nccwpck_require__(1017));
+const oidc_utils_1 = __nccwpck_require__(8041);
/**
* The code to exit an action
*/
@@ -855,17 +987,17 @@ exports.getIDToken = getIDToken;
/**
* Summary exports
*/
-var summary_1 = __nccwpck_require__(327);
+var summary_1 = __nccwpck_require__(1327);
Object.defineProperty(exports, "summary", ({ enumerable: true, get: function () { return summary_1.summary; } }));
/**
* @deprecated use core.summary
*/
-var summary_2 = __nccwpck_require__(327);
+var summary_2 = __nccwpck_require__(1327);
Object.defineProperty(exports, "markdownSummary", ({ enumerable: true, get: function () { return summary_2.markdownSummary; } }));
/**
* Path exports
*/
-var path_utils_1 = __nccwpck_require__(981);
+var path_utils_1 = __nccwpck_require__(2981);
Object.defineProperty(exports, "toPosixPath", ({ enumerable: true, get: function () { return path_utils_1.toPosixPath; } }));
Object.defineProperty(exports, "toWin32Path", ({ enumerable: true, get: function () { return path_utils_1.toWin32Path; } }));
Object.defineProperty(exports, "toPlatformPath", ({ enumerable: true, get: function () { return path_utils_1.toPlatformPath; } }));
@@ -902,10 +1034,10 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.prepareKeyValueMessage = exports.issueFileCommand = void 0;
// We use any as a valid input type
/* eslint-disable @typescript-eslint/no-explicit-any */
-const fs = __importStar(__nccwpck_require__(147));
-const os = __importStar(__nccwpck_require__(37));
-const uuid_1 = __nccwpck_require__(840);
-const utils_1 = __nccwpck_require__(278);
+const fs = __importStar(__nccwpck_require__(7147));
+const os = __importStar(__nccwpck_requir
(Patch may be truncated, please check the link at the top of this post.)