Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: ninja-build/ninja
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.11.1
Choose a base ref
...
head repository: ninja-build/ninja
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Loading
Showing with 7,914 additions and 2,539 deletions.
  1. +2 −0 .clang-tidy
  2. +7 −0 .github/dependabot.yml
  3. +68 −0 .github/workflows/linux-musl.yml
  4. +188 −122 .github/workflows/linux.yml
  5. +8 −8 .github/workflows/macos.yml
  6. +19 −8 .github/workflows/windows.yml
  7. +1 −0 .gitignore
  8. +108 −16 CMakeLists.txt
  9. +0 −4 CONTRIBUTING.md
  10. +50 −1 README.md
  11. +22 −14 RELEASING → RELEASING.md
  12. +3 −24 appveyor.yml
  13. +170 −91 configure.py
  14. +73 −21 doc/manual.asciidoc
  15. +39 −0 doc/style.css
  16. +8 −3 misc/ci.py
  17. +4 −4 misc/manifest_fuzzer.cc
  18. +3 −4 misc/measure.py
  19. +0 −85 misc/ninja-mode.el
  20. +53 −21 misc/ninja_syntax.py
  21. +26 −25 misc/ninja_syntax_test.py
  22. +462 −28 misc/output_test.py
  23. +24 −23 misc/write_fake_manifests.py
  24. +20 −17 misc/zsh-completion
  25. +8 −3 src/browse.cc
  26. +13 −14 src/browse.py
  27. +263 −155 src/build.cc
  28. +49 −25 src/build.h
  29. +66 −116 src/build_log.cc
  30. +13 −11 src/build_log.h
  31. +1 −1 src/build_log_perftest.cc
  32. +43 −34 src/build_log_test.cc
  33. +597 −200 src/build_test.cc
  34. +3 −1 src/clean.cc
  35. +2 −2 src/clean_test.cc
  36. +65 −0 src/command_collector.h
  37. +7 −0 src/debug_flags.cc
  38. +2 −4 src/debug_flags.h
  39. +80 −78 src/depfile_parser.cc
  40. +4 −2 src/depfile_parser.in.cc
  41. +31 −0 src/depfile_parser_test.cc
  42. +45 −30 src/deps_log.cc
  43. +3 −2 src/deps_log.h
  44. +178 −7 src/deps_log_test.cc
  45. +41 −10 src/disk_interface.cc
  46. +9 −5 src/disk_interface.h
  47. +32 −2 src/disk_interface_test.cc
  48. +15 −25 src/dyndep.cc
  49. +7 −2 src/dyndep.h
  50. +5 −11 src/dyndep_parser.cc
  51. +276 −0 src/elide_middle.cc
  52. +27 −0 src/elide_middle.h
  53. +72 −0 src/elide_middle_perftest.cc
  54. +101 −0 src/elide_middle_test.cc
  55. +56 −25 src/eval_env.cc
  56. +17 −5 src/eval_env.h
  57. +12 −3 src/exit_status.h
  58. +88 −0 src/explanations.h
  59. +97 −0 src/explanations_test.cc
  60. +147 −99 src/graph.cc
  61. +140 −47 src/graph.h
  62. +207 −43 src/graph_test.cc
  63. +4 −80 src/hash_map.h
  64. +5 −0 src/includes_normalize.h
  65. +5 −4 src/includes_normalize_test.cc
  66. +1 −1 src/json.h
  67. +8 −6 src/line_printer.cc
  68. +33 −36 src/manifest_parser.cc
  69. +10 −5 src/manifest_parser.h
  70. +25 −54 src/manifest_parser_test.cc
  71. +27 −43 src/metrics.cc
  72. +13 −7 src/metrics.h
  73. +3 −3 src/minidump-win32.cc
  74. +4 −3 src/missing_deps.cc
  75. +0 −7 src/missing_deps.h
  76. +10 −5 src/missing_deps_test.cc
  77. +5 −0 src/msvc_helper.h
  78. +5 −5 src/msvc_helper_main-win32.cc
  79. +297 −84 src/ninja.cc
  80. +3 −145 src/ninja_test.cc
  81. +4 −8 src/parser.cc
  82. +1 −0 src/parser.h
  83. +98 −0 src/real_command_runner.cc
  84. +15 −6 src/state.cc
  85. +9 −4 src/state.h
  86. +2 −2 src/state_test.cc
  87. +0 −267 src/status.cc
  88. +18 −82 src/status.h
  89. +463 −0 src/status_printer.cc
  90. +130 −0 src/status_printer.h
  91. +3 −2 src/status_test.cc
  92. +4 −0 src/string_piece.h
  93. +5 −5 src/string_piece_util_test.cc
  94. +7 −5 src/subprocess-posix.cc
  95. +3 −3 src/subprocess-win32.cc
  96. +5 −2 src/subprocess_test.cc
  97. +26 −0 src/test.cc
  98. +29 −85 src/test.h
  99. +8 −0 src/third_party/emhash/README.ninja
  100. +1,834 −0 src/third_party/emhash/hash_table8.hpp
  101. +7 −0 src/third_party/rapidhash/README.ninja
  102. +323 −0 src/third_party/rapidhash/rapidhash.h
  103. +151 −56 src/util.cc
  104. +27 −18 src/util.h
  105. +102 −24 src/util_test.cc
  106. +1 −1 src/version.cc
  107. +1 −0 windows/ninja.manifest
2 changes: 2 additions & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -6,6 +6,7 @@ Checks: '
,readability-redundant-string-cstr,
,readability-redundant-string-init,
,readability-simplify-boolean-expr,
,cppcoreguidelines-pro-type-cstyle-cast,
'
WarningsAsErrors: '
,readability-avoid-const-params-in-decls,
@@ -14,4 +15,5 @@ WarningsAsErrors: '
,readability-redundant-string-cstr,
,readability-redundant-string-init,
,readability-simplify-boolean-expr,
,cppcoreguidelines-pro-type-cstyle-cast,
'
7 changes: 7 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
version: 2
updates:
# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
68 changes: 68 additions & 0 deletions .github/workflows/linux-musl.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: ci-linux-musl

on:
workflow_dispatch:
pull_request:
push:
release:
types: [published]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

permissions: {}

jobs:
build:
runs-on: ubuntu-24.04
container: alpine:edge
permissions:
contents: read
strategy:
fail-fast: false
matrix:
build_method: ["python", "cmake"]

steps:
- name: Host - checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
persist-credentials: false

- name: Install ninja build optional dependencies
run: apk update && apk add -u --no-cache python3 build-base cmake re2c

- name: Configure ninja build
if: matrix.build_method == 'cmake'
run: cmake -B build -D CMAKE_BUILD_TYPE="Release"

- name: Cmake Build ninja
if: matrix.build_method == 'cmake'
run: cmake --build build --parallel --config Release

- name: Cmake test ninja
if: matrix.build_method == 'cmake'
run: build/ninja_test --gtest_color=yes

- name: Python Build ninja
if: matrix.build_method == 'python'
run: python3 configure.py --bootstrap --verbose

- name: Python test ninja
if: matrix.build_method == 'python'
run: |
./ninja all
python3 misc/ninja_syntax_test.py
# python3 misc/output_test.py
- name: Move ninja binary
if: matrix.build_method == 'cmake'
run: mv -f build/ninja ninja

- name: ninja-ninja --version
run: ./ninja --version >> $GITHUB_STEP_SUMMARY

- name: binary info via file
run: file ./ninja >> $GITHUB_STEP_SUMMARY
Loading