diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6df388f946..cde2ee58b9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -302,7 +302,7 @@ jobs: if: steps.ninja-build-cache.outputs.cache-hit != 'true' uses: actions/setup-python@v5 with: - python-version: "3.10" + python-version: "3.13" - name: Setup MSVC for ninja build (Windows) if: steps.ninja-build-cache.outputs.cache-hit != 'true' && runner.os == 'Windows' diff --git a/ninja/configure.py b/ninja/configure.py index 808408dc61..b0fb998988 100755 --- a/ninja/configure.py +++ b/ninja/configure.py @@ -23,7 +23,7 @@ from optparse import OptionParser import os -import pipes +import shlex import string import subprocess import sys @@ -257,7 +257,7 @@ def _run_command(self, cmdline): env_keys = set(['CXX', 'AR', 'CFLAGS', 'CXXFLAGS', 'LDFLAGS']) configure_env = dict((k, os.environ[k]) for k in os.environ if k in env_keys) if configure_env: - config_str = ' '.join([k + '=' + pipes.quote(configure_env[k]) + config_str = ' '.join([k + '=' + shlex.quote(configure_env[k]) for k in configure_env]) n.variable('configure_env', config_str + '$ ') n.newline() diff --git a/scripts/buildNinjaBinary.js b/scripts/buildNinjaBinary.js index 0bfc6f8dfe..dc09eaf0cc 100755 --- a/scripts/buildNinjaBinary.js +++ b/scripts/buildNinjaBinary.js @@ -6,7 +6,7 @@ import { execSync } from "node:child_process"; import { ninjaDir } from "#dev/paths"; const platform = process.platform; -const buildCommand = "python configure.py --bootstrap --verbose"; +const buildCommand = "python3 configure.py --bootstrap --verbose"; if (platform === "win32") { // On Windows, the build uses the MSVC compiler which needs to be on the path.