compiletools 8.2.2__tar.gz → 8.2.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (428) hide show
  1. {compiletools-8.2.2 → compiletools-8.2.3}/PKG-INFO +3 -3
  2. {compiletools-8.2.2 → compiletools-8.2.3}/pyproject.toml +3 -3
  3. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/README.cleanup-remote-locks.rst +1 -1
  4. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/README.create-documentation.rst +1 -1
  5. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/README.ct-backends.rst +1 -1
  6. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/README.ct-build-dynamic-library.rst +1 -1
  7. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/README.ct-build-static-library.rst +1 -1
  8. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/README.ct-build.rst +1 -1
  9. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/README.ct-cake.rst +1 -1
  10. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/README.ct-cleanup-locks.rst +1 -1
  11. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/README.ct-commandline.rst +1 -1
  12. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/README.ct-compilation-database.rst +1 -1
  13. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/README.ct-config.rst +1 -1
  14. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/README.ct-cppdeps.rst +1 -1
  15. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/README.ct-create-makefile.rst +1 -1
  16. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/README.ct-doc.rst +1 -1
  17. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/README.ct-filelist.rst +1 -1
  18. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/README.ct-findtargets.rst +1 -1
  19. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/README.ct-git-sha-report.rst +1 -1
  20. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/README.ct-gitroot.rst +1 -1
  21. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/README.ct-headertree.rst +1 -1
  22. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/README.ct-jobs.rst +1 -1
  23. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/README.ct-list-backends.rst +1 -1
  24. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/README.ct-list-variants.rst +1 -1
  25. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/README.ct-lock-helper.rst +1 -1
  26. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/README.ct-magicflags.rst +1 -1
  27. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/README.ct-release.rst +1 -1
  28. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/README.ct-timing-report.rst +1 -1
  29. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/README.ct-trim-cache.rst +1 -1
  30. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/README.ct-watch-build.rst +1 -1
  31. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/README.profile-ct-cake-worktree.rst +1 -1
  32. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/build_backend.py +2 -1
  33. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/build_graph.py +31 -9
  34. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/makefile_backend.py +3 -3
  35. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/ninja_backend.py +2 -2
  36. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_build_backend.py +36 -4
  37. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_build_graph.py +19 -0
  38. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_makefile_backend.py +121 -4
  39. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_ninja_backend.py +78 -0
  40. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_shake_backend.py +66 -0
  41. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_slurm_backend.py +39 -1
  42. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_tup_backend.py +30 -0
  43. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/trace_backend.py +18 -1
  44. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/tup_backend.py +2 -0
  45. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/version.py +1 -1
  46. {compiletools-8.2.2 → compiletools-8.2.3}/scripts/create-documentation +0 -0
  47. {compiletools-8.2.2 → compiletools-8.2.3}/scripts/ct-build +0 -0
  48. {compiletools-8.2.2 → compiletools-8.2.3}/scripts/ct-build-dynamic-library +0 -0
  49. {compiletools-8.2.2 → compiletools-8.2.3}/scripts/ct-build-static-library +0 -0
  50. {compiletools-8.2.2 → compiletools-8.2.3}/scripts/ct-release +0 -0
  51. {compiletools-8.2.2 → compiletools-8.2.3}/scripts/ct-watch-build +0 -0
  52. {compiletools-8.2.2 → compiletools-8.2.3}/scripts/profile-ct +0 -0
  53. {compiletools-8.2.2 → compiletools-8.2.3}/scripts/profile-ct-cake-modes +0 -0
  54. {compiletools-8.2.2 → compiletools-8.2.3}/scripts/profile-ct-cake-worktree +0 -0
  55. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/__init__.py +0 -0
  56. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/apptools.py +0 -0
  57. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/bazel_backend.py +0 -0
  58. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/build_context.py +0 -0
  59. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/build_timer.py +0 -0
  60. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/cake.py +0 -0
  61. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/cleanup_locks.py +0 -0
  62. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/cleanup_locks_main.py +0 -0
  63. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/cmake_backend.py +0 -0
  64. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/compilation_database.py +0 -0
  65. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/compiler_macros.py +0 -0
  66. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/config.py +0 -0
  67. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/configutils.py +0 -0
  68. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/conftest.py +0 -0
  69. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/cppdeps.py +0 -0
  70. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/ct.conf.d/blank.conf +0 -0
  71. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/ct.conf.d/blank.release.conf +0 -0
  72. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/ct.conf.d/clang.debug.conf +0 -0
  73. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/ct.conf.d/clang.release.conf +0 -0
  74. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/ct.conf.d/ct.conf +0 -0
  75. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/ct.conf.d/gcc.debug.conf +0 -0
  76. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/ct.conf.d/gcc.release.conf +0 -0
  77. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/ct_lock_helper.py +0 -0
  78. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/doc.py +0 -0
  79. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/file_analyzer.py +0 -0
  80. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/filelist.py +0 -0
  81. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/filesystem_utils.py +0 -0
  82. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/findtargets.py +0 -0
  83. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/git_sha_report.py +0 -0
  84. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/git_utils.py +0 -0
  85. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/global_hash_registry.py +0 -0
  86. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/headerdeps.py +0 -0
  87. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/headertree.py +0 -0
  88. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/hunter.py +0 -0
  89. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/jobs.py +0 -0
  90. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/listbackends.py +0 -0
  91. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/listvariants.py +0 -0
  92. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/lock_utils.py +0 -0
  93. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/locking.py +0 -0
  94. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/magicflags.py +0 -0
  95. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/namer.py +0 -0
  96. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/preprocessing_cache.py +0 -0
  97. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/preprocessor.py +0 -0
  98. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/calculator/add.C +0 -0
  99. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/calculator/add.H +0 -0
  100. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/calculator/calculator.cpp +0 -0
  101. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/calculator/calculator.h +0 -0
  102. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/calculator/main.cpp +0 -0
  103. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/computed_include/default_extra.h +0 -0
  104. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/computed_include/linux_extra.h +0 -0
  105. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/computed_include/main.cpp +0 -0
  106. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/computed_include/windows_extra.h +0 -0
  107. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/conditional_includes/linux_header.h +0 -0
  108. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/conditional_includes/main.cpp +0 -0
  109. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/conditional_includes/windows_header.h +0 -0
  110. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/aarch64_feature.hpp +0 -0
  111. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/advanced_feature.hpp +0 -0
  112. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/advanced_preprocessor_header.hpp +0 -0
  113. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/advanced_preprocessor_test.cpp +0 -0
  114. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/alt_form_feature.hpp +0 -0
  115. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/arm_feature.hpp +0 -0
  116. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/armcc_feature.hpp +0 -0
  117. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/avx2_optimization.hpp +0 -0
  118. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/basic_feature.hpp +0 -0
  119. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/cache_profiler.hpp +0 -0
  120. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/certificate_validation.hpp +0 -0
  121. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/cflags_feature.hpp +0 -0
  122. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/clang_feature.hpp +0 -0
  123. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/combined_features.hpp +0 -0
  124. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/compiler_builtin_header.hpp +0 -0
  125. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/compiler_builtin_test.cpp +0 -0
  126. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/conditional_header.hpp +0 -0
  127. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/cppflags_feature.hpp +0 -0
  128. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/cpu_profiler.hpp +0 -0
  129. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/custom_allocator.hpp +0 -0
  130. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/cxxflags_feature.hpp +0 -0
  131. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/default_feature.hpp +0 -0
  132. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/detailed_profiler.hpp +0 -0
  133. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/elif_header.hpp +0 -0
  134. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/elif_test.cpp +0 -0
  135. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/emscripten_feature.hpp +0 -0
  136. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/expert_feature.hpp +0 -0
  137. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/expert_mode_base.hpp +0 -0
  138. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/fma_optimization.hpp +0 -0
  139. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/gcc_feature.hpp +0 -0
  140. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/high_optimization.hpp +0 -0
  141. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/intel_feature.hpp +0 -0
  142. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/leak_detector.hpp +0 -0
  143. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/linux_advanced.hpp +0 -0
  144. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/linux_epoll_threading.hpp +0 -0
  145. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/linux_feature.hpp +0 -0
  146. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/main.cpp +0 -0
  147. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/memory_profiler.hpp +0 -0
  148. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/memory_tracker.hpp +0 -0
  149. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/msvc_feature.hpp +0 -0
  150. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/multi_flag_header.hpp +0 -0
  151. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/multi_flag_test.cpp +0 -0
  152. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/nested_macros_header.hpp +0 -0
  153. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/nested_macros_test.cpp +0 -0
  154. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/networking_base.hpp +0 -0
  155. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/numa_threading.hpp +0 -0
  156. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/partial_features.hpp +0 -0
  157. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/profiling_base.hpp +0 -0
  158. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/riscv_feature.hpp +0 -0
  159. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/simd_optimization.hpp +0 -0
  160. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/ssl_networking.hpp +0 -0
  161. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/stack_tracer.hpp +0 -0
  162. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/strict_cert_validation.hpp +0 -0
  163. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/tcc_feature.hpp +0 -0
  164. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/temp_defined.hpp +0 -0
  165. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/temp_still_defined.hpp +0 -0
  166. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/version1_feature.hpp +0 -0
  167. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/version2_feature.hpp +0 -0
  168. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/version3_feature.hpp +0 -0
  169. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/version_205_plus.hpp +0 -0
  170. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/version_ge_2_feature.hpp +0 -0
  171. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/windows_advanced.hpp +0 -0
  172. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/windows_iocp.hpp +0 -0
  173. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/windows_iocp_threading.hpp +0 -0
  174. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cppflags_macros/x86_64_feature.hpp +0 -0
  175. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cross_platform/cross_platform.cpp +0 -0
  176. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cross_platform/cross_platform.hpp +0 -0
  177. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cross_platform/cross_platform_lin.cpp +0 -0
  178. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cross_platform/cross_platform_win.cpp +0 -0
  179. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cross_platform/test_source.cpp +0 -0
  180. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cycle/cycle_a.hpp +0 -0
  181. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cycle/cycle_b.hpp +0 -0
  182. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/cycle/cycle_c.hpp +0 -0
  183. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/dottypaths/d1/d1.cpp +0 -0
  184. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/dottypaths/d1/d1.hpp +0 -0
  185. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/dottypaths/d2/d2.cpp +0 -0
  186. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/dottypaths/d2/d2.hpp +0 -0
  187. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/dottypaths/dottypaths.cpp +0 -0
  188. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/duplicate_flags/main.cpp +0 -0
  189. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/empty_macro_bug/README.md +0 -0
  190. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/empty_macro_bug/libs/base.hpp +0 -0
  191. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/empty_macro_bug/libs/conditional.hpp +0 -0
  192. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/empty_macro_bug/libs/dependency.hpp +0 -0
  193. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/empty_macro_bug/libs/main.cpp +0 -0
  194. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/factory/a_widget.cpp +0 -0
  195. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/factory/a_widget.hpp +0 -0
  196. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/factory/red_herring_c_style_2.hpp +0 -0
  197. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/factory/test_factory.cpp +0 -0
  198. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/factory/widget.hpp +0 -0
  199. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/factory/widget_factory.cpp +0 -0
  200. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/factory/widget_factory.hpp +0 -0
  201. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/factory/z_widget.cpp +0 -0
  202. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/factory/z_widget.hpp +0 -0
  203. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/feature_headers/database.h +0 -0
  204. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/feature_headers/feature_config.h +0 -0
  205. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/feature_headers/graphics.h +0 -0
  206. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/feature_headers/logging.h +0 -0
  207. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/feature_headers/main.cpp +0 -0
  208. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/feature_headers/networking.h +0 -0
  209. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/has_include/main.cpp +0 -0
  210. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/has_include/optional_feature.h +0 -0
  211. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/has_include/stdheader_extras.h +0 -0
  212. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/header_guard_bug/README.md +0 -0
  213. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/header_guard_bug/header_a.hpp +0 -0
  214. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/header_guard_bug/header_b.hpp +0 -0
  215. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/header_guard_bug/main.cpp +0 -0
  216. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/hunter_macro_propagation/README.md +0 -0
  217. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/hunter_macro_propagation/app.cpp +0 -0
  218. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/hunter_macro_propagation/config.h +0 -0
  219. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/hunter_macro_propagation/renderer.h +0 -0
  220. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/isystem_include_bug/fake_system_include/system/version.h +0 -0
  221. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/isystem_include_bug/main.cpp +0 -0
  222. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/ldflags/conditional_ldflags_test.cpp +0 -0
  223. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/ldflags/macro_expanded_ldflags.cpp +0 -0
  224. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/ldflags/version_dependent_ldflags.cpp +0 -0
  225. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/ldflags/version_macro.hpp +0 -0
  226. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/library/build.sh +0 -0
  227. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/library/main.cpp +0 -0
  228. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/library/mylib/get_double.cpp +0 -0
  229. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/library/mylib/get_double.hpp +0 -0
  230. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/library/mylib/get_int.cpp +0 -0
  231. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/library/mylib/get_int.hpp +0 -0
  232. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/library/mylib/get_numbers.cpp +0 -0
  233. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/library/mylib/get_numbers.hpp +0 -0
  234. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/lotsofmagic/lotsofmagic.cpp +0 -0
  235. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/macro_deps/feature_header.hpp +0 -0
  236. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/macro_deps/feature_x_impl.cpp +0 -0
  237. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/macro_deps/feature_y_impl.cpp +0 -0
  238. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/macro_deps/main.cpp +0 -0
  239. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/macro_state_dependency/README.md +0 -0
  240. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/macro_state_dependency/clean_main.cpp +0 -0
  241. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/macro_state_dependency/config.h +0 -0
  242. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/macro_state_dependency/core.h +0 -0
  243. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/macro_state_dependency/debug.h +0 -0
  244. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/macro_state_dependency/feature.h +0 -0
  245. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/macro_state_dependency/main.cpp +0 -0
  246. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/macro_state_dependency/module_b.h +0 -0
  247. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/macro_state_dependency/release.h +0 -0
  248. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/macro_state_dependency/sample.cpp +0 -0
  249. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/magic_processing_order/complex_header.h +0 -0
  250. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/magic_processing_order/complex_test.cpp +0 -0
  251. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/magic_processing_order/macro_header.h +0 -0
  252. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/magic_processing_order/test_macro_transform.cpp +0 -0
  253. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/magic_processing_order/traits_header.h +0 -0
  254. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/magicinclude/main.cpp +0 -0
  255. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/magicinclude/subdir/important.hpp +0 -0
  256. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/magicinclude/subdir2/important2.hpp +0 -0
  257. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/magicinclude/subdir3/important3.hpp +0 -0
  258. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/magicpkgconfig/main.cpp +0 -0
  259. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/magicpkgconfig_fake/main.cpp +0 -0
  260. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/magicsourceinheader/include_dir/some_header.hpp +0 -0
  261. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/magicsourceinheader/include_dir/sub_dir/another_header.hpp +0 -0
  262. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/magicsourceinheader/include_dir/sub_dir/the_code_lin.cpp +0 -0
  263. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/magicsourceinheader/include_dir/sub_dir/the_code_win.cpp +0 -0
  264. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/magicsourceinheader/main.cpp +0 -0
  265. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/movingheaders/main.cpp +0 -0
  266. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/movingheaders/someheader.hpp +0 -0
  267. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/nestedconfig/gcc.debug.conf +0 -0
  268. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/nestedconfig/nc.cpp +0 -0
  269. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/nestedconfig/subdir/gcc.debug.conf +0 -0
  270. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/nestedconfig/subdir/nc.cpp +0 -0
  271. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/numbers/get_double.cpp +0 -0
  272. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/numbers/get_double.hpp +0 -0
  273. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/numbers/get_int.cpp +0 -0
  274. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/numbers/get_int.hpp +0 -0
  275. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/numbers/get_numbers.cpp +0 -0
  276. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/numbers/get_numbers.hpp +0 -0
  277. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/numbers/test_direct_include.cpp +0 -0
  278. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/numbers/test_library.cpp +0 -0
  279. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/parse_order_macro_bug/libs/common_file.cpp +0 -0
  280. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/parse_order_macro_bug/libs/conditional_include.hpp +0 -0
  281. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/parse_order_macro_bug/libs/entry_point_1.cpp +0 -0
  282. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/parse_order_macro_bug/libs/entry_point_2.cpp +0 -0
  283. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/parse_order_macro_bug/libs/hash_map.hpp +0 -0
  284. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/parse_order_macro_bug/libs/hash_utility.hpp +0 -0
  285. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/parse_order_macro_bug/libs/intermediate.cpp +0 -0
  286. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/pch/pch_user.cpp +0 -0
  287. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/pch/stdafx.h +0 -0
  288. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/pkg_config_header_deps/README.md +0 -0
  289. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/pkg_config_header_deps/libs/header_with_macros.hpp +0 -0
  290. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/pkg_config_header_deps/libs/header_with_pkgconfig.hpp +0 -0
  291. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/pkg_config_header_deps/libs/main_header.hpp +0 -0
  292. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/pkg_config_header_deps/src/test.cpp +0 -0
  293. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/pkgconfig/main.cpp +0 -0
  294. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/pkgs/conditional.pc +0 -0
  295. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/pkgs/leaked-macro-pkg.pc +0 -0
  296. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/pkgs/linux-path-pkg.pc +0 -0
  297. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/pkgs/macro-in-output.pc +0 -0
  298. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/pkgs/modified.pc +0 -0
  299. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/pkgs/nested.pc +0 -0
  300. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/pkgs/transitive-deps.pc +0 -0
  301. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/platform_has_include/linux_func.cpp +0 -0
  302. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/platform_has_include/linux_func.hpp +0 -0
  303. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/platform_has_include/platform_main.cpp +0 -0
  304. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/platform_has_include/windows_func.cpp +0 -0
  305. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/platform_has_include/windows_func.hpp +0 -0
  306. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/project_pkgconfig_override/ct.conf.d/pkgconfig/conditional.pc +0 -0
  307. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/project_pkgconfig_override/main.cpp +0 -0
  308. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/serialise_tests/README.txt +0 -0
  309. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/serialise_tests/createfile.cpp +0 -0
  310. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/serialise_tests/createfile.hpp +0 -0
  311. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/serialise_tests/filename.hpp +0 -0
  312. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/serialise_tests/obtainlock.cpp +0 -0
  313. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/serialise_tests/obtainlock.hpp +0 -0
  314. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/serialise_tests/test_flock_1.cpp +0 -0
  315. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/serialise_tests/test_flock_2.cpp +0 -0
  316. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/simple/helloworld_c.c +0 -0
  317. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/simple/helloworld_cpp.cpp +0 -0
  318. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/simple/test_cflags.c +0 -0
  319. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/static_link_order/main.cpp +0 -0
  320. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/static_link_order/one.cpp +0 -0
  321. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/static_link_order/two.cpp +0 -0
  322. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/transitive_cache_bug/README.md +0 -0
  323. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/transitive_cache_bug/engine/a-game.cpp +0 -0
  324. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/transitive_cache_bug/engine/b-game.cpp +0 -0
  325. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/transitive_cache_bug/engine/core/background_task.hpp +0 -0
  326. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/transitive_cache_bug/engine/core/event_handler.hpp +0 -0
  327. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/transitive_cache_bug/engine/core/memory_buffer.hpp +0 -0
  328. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/transitive_cache_bug/engine/event_loop.cpp +0 -0
  329. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/transitive_cache_bug/engine/event_loop.hpp +0 -0
  330. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/transitive_cache_bug/engine/systems/audio_system.cpp +0 -0
  331. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/transitive_cache_bug/engine/systems/audio_system.hpp +0 -0
  332. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/transitive_cache_bug/engine/systems/input_system.cpp +0 -0
  333. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/transitive_cache_bug/engine/systems/input_system.hpp +0 -0
  334. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/transitive_cache_bug/engine/systems/render_system.cpp +0 -0
  335. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/transitive_cache_bug/engine/systems/render_system.hpp +0 -0
  336. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/transitive_cache_bug/engine/systems/task_scheduler.cpp +0 -0
  337. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/transitive_cache_bug/engine/systems/task_scheduler.hpp +0 -0
  338. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/undef_bug/README.md +0 -0
  339. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/undef_bug/cleans_up.hpp +0 -0
  340. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/undef_bug/defines_macro.hpp +0 -0
  341. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/undef_bug/main.cpp +0 -0
  342. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/undef_bug/should_be_included.hpp +0 -0
  343. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/undef_bug/uses_conditional.hpp +0 -0
  344. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/version_dependent_api/api_config.h +0 -0
  345. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/version_dependent_api/api_config_new.h +0 -0
  346. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/version_dependent_api/test_main.cpp +0 -0
  347. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/version_dependent_api/test_main_new.cpp +0 -0
  348. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/version_dependent_api/version.h +0 -0
  349. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/samples/version_dependent_api/version_new.h +0 -0
  350. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/simple_preprocessor.py +0 -0
  351. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/stringzilla_utils.py +0 -0
  352. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_apptools.py +0 -0
  353. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_backend_integration.py +0 -0
  354. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_base.py +0 -0
  355. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_bazel_backend.py +0 -0
  356. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_build_timer.py +0 -0
  357. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_cake.py +0 -0
  358. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_cake_backend.py +0 -0
  359. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_cap.py +0 -0
  360. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_cleanup_locks.py +0 -0
  361. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_cmake_backend.py +0 -0
  362. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_compilation_database.py +0 -0
  363. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_compiler_macros.py +0 -0
  364. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_config.py +0 -0
  365. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_configutils.py +0 -0
  366. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_cppdeps.py +0 -0
  367. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_ct_lock_helper.py +0 -0
  368. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_doc.py +0 -0
  369. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_empty_macro_bug.py +0 -0
  370. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_environment_assumptions.py +0 -0
  371. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_fd_fix_integration.py +0 -0
  372. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_file_analyzer.py +0 -0
  373. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_file_analyzer_integration.py +0 -0
  374. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_file_locking.py +0 -0
  375. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_file_open_efficiency.py +0 -0
  376. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_filelist_sample_output.py +0 -0
  377. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_filesystem_utils.py +0 -0
  378. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_findtargets.py +0 -0
  379. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_git_sha_report.py +0 -0
  380. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_global_hash_registry.py +0 -0
  381. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_headerdeps.py +0 -0
  382. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_headerdeps_extract.py +0 -0
  383. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_headertree.py +0 -0
  384. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_headertree_hunter_agreement.py +0 -0
  385. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_hunter.py +0 -0
  386. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_hunter_macro_propagation.py +0 -0
  387. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_jobs.py +0 -0
  388. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_library.py +0 -0
  389. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_listbackends.py +0 -0
  390. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_listvariants.py +0 -0
  391. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_locking.py +0 -0
  392. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_locking_contract.py +0 -0
  393. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_macro_state_dependency.py +0 -0
  394. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_macro_state_isolation.py +0 -0
  395. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_macro_state_pollution.py +0 -0
  396. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_magicflags.py +0 -0
  397. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_magicflags_styles.py +0 -0
  398. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_magicflags_unit.py +0 -0
  399. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_magicinclude.py +0 -0
  400. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_magicpkgconfig.py +0 -0
  401. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_makefile.py +0 -0
  402. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_movingheaders.py +0 -0
  403. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_multiuser_cache.py +0 -0
  404. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_namer.py +0 -0
  405. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_noop_rebuild.py +0 -0
  406. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_parse_order_macro_bug.py +0 -0
  407. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_pkg_config_header_deps.py +0 -0
  408. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_preprocessing_cache.py +0 -0
  409. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_preprocessor.py +0 -0
  410. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_serialisetests.py +0 -0
  411. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_shared_cache_low_mtime_resolution.py +0 -0
  412. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_simple_preprocessor.py +0 -0
  413. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_stringzilla_utils.py +0 -0
  414. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_testhelper.py +0 -0
  415. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_timing_report.py +0 -0
  416. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_transitive_cache_bug.py +0 -0
  417. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_tree.py +0 -0
  418. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_trim_cache.py +0 -0
  419. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_undef_bug_sample.py +0 -0
  420. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/test_utils.py +0 -0
  421. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/testhelper.py +0 -0
  422. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/timing_report.py +0 -0
  423. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/timing_tui.py +0 -0
  424. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/tree.py +0 -0
  425. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/trim_cache.py +0 -0
  426. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/trim_cache_main.py +0 -0
  427. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/utils.py +0 -0
  428. {compiletools-8.2.2 → compiletools-8.2.3}/src/compiletools/wrappedos.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: compiletools
3
- Version: 8.2.2
3
+ Version: 8.2.3
4
4
  Summary: Tools to make compiling C/C++ projects easy
5
5
  Keywords: c++,make,development
6
6
  Author: DrGeoff
@@ -23,7 +23,7 @@ Requires-Dist: rich-rst>=1.1.7
23
23
  Requires-Dist: stringzilla>=3.0.0
24
24
  Requires-Dist: bump-my-version>=0.26.0 ; extra == 'dev'
25
25
  Requires-Dist: twine>=5.0.0 ; extra == 'dev'
26
- Requires-Dist: pytest>=8.2.2 ; extra == 'dev'
26
+ Requires-Dist: pytest>=8.2.3 ; extra == 'dev'
27
27
  Requires-Dist: pytest-xdist>=3.5 ; extra == 'dev'
28
28
  Requires-Dist: ruff>=0.14.0 ; extra == 'dev'
29
29
  Requires-Dist: pyright>=1.1 ; extra == 'dev'
@@ -55,7 +55,7 @@ C/C++ build tools that requires almost no configuration.
55
55
 
56
56
  :Author: drgeoffathome@gmail.com
57
57
  :Date: 2025-12-17
58
- :Version: 8.2.2
58
+ :Version: 8.2.3
59
59
  :Manual section: 1
60
60
  :Manual group: developers
61
61
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "compiletools"
3
- version = "8.2.2"
3
+ version = "8.2.3"
4
4
  description = "Tools to make compiling C/C++ projects easy"
5
5
  readme = "src/compiletools/README.ct-doc.rst"
6
6
  requires-python = ">=3.10"
@@ -36,7 +36,7 @@ tui = [
36
36
  dev = [
37
37
  "bump-my-version>=0.26.0",
38
38
  "twine>=5.0.0",
39
- "pytest>=8.2.2",
39
+ "pytest>=8.2.3",
40
40
  "pytest-xdist>=3.5",
41
41
  "ruff>=0.14.0",
42
42
  "pyright>=1.1",
@@ -96,7 +96,7 @@ include = [
96
96
  ]
97
97
 
98
98
  [tool.bumpversion]
99
- current_version = "8.2.2"
99
+ current_version = "8.2.3"
100
100
  parse = "(?P<major>\\d+)\\.(?P<minor>\\d+)\\.(?P<patch>\\d+)"
101
101
  serialize = ["{major}.{minor}.{patch}"]
102
102
  search = "{current_version}"
@@ -8,7 +8,7 @@ Legacy helper for pruning stale lockdir directories remotely
8
8
 
9
9
  :Author: drgeoffathome@gmail.com
10
10
  :Date: 2025-11-26
11
- :Version: 8.2.2
11
+ :Version: 8.2.3
12
12
  :Manual section: 1
13
13
  :Manual group: developers
14
14
 
@@ -8,7 +8,7 @@ Generate man(1) pages from the reStructuredText source tree
8
8
 
9
9
  :Author: drgeoffathome@gmail.com
10
10
  :Date: 2025-11-26
11
- :Version: 8.2.2
11
+ :Version: 8.2.3
12
12
  :Manual section: 1
13
13
  :Manual group: developers
14
14
 
@@ -8,7 +8,7 @@ Build backend architecture and selection guide
8
8
 
9
9
  :Author: drgeoffathome@gmail.com
10
10
  :Date: 2026-04-02
11
- :Version: 8.2.2
11
+ :Version: 8.2.3
12
12
  :Manual section: 7
13
13
  :Manual group: developers
14
14
 
@@ -8,7 +8,7 @@ Produce a shared object from a root source file with zero boilerplate
8
8
 
9
9
  :Author: drgeoffathome@gmail.com
10
10
  :Date: 2025-11-26
11
- :Version: 8.2.2
11
+ :Version: 8.2.3
12
12
  :Manual section: 1
13
13
  :Manual group: developers
14
14
 
@@ -8,7 +8,7 @@ Generate a static library from a root source file in one shot
8
8
 
9
9
  :Author: drgeoffathome@gmail.com
10
10
  :Date: 2025-11-26
11
- :Version: 8.2.2
11
+ :Version: 8.2.3
12
12
  :Manual section: 1
13
13
  :Manual group: developers
14
14
 
@@ -8,7 +8,7 @@ One-command Make-specific wrapper around ct-findtargets + make
8
8
 
9
9
  :Author: drgeoffathome@gmail.com
10
10
  :Date: 2025-11-26
11
- :Version: 8.2.2
11
+ :Version: 8.2.3
12
12
  :Manual section: 1
13
13
  :Manual group: developers
14
14
 
@@ -9,7 +9,7 @@ Swiss army knife for building a C/C++ project
9
9
  :Author: drgeoffathome@gmail.com
10
10
  :Date: 2018-02-06
11
11
  :Copyright: Copyright (C) 2011-2016 Zomojo Pty Ltd
12
- :Version: 8.2.2
12
+ :Version: 8.2.3
13
13
  :Manual section: 1
14
14
  :Manual group: developers
15
15
 
@@ -8,7 +8,7 @@ Clean up stale lock directories from file locking
8
8
 
9
9
  :Author: drgeoffathome@gmail.com
10
10
  :Date: 2025-10-16
11
- :Version: 8.2.2
11
+ :Version: 8.2.3
12
12
  :Manual section: 1
13
13
  :Manual group: developers
14
14
 
@@ -9,7 +9,7 @@ This document describes the command line arguments that are common across ct-* p
9
9
  :Author: drgeoffathome@gmail.com
10
10
  :Date: 2017-07-06
11
11
  :Copyright: Copyright (C) 2011-2016 Zomojo Pty Ltd
12
- :Version: 8.2.2
12
+ :Version: 8.2.3
13
13
  :Manual section: 1
14
14
  :Manual group: developers
15
15
 
@@ -8,7 +8,7 @@ Generate compile_commands.json for clang tooling and IDE integration
8
8
 
9
9
  :Author: drgeoffathome@gmail.com
10
10
  :Date: 2025-10-08
11
- :Version: 8.2.2
11
+ :Version: 8.2.3
12
12
  :Manual section: 1
13
13
  :Manual group: developers
14
14
 
@@ -9,7 +9,7 @@ Helper tool for examining ct-* configuration
9
9
  :Author: drgeoffathome@gmail.com
10
10
  :Date: 2016-08-16
11
11
  :Copyright: Copyright (C) 2011-2016 Zomojo Pty Ltd
12
- :Version: 8.2.2
12
+ :Version: 8.2.3
13
13
  :Manual section: 1
14
14
  :Manual group: developers
15
15
 
@@ -9,7 +9,7 @@ C/C++ dependency analysis using the preprocessor
9
9
  :Author: drgeoffathome@gmail.com
10
10
  :Date: 2022-06-05
11
11
  :Copyright: Copyright (C) Geoffery Ericksson
12
- :Version: 8.2.2
12
+ :Version: 8.2.3
13
13
  :Manual section: 1
14
14
  :Manual group: developers
15
15
 
@@ -8,7 +8,7 @@ Generate Makefile from compiletools magic
8
8
 
9
9
  :Author: drgeoffathome@gmail.com
10
10
  :Date: 2024-11-24
11
- :Version: 8.2.2
11
+ :Version: 8.2.3
12
12
  :Manual section: 1
13
13
  :Manual group: developers
14
14
 
@@ -15,7 +15,7 @@ C/C++ build tools that requires almost no configuration.
15
15
 
16
16
  :Author: drgeoffathome@gmail.com
17
17
  :Date: 2025-12-17
18
- :Version: 8.2.2
18
+ :Version: 8.2.3
19
19
  :Manual section: 1
20
20
  :Manual group: developers
21
21
 
@@ -9,7 +9,7 @@ Determine header and source dependencies of a C/C++ file by following headers an
9
9
  :Author: drgeoffathome@gmail.com
10
10
  :Date: 2017-07-06
11
11
  :Copyright: Copyright (C) 2011-2016 Zomojo Pty Ltd
12
- :Version: 8.2.2
12
+ :Version: 8.2.3
13
13
  :Manual section: 1
14
14
  :Manual group: developers
15
15
 
@@ -9,7 +9,7 @@ Find executable and test targets in a C/C++ project
9
9
  :Author: drgeoffathome@gmail.com
10
10
  :Date: 2018-04-17
11
11
  :Copyright: Copyright (C) 2011-2018 Zomojo Pty Ltd
12
- :Version: 8.2.2
12
+ :Version: 8.2.3
13
13
  :Manual section: 1
14
14
  :Manual group: developers
15
15
 
@@ -8,7 +8,7 @@ Report git blob SHA hashes for files in the repository
8
8
 
9
9
  :Author: drgeoffathome@gmail.com
10
10
  :Date: 2024-11-24
11
- :Version: 8.2.2
11
+ :Version: 8.2.3
12
12
  :Manual section: 1
13
13
  :Manual group: developers
14
14
 
@@ -9,7 +9,7 @@ Display the git repository root directory
9
9
  :Author: drgeoffathome@gmail.com
10
10
  :Date: 2017-09-28
11
11
  :Copyright: Copyright (C) 2011-2016 Zomojo Pty Ltd
12
- :Version: 8.2.2
12
+ :Version: 8.2.3
13
13
  :Manual section: 1
14
14
  :Manual group: developers
15
15
 
@@ -9,7 +9,7 @@ Create a tree of header dependencies starting at the given C/C++ file
9
9
  :Author: drgeoffathome@gmail.com
10
10
  :Date: 2018-07-26
11
11
  :Copyright: Copyright (C) 2011-2018 Zomojo Pty Ltd
12
- :Version: 8.2.2
12
+ :Version: 8.2.3
13
13
  :Manual section: 1
14
14
  :Manual group: developers
15
15
 
@@ -9,7 +9,7 @@ Determine optimal parallel job count for builds
9
9
  :Author: drgeoffathome@gmail.com
10
10
  :Date: 2017-04-28
11
11
  :Copyright: Copyright (C) 2011-2016 Zomojo Pty Ltd
12
- :Version: 8.2.2
12
+ :Version: 8.2.3
13
13
  :Manual section: 1
14
14
  :Manual group: developers
15
15
 
@@ -8,7 +8,7 @@ List available build backends
8
8
 
9
9
  :Author: drgeoffathome@gmail.com
10
10
  :Date: 2026-03-31
11
- :Version: 8.2.2
11
+ :Version: 8.2.3
12
12
  :Manual section: 1
13
13
  :Manual group: developers
14
14
 
@@ -9,7 +9,7 @@ List available build variants
9
9
  :Author: drgeoffathome@gmail.com
10
10
  :Date: 2016-08-16
11
11
  :Copyright: Copyright (C) 2011-2016 Zomojo Pty Ltd
12
- :Version: 8.2.2
12
+ :Version: 8.2.3
13
13
  :Manual section: 1
14
14
  :Manual group: developers
15
15
 
@@ -8,7 +8,7 @@ Helper for file locking during concurrent compilation
8
8
 
9
9
  :Author: drgeoffathome@gmail.com
10
10
  :Date: 2024-01-01
11
- :Version: 8.2.2
11
+ :Version: 8.2.3
12
12
  :Manual section: 1
13
13
  :Manual group: developers
14
14
 
@@ -9,7 +9,7 @@ Show the magic flags / magic comments that a file exports
9
9
  :Author: drgeoffathome@gmail.com
10
10
  :Date: 2018-02-23
11
11
  :Copyright: Copyright (C) 2011-2018 Zomojo Pty Ltd
12
- :Version: 8.2.2
12
+ :Version: 8.2.3
13
13
  :Manual section: 1
14
14
  :Manual group: developers
15
15
 
@@ -8,7 +8,7 @@ Automated version bump + build + publish for compiletools
8
8
 
9
9
  :Author: drgeoffathome@gmail.com
10
10
  :Date: 2025-11-26
11
- :Version: 8.2.2
11
+ :Version: 8.2.3
12
12
  :Manual section: 1
13
13
  :Manual group: developers
14
14
 
@@ -8,7 +8,7 @@ Analyze and display build timing reports
8
8
 
9
9
  :Author: drgeoffathome@gmail.com
10
10
  :Date: 2026-04-06
11
- :Version: 8.2.2
11
+ :Version: 8.2.3
12
12
  :Manual section: 1
13
13
  :Manual group: developers
14
14
 
@@ -8,7 +8,7 @@ Trim stale entries from shared object and PCH caches
8
8
 
9
9
  :Author: drgeoffathome@gmail.com
10
10
  :Date: 2026-04-21
11
- :Version: 8.2.2
11
+ :Version: 8.2.3
12
12
  :Manual section: 1
13
13
  :Manual group: developers
14
14
 
@@ -8,7 +8,7 @@ Continuous rebuild helper that watches sources with inotify
8
8
 
9
9
  :Author: drgeoffathome@gmail.com
10
10
  :Date: 2025-11-26
11
- :Version: 8.2.2
11
+ :Version: 8.2.3
12
12
  :Manual section: 1
13
13
  :Manual group: developers
14
14
 
@@ -8,7 +8,7 @@ Safely profile ct-cake performance using temporary git worktrees
8
8
 
9
9
  :Author: drgeoffathome@gmail.com
10
10
  :Date: 2025-11-26
11
- :Version: 8.2.2
11
+ :Version: 8.2.3
12
12
  :Manual section: 1
13
13
  :Manual group: developers
14
14
 
@@ -554,13 +554,14 @@ class BuildBackend(abc.ABC):
554
554
  test_result_paths = []
555
555
  for exe_path in test_exe_paths:
556
556
  result_path = exe_path + ".result"
557
- test_cmd = testprefix_parts + [exe_path, "&&", "touch", result_path]
557
+ test_cmd = testprefix_parts + [exe_path]
558
558
  graph.add_rule(
559
559
  BuildRule(
560
560
  output=result_path,
561
561
  inputs=[exe_path],
562
562
  command=test_cmd,
563
563
  rule_type="test",
564
+ success_marker=result_path,
564
565
  )
565
566
  )
566
567
  test_result_paths.append(result_path)
@@ -7,6 +7,7 @@ Backends consume a BuildGraph to produce their native output format.
7
7
 
8
8
  from __future__ import annotations
9
9
 
10
+ import shlex
10
11
  from dataclasses import dataclass, field
11
12
 
12
13
  VALID_RULE_TYPES = frozenset(
@@ -29,19 +30,26 @@ class BuildRule:
29
30
  Attributes:
30
31
  output: The file this rule produces (or a phony target name).
31
32
  inputs: Files this rule depends on (source files, headers, objects).
32
- command: List of **shell tokens** (NOT argv) to execute, or None
33
- for phony rules. Tokens are space-joined and executed under
34
- ``/bin/sh -c`` by every backend, so shell metacharacters
35
- (``&&``, ``||``, ``>``, ``$VAR``, ...) are interpreted as
36
- shell syntax *not* passed literally to the program. A
37
- future backend that hands the list straight to
38
- ``subprocess.run(..., shell=False)`` would need to either
39
- re-shellify the tokens or refuse rules that contain
40
- metacharacter elements.
33
+ command: argv list passed directly to ``subprocess.run`` (with
34
+ ``shell=False`` semantics), or None for phony rules. Tokens
35
+ MUST NOT contain shell metacharacters (``&&``, ``||``, ``>``,
36
+ ``$VAR``, ...) side effects like "touch a marker on success"
37
+ belong in ``success_marker``, not in command tokens. Shell-rendered
38
+ backends (Make, Ninja) join with spaces and let the underlying
39
+ tool run the result through ``/bin/sh -c``; argv-executing
40
+ backends (Shake, Slurm) hand the list straight to subprocess.
41
+ Both behaviours agree as long as no token is shell-active.
41
42
  rule_type: One of "compile", "link", "test", "phony", "mkdir", "clean",
42
43
  "copy", "static_library", "shared_library".
43
44
  order_only_deps: Dependencies that must exist but whose timestamps are
44
45
  not checked (e.g., output directories).
46
+ success_marker: Optional path to ``touch`` after the command exits
47
+ successfully. Used by test rules to record passes for incremental
48
+ re-runs. Each backend renders this in its native idiom: shell
49
+ backends append ``&& touch <marker>`` to the recipe; argv backends
50
+ call ``Path(marker).touch()`` after the subprocess returns 0.
51
+ Backends that own their own pass/fail bookkeeping (CMake CTest,
52
+ Bazel cc_test) ignore this field.
45
53
 
46
54
  Equality and hash are by ``output`` only — deliberate so that
47
55
  BuildGraph._rules (a dict keyed by output) deduplicates rules. Rules
@@ -55,6 +63,7 @@ class BuildRule:
55
63
  rule_type: str
56
64
  order_only_deps: list[str] = field(default_factory=list)
57
65
  include_weight: int = 0
66
+ success_marker: str | None = None
58
67
 
59
68
  def __post_init__(self):
60
69
  if self.rule_type not in VALID_RULE_TYPES:
@@ -158,3 +167,16 @@ class BuildGraph:
158
167
  filtered.add_rule(rule)
159
168
 
160
169
  return filtered
170
+
171
+
172
+ def render_shell_recipe(rule: BuildRule) -> str:
173
+ """Render rule.command as a shell-executable string, appending the
174
+ success_marker touch tail when set.
175
+
176
+ Used by shell-rendered backends (Make, Ninja) for non-compile/non-link
177
+ rules whose command is intended to run through ``/bin/sh -c``.
178
+ """
179
+ cmd_str = shlex.join(rule.command)
180
+ if rule.success_marker:
181
+ cmd_str += f" && touch {shlex.quote(rule.success_marker)}"
182
+ return cmd_str
@@ -22,7 +22,7 @@ from compiletools.build_backend import (
22
22
  BuildBackend,
23
23
  register_backend,
24
24
  )
25
- from compiletools.build_graph import BuildGraph
25
+ from compiletools.build_graph import BuildGraph, render_shell_recipe
26
26
 
27
27
 
28
28
  @functools.lru_cache(maxsize=1)
@@ -271,14 +271,14 @@ class MakefileBackend(BuildBackend):
271
271
  else:
272
272
  recipe = cmd_str
273
273
  elif rule.rule_type == "test":
274
- cmd_str = " ".join(rule.command)
274
+ cmd_str = render_shell_recipe(rule)
275
275
  if self.args.verbose >= 1:
276
276
  exe_name = rule.inputs[0] if rule.inputs else rule.output
277
277
  recipe = f"@echo ... {exe_name} ; {cmd_str}"
278
278
  else:
279
279
  recipe = cmd_str
280
280
  else:
281
- recipe = " ".join(rule.command)
281
+ recipe = render_shell_recipe(rule)
282
282
 
283
283
  if self._timing_enabled and rule.rule_type in ("compile", "link", "shared_library", "static_library"):
284
284
  recipe = self._wrap_with_timing(recipe, rule.output)
@@ -10,7 +10,7 @@ from compiletools.build_backend import (
10
10
  BuildBackend,
11
11
  register_backend,
12
12
  )
13
- from compiletools.build_graph import BuildGraph
13
+ from compiletools.build_graph import BuildGraph, render_shell_recipe
14
14
 
15
15
 
16
16
  @register_backend
@@ -94,7 +94,7 @@ class NinjaBackend(BuildBackend):
94
94
  elif rule.rule_type in ("link", "static_library", "shared_library"):
95
95
  cmd_str = self._wrap_link_cmd(rule.command)
96
96
  else:
97
- cmd_str = " ".join(rule.command)
97
+ cmd_str = render_shell_recipe(rule)
98
98
  f.write(f" cmd = {cmd_str}\n")
99
99
  f.write("\n")
100
100
 
@@ -354,13 +354,45 @@ class TestBuildGraphPopulation:
354
354
  rule = test_rules[0]
355
355
  assert rule.output == f"{bindir}/test_foo.result"
356
356
  assert rule.inputs == [f"{bindir}/test_foo"]
357
- # The recipe must NOT self-delete its own output (Fix 2): make's
358
- # mtime check skips re-running the test only when .result is fresher
359
- # than the executable.
357
+ # The recipe must NOT self-delete its own output: make's mtime check
358
+ # skips re-running the test only when .result is fresher than the exe.
360
359
  assert "rm" not in rule.command
361
- assert "touch" in rule.command
362
360
  assert f"{bindir}/test_foo" in rule.command
363
361
 
362
+ def test_test_result_rule_command_is_pure_argv(self, tmp_path):
363
+ """Test rule command must be argv-only — no shell metacharacters.
364
+
365
+ Touch-on-success is modeled via success_marker, not embedded in command
366
+ tokens. argv-executing backends (Shake, Slurm) pass command straight to
367
+ subprocess.run and would otherwise feed '&&' / 'touch' to the test exe
368
+ as ignored argv parameters.
369
+ """
370
+ args = make_backend_args(tmp_path, filename=[], tests=["/src/test_foo.cpp"])
371
+ hunter = make_mock_hunter(sources=["/src/test_foo.cpp"])
372
+ backend = self._make_backend(tmp_path, args=args, hunter=hunter)
373
+ bindir = str(tmp_path / "bin")
374
+
375
+ graph = backend.build_graph()
376
+
377
+ test_rules = graph.rules_by_type("test")
378
+ assert len(test_rules) == 1
379
+ rule = test_rules[0]
380
+ assert "&&" not in rule.command
381
+ assert "touch" not in rule.command
382
+ assert rule.command == [f"{bindir}/test_foo"]
383
+
384
+ def test_test_result_rule_carries_success_marker(self, tmp_path):
385
+ """Test rule must declare its .result file as success_marker."""
386
+ args = make_backend_args(tmp_path, filename=[], tests=["/src/test_foo.cpp"])
387
+ hunter = make_mock_hunter(sources=["/src/test_foo.cpp"])
388
+ backend = self._make_backend(tmp_path, args=args, hunter=hunter)
389
+ bindir = str(tmp_path / "bin")
390
+
391
+ graph = backend.build_graph()
392
+
393
+ test_rules = graph.rules_by_type("test")
394
+ assert test_rules[0].success_marker == f"{bindir}/test_foo.result"
395
+
364
396
  def test_test_result_rules_include_testprefix(self, tmp_path):
365
397
  """Test result rules should include TESTPREFIX when set."""
366
398
  args = make_backend_args(tmp_path, filename=[], tests=["/src/test_foo.cpp"])
@@ -49,6 +49,25 @@ class TestBuildRule:
49
49
  )
50
50
  assert rule.order_only_deps == ["/tmp/obj/"]
51
51
 
52
+ def test_success_marker_defaults_to_none(self):
53
+ rule = BuildRule(
54
+ output="/tmp/obj/foo.o",
55
+ inputs=["/src/foo.cpp"],
56
+ command=["g++", "-c", "/src/foo.cpp"],
57
+ rule_type="compile",
58
+ )
59
+ assert rule.success_marker is None
60
+
61
+ def test_success_marker_accepts_path(self):
62
+ rule = BuildRule(
63
+ output="/tmp/bin/foo.result",
64
+ inputs=["/tmp/bin/foo"],
65
+ command=["/tmp/bin/foo"],
66
+ rule_type="test",
67
+ success_marker="/tmp/bin/foo.result",
68
+ )
69
+ assert rule.success_marker == "/tmp/bin/foo.result"
70
+
52
71
 
53
72
  class TestBuildGraph:
54
73
  def test_empty_graph(self):