meson-python 0.15.0__tar.gz → 0.16.0__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 (227) hide show
  1. {meson_python-0.15.0 → meson_python-0.16.0}/.cirrus.yml +6 -0
  2. meson_python-0.16.0/.github/workflows/docs.yml +51 -0
  3. {meson_python-0.15.0 → meson_python-0.16.0}/.github/workflows/tests.yml +21 -11
  4. {meson_python-0.15.0 → meson_python-0.16.0}/.pre-commit-config.yaml +4 -8
  5. meson_python-0.15.0/.readthedocs.yml → meson_python-0.16.0/.readthedocs.yaml +5 -1
  6. {meson_python-0.15.0 → meson_python-0.16.0}/CHANGELOG.rst +30 -0
  7. {meson_python-0.15.0 → meson_python-0.16.0}/PKG-INFO +10 -11
  8. {meson_python-0.15.0 → meson_python-0.16.0}/README.rst +3 -3
  9. {meson_python-0.15.0 → meson_python-0.16.0}/ci/alpine-3.docker +2 -2
  10. {meson_python-0.15.0 → meson_python-0.16.0}/ci/debian-11.docker +1 -1
  11. {meson_python-0.15.0 → meson_python-0.16.0}/ci/debian-12.docker +1 -1
  12. {meson_python-0.15.0 → meson_python-0.16.0}/ci/fedora-37.docker +1 -1
  13. {meson_python-0.15.0 → meson_python-0.16.0}/ci/miniconda.docker +1 -1
  14. {meson_python-0.15.0 → meson_python-0.16.0}/docs/changelog.rst +30 -0
  15. {meson_python-0.15.0 → meson_python-0.16.0}/docs/conf.py +3 -2
  16. {meson_python-0.15.0 → meson_python-0.16.0}/docs/contributing/index.rst +0 -1
  17. {meson_python-0.15.0 → meson_python-0.16.0}/docs/contributing/release-process.rst +1 -1
  18. meson_python-0.16.0/docs/how-to-guides/config-settings.rst +61 -0
  19. meson_python-0.16.0/docs/index.rst +106 -0
  20. meson_python-0.16.0/docs/projects-using-meson-python.rst +33 -0
  21. {meson_python-0.15.0 → meson_python-0.16.0}/docs/reference/environment-variables.rst +30 -0
  22. {meson_python-0.15.0 → meson_python-0.16.0}/docs/reference/meson-compatibility.rst +6 -8
  23. {meson_python-0.15.0 → meson_python-0.16.0}/docs/reference/pyproject-settings.rst +4 -4
  24. {meson_python-0.15.0 → meson_python-0.16.0}/docs/tutorials/introduction.rst +4 -4
  25. {meson_python-0.15.0 → meson_python-0.16.0}/meson.build +1 -1
  26. {meson_python-0.15.0 → meson_python-0.16.0}/mesonpy/__init__.py +52 -17
  27. {meson_python-0.15.0 → meson_python-0.16.0}/mesonpy/_editable.py +127 -58
  28. {meson_python-0.15.0 → meson_python-0.16.0}/mesonpy/_tags.py +10 -0
  29. {meson_python-0.15.0 → meson_python-0.16.0}/mesonpy/_util.py +16 -20
  30. {meson_python-0.15.0 → meson_python-0.16.0}/pyproject.toml +14 -15
  31. meson_python-0.16.0/tests/packages/complex/complex/more/meson.build +10 -0
  32. meson_python-0.16.0/tests/packages/complex/foo.py +6 -0
  33. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/complex/meson.build +32 -2
  34. meson_python-0.16.0/tests/packages/complex/move.py +6 -0
  35. meson_python-0.16.0/tests/packages/complex/test.pyx +6 -0
  36. meson_python-0.16.0/tests/packages/custom-target-dir/codegen.py +16 -0
  37. meson_python-0.16.0/tests/packages/custom-target-dir/meson.build +14 -0
  38. meson_python-0.16.0/tests/packages/custom-target-dir/pyproject.toml +7 -0
  39. meson_python-0.16.0/tests/packages/encoding/meson.build +9 -0
  40. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/imports-itself-during-build/meson.build +2 -1
  41. meson_python-0.16.0/tests/packages/subproject/pyproject.toml +7 -0
  42. meson_python-0.16.0/tests/packages/subproject/subprojects/dep/dep.py +3 -0
  43. {meson_python-0.15.0 → meson_python-0.16.0}/tests/test_editable.py +113 -8
  44. meson_python-0.16.0/tests/test_output.py +32 -0
  45. {meson_python-0.15.0 → meson_python-0.16.0}/tests/test_project.py +33 -0
  46. {meson_python-0.15.0 → meson_python-0.16.0}/tests/test_tags.py +13 -1
  47. {meson_python-0.15.0 → meson_python-0.16.0}/tests/test_wheel.py +26 -3
  48. meson_python-0.15.0/.github/workflows/docs.yml +0 -27
  49. meson_python-0.15.0/docs/contributing/commit-format.rst +0 -18
  50. meson_python-0.15.0/docs/contributing/documentation.rst +0 -36
  51. meson_python-0.15.0/docs/contributing/getting-started.rst +0 -15
  52. meson_python-0.15.0/docs/contributing/test-suite.rst +0 -16
  53. meson_python-0.15.0/docs/explanations/design.rst +0 -25
  54. meson_python-0.15.0/docs/explanations/editable-installs.rst +0 -19
  55. meson_python-0.15.0/docs/explanations/internal-dependencies.rst +0 -29
  56. meson_python-0.15.0/docs/how-to-guides/build-directory.rst +0 -19
  57. meson_python-0.15.0/docs/how-to-guides/config-settings.rst +0 -69
  58. meson_python-0.15.0/docs/how-to-guides/first-project.rst +0 -91
  59. meson_python-0.15.0/docs/index.rst +0 -121
  60. meson_python-0.15.0/docs/projects-using-meson-python.rst +0 -39
  61. meson_python-0.15.0/docs/reference/quirks.rst +0 -33
  62. meson_python-0.15.0/docs/tutorials/entrypoints.rst +0 -17
  63. meson_python-0.15.0/docs/tutorials/executable.rst +0 -21
  64. meson_python-0.15.0/tests/test_output.py +0 -34
  65. {meson_python-0.15.0 → meson_python-0.16.0}/.gitignore +0 -0
  66. {meson_python-0.15.0 → meson_python-0.16.0}/.mailmap +0 -0
  67. {meson_python-0.15.0 → meson_python-0.16.0}/LICENSE +0 -0
  68. {meson_python-0.15.0 → meson_python-0.16.0}/LICENSES/MIT.txt +0 -0
  69. {meson_python-0.15.0 → meson_python-0.16.0}/ci/archlinux.docker +0 -0
  70. {meson_python-0.15.0 → meson_python-0.16.0}/ci/debian-unstable.docker +0 -0
  71. {meson_python-0.15.0 → meson_python-0.16.0}/ci/manylinux.docker +0 -0
  72. {meson_python-0.15.0 → meson_python-0.16.0}/ci/opensuse-15.docker +0 -0
  73. {meson_python-0.15.0 → meson_python-0.16.0}/codecov.yml +0 -0
  74. {meson_python-0.15.0 → meson_python-0.16.0}/docs/about.rst +0 -0
  75. {meson_python-0.15.0 → meson_python-0.16.0}/docs/examples/spam/meson.build +0 -0
  76. {meson_python-0.15.0 → meson_python-0.16.0}/docs/examples/spam/pyproject.toml +0 -0
  77. {meson_python-0.15.0 → meson_python-0.16.0}/docs/examples/spam/src/__init__.py +0 -0
  78. {meson_python-0.15.0 → meson_python-0.16.0}/docs/examples/spam/src/spammodule.c +0 -0
  79. {meson_python-0.15.0 → meson_python-0.16.0}/docs/explanations/default-options.rst +0 -0
  80. {meson_python-0.15.0 → meson_python-0.16.0}/docs/explanations/design-old.rst +0 -0
  81. {meson_python-0.15.0 → meson_python-0.16.0}/docs/how-to-guides/debug-builds.rst +0 -0
  82. {meson_python-0.15.0 → meson_python-0.16.0}/docs/how-to-guides/editable-installs.rst +0 -0
  83. {meson_python-0.15.0 → meson_python-0.16.0}/docs/how-to-guides/meson-args.rst +0 -0
  84. {meson_python-0.15.0 → meson_python-0.16.0}/docs/reference/config-settings.rst +0 -0
  85. {meson_python-0.15.0 → meson_python-0.16.0}/docs/reference/limitations.rst +0 -0
  86. {meson_python-0.15.0 → meson_python-0.16.0}/docs/spelling_wordlist.txt +0 -0
  87. {meson_python-0.15.0 → meson_python-0.16.0}/docs/spelling_wordlist.txt.license +0 -0
  88. {meson_python-0.15.0 → meson_python-0.16.0}/docs/static/css/contributors.css +0 -0
  89. {meson_python-0.15.0 → meson_python-0.16.0}/mesonpy/_compat.py +0 -0
  90. {meson_python-0.15.0 → meson_python-0.16.0}/mesonpy/_rpath.py +0 -0
  91. {meson_python-0.15.0 → meson_python-0.16.0}/mesonpy/_wheelfile.py +0 -0
  92. {meson_python-0.15.0 → meson_python-0.16.0}/noxfile.py +0 -0
  93. {meson_python-0.15.0 → meson_python-0.16.0}/tests/__init__.py +0 -0
  94. {meson_python-0.15.0 → meson_python-0.16.0}/tests/conftest.py +0 -0
  95. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/complex/complex/__init__.py +0 -0
  96. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/complex/complex/more/__init__.py +0 -0
  97. /meson_python-0.15.0/tests/packages/complex/test.pyx → /meson_python-0.16.0/tests/packages/complex/complex/more/baz.pyx +0 -0
  98. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/complex/complex/namespace/bar.py +0 -0
  99. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/complex/complex/namespace/foo.py +0 -0
  100. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/complex/pyproject.toml +0 -0
  101. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/configure-data/configure_data.py.in +0 -0
  102. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/configure-data/meson.build +0 -0
  103. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/configure-data/pyproject.toml +0 -0
  104. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/detect-compiler/detect_compiler.c +0 -0
  105. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/detect-compiler/meson.build +0 -0
  106. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/detect-compiler/pyproject.toml +0 -0
  107. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/dist-script/meson.build +0 -0
  108. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/dist-script/pyproject.toml +0 -0
  109. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/dynamic-version/meson.build +0 -0
  110. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/dynamic-version/pyproject.toml +0 -0
  111. {meson_python-0.15.0/tests/packages/missing-meson-version → meson_python-0.16.0/tests/packages/encoding}/pyproject.toml +0 -0
  112. /meson_python-0.15.0/tests/packages/install-subdir/nested/deep/deep.py → /meson_python-0.16.0/tests/packages/encoding//343/203/206/343/202/271/343/203/210.py" +0 -0
  113. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/executable/example.c +0 -0
  114. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/executable/meson.build +0 -0
  115. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/executable/pyproject.toml +0 -0
  116. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/executable-bit/example-script.py +0 -0
  117. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/executable-bit/example.c +0 -0
  118. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/executable-bit/executable_module.py +0 -0
  119. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/executable-bit/meson.build +0 -0
  120. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/executable-bit/pyproject.toml +0 -0
  121. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/full-metadata/LICENSE +0 -0
  122. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/full-metadata/README.md +0 -0
  123. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/full-metadata/meson.build +0 -0
  124. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/full-metadata/pyproject.toml +0 -0
  125. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/generated-files/example-script.py +0 -0
  126. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/generated-files/example.c +0 -0
  127. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/generated-files/executable_module.py +0 -0
  128. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/generated-files/generate_version.py +0 -0
  129. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/generated-files/meson.build +0 -0
  130. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/generated-files/pyproject.toml +0 -0
  131. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/imports-itself-during-build/plat.c +0 -0
  132. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/imports-itself-during-build/pure.py +0 -0
  133. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/imports-itself-during-build/pyproject.toml +0 -0
  134. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/install-subdir/meson.build +0 -0
  135. /meson_python-0.15.0/tests/packages/install-subdir/nested/deep/excluded.py → /meson_python-0.16.0/tests/packages/install-subdir/nested/deep/deep.py +0 -0
  136. {meson_python-0.15.0/tests/packages/install-subdir/strip → meson_python-0.16.0/tests/packages/install-subdir/nested/deep}/excluded.py +0 -0
  137. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/install-subdir/nested/nested.py +0 -0
  138. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/install-subdir/pyproject.toml +0 -0
  139. {meson_python-0.15.0/tests/packages/install-subdir/subdir → meson_python-0.16.0/tests/packages/install-subdir/strip}/excluded.py +0 -0
  140. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/install-subdir/strip/module.py +0 -0
  141. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/install-subdir/subdir/__init__.py +0 -0
  142. /meson_python-0.15.0/tests/packages/install-subdir/subdir/test.py → /meson_python-0.16.0/tests/packages/install-subdir/subdir/excluded/__init__.py +0 -0
  143. /meson_python-0.15.0/tests/packages/install-subdir/subdir/excluded/__init__.py → /meson_python-0.16.0/tests/packages/install-subdir/subdir/excluded.py +0 -0
  144. /meson_python-0.15.0/tests/packages/subproject/subproject.py → /meson_python-0.16.0/tests/packages/install-subdir/subdir/test.py +0 -0
  145. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/library/example.c +0 -0
  146. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/library/examplelib.c +0 -0
  147. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/library/examplelib.h +0 -0
  148. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/library/meson.build +0 -0
  149. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/library/pyproject.toml +0 -0
  150. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/license-file/meson.build +0 -0
  151. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/license-file/pyproject.toml +0 -0
  152. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/license-file/something/LICENSE.custom +0 -0
  153. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/limited-api/meson.build +0 -0
  154. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/limited-api/meson.options +0 -0
  155. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/limited-api/module.c +0 -0
  156. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/limited-api/pyproject.toml +0 -0
  157. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/link-against-local-lib/examplemod.c +0 -0
  158. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/link-against-local-lib/lib/examplelib.c +0 -0
  159. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/link-against-local-lib/lib/examplelib.h +0 -0
  160. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/link-against-local-lib/lib/meson.build +0 -0
  161. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/link-against-local-lib/meson.build +0 -0
  162. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/link-against-local-lib/pyproject.toml +0 -0
  163. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/missing-dynamic-version/meson.build +0 -0
  164. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/missing-dynamic-version/pyproject.toml +0 -0
  165. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/missing-meson-version/meson.build +0 -0
  166. {meson_python-0.15.0/tests/packages/subproject → meson_python-0.16.0/tests/packages/missing-meson-version}/pyproject.toml +0 -0
  167. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/missing-version/meson.build +0 -0
  168. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/missing-version/pyproject.toml +0 -0
  169. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/module-types/file.py +0 -0
  170. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/module-types/meson.build +0 -0
  171. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/module-types/namespace/data.py +0 -0
  172. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/module-types/native.c +0 -0
  173. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/module-types/package/__init__.py +0 -0
  174. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/module-types/pyproject.toml +0 -0
  175. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/pure/meson.build +0 -0
  176. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/pure/pure.py +0 -0
  177. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/pure/pyproject.toml +0 -0
  178. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/purelib-and-platlib/meson.build +0 -0
  179. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/purelib-and-platlib/plat.c +0 -0
  180. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/purelib-and-platlib/pure.py +0 -0
  181. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/purelib-and-platlib/pyproject.toml +0 -0
  182. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/purelib-platlib-split/meson.build +0 -0
  183. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/purelib-platlib-split/plat.py +0 -0
  184. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/purelib-platlib-split/pure.py +0 -0
  185. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/purelib-platlib-split/pyproject.toml +0 -0
  186. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/scipy-like/meson.build +0 -0
  187. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/scipy-like/mypkg/__init__.py +0 -0
  188. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/scipy-like/mypkg/cy_extmod.pyx +0 -0
  189. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/scipy-like/mypkg/extmod.c +0 -0
  190. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/scipy-like/mypkg/meson.build +0 -0
  191. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/scipy-like/mypkg/submod/__init__.py +0 -0
  192. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/scipy-like/mypkg/submod/unknown_filetype.npq +0 -0
  193. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/scipy-like/pyproject.toml +0 -0
  194. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/scipy-like/tools/generate_config.py +0 -0
  195. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/simple/__init__.py +0 -0
  196. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/simple/data.txt +0 -0
  197. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/simple/data.txt.license +0 -0
  198. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/simple/meson.build +0 -0
  199. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/simple/pyproject.toml +0 -0
  200. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/simple/test.py +0 -0
  201. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/subdirs/meson.build +0 -0
  202. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/subdirs/pyproject.toml +0 -0
  203. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/subdirs/subdirs/__init__.py +0 -0
  204. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/subdirs/subdirs/a/__init__.py +0 -0
  205. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/subdirs/subdirs/a/b/c.py +0 -0
  206. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/subdirs/subdirs/b/c.py +0 -0
  207. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/subproject/meson.build +0 -0
  208. /meson_python-0.15.0/tests/packages/subproject/subprojects/dep/dep.py → /meson_python-0.16.0/tests/packages/subproject/subproject.py +0 -0
  209. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/subproject/subprojects/dep/meson.build +0 -0
  210. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/unknown-user-args-meson-args/pyproject.toml +0 -0
  211. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/unknown-user-args-top-level/pyproject.toml +0 -0
  212. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/unsupported-python-version/meson.build +0 -0
  213. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/unsupported-python-version/pyproject.toml +0 -0
  214. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/user-args/meson.build +0 -0
  215. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/user-args/pure.py +0 -0
  216. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/user-args/pyproject.toml +0 -0
  217. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/vendored-meson/meson.build +0 -0
  218. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/vendored-meson/meson_options.txt +0 -0
  219. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/vendored-meson/pyproject.toml +0 -0
  220. {meson_python-0.15.0 → meson_python-0.16.0}/tests/packages/vendored-meson/third-party/meson.py +0 -0
  221. {meson_python-0.15.0 → meson_python-0.16.0}/tests/test_consistency.py +0 -0
  222. {meson_python-0.15.0 → meson_python-0.16.0}/tests/test_examples.py +0 -0
  223. {meson_python-0.15.0 → meson_python-0.16.0}/tests/test_metadata.py +0 -0
  224. {meson_python-0.15.0 → meson_python-0.16.0}/tests/test_options.py +0 -0
  225. {meson_python-0.15.0 → meson_python-0.16.0}/tests/test_pep517.py +0 -0
  226. {meson_python-0.15.0 → meson_python-0.16.0}/tests/test_sdist.py +0 -0
  227. {meson_python-0.15.0 → meson_python-0.16.0}/tests/test_wheelfile.py +0 -0
@@ -80,3 +80,9 @@ freebsd_task:
80
80
  image_family: freebsd-13-2
81
81
  install_script: pkg install -y git ninja
82
82
  << : *test
83
+
84
+ macos-arm64_task:
85
+ macos_instance:
86
+ image: ghcr.io/cirruslabs/macos-ventura-xcode
87
+ install_script: brew install git ninja python@3.11
88
+ << : *test
@@ -0,0 +1,51 @@
1
+ # SPDX-FileCopyrightText: 2022 The meson-python developers
2
+ #
3
+ # SPDX-License-Identifier: MIT
4
+
5
+ name: docs
6
+
7
+ on:
8
+ push:
9
+ tags:
10
+ - '[0-9]+.[0-9]+.[0-9]+'
11
+ pull_request:
12
+ branches:
13
+ - main
14
+ - release-*
15
+ paths:
16
+ - docs/**
17
+ - CHANGELOG.rst
18
+ - README.md
19
+ workflow_dispatch:
20
+ inputs:
21
+ tag:
22
+ required: true
23
+
24
+ jobs:
25
+
26
+ build:
27
+ runs-on: ubuntu-latest
28
+ steps:
29
+ - uses: actions/setup-python@v5
30
+ with:
31
+ python-version: '3.11'
32
+ - uses: actions/checkout@v4
33
+ with:
34
+ ref: ${{ github.event.push.tag || github.event.inputs.tag }}
35
+ - run: python -m pip install .[docs]
36
+ - run: python -m sphinx -W docs/ build/docs/
37
+ - uses: actions/upload-pages-artifact@v2
38
+ with:
39
+ path: build/docs/
40
+
41
+ deploy:
42
+ needs: build
43
+ permissions:
44
+ pages: write
45
+ id-token: write
46
+ environment:
47
+ name: github-pages
48
+ runs-on: ubuntu-latest
49
+ if: ${{ github.event.push.tag || github.event.inputs.tag }}
50
+ steps:
51
+ - uses: actions/deploy-pages@v2
@@ -6,6 +6,9 @@ name: tests
6
6
 
7
7
  on:
8
8
  push:
9
+ branches:
10
+ - main
11
+ - release-*
9
12
  pull_request:
10
13
  branches:
11
14
  - main
@@ -19,6 +22,7 @@ on:
19
22
  - '!LICENSE'
20
23
  - '!LICENSES/**'
21
24
  - '!README.rst'
25
+ - '!.github/workflows/docs.yml'
22
26
  workflow_dispatch:
23
27
  # Allow to run manually
24
28
 
@@ -71,6 +75,12 @@ jobs:
71
75
  - os: ubuntu
72
76
  python: '3.11'
73
77
  meson: '~=1.1.0'
78
+ - os: ubuntu
79
+ python: '3.12'
80
+ meson: '~=1.2.3'
81
+ - os: ubuntu
82
+ python: '3.12'
83
+ meson: '~=1.3'
74
84
  # Test with Meson master branch.
75
85
  - os: ubuntu
76
86
  python: '3.12'
@@ -81,10 +91,10 @@ jobs:
81
91
 
82
92
  steps:
83
93
  - name: Checkout
84
- uses: actions/checkout@v3
94
+ uses: actions/checkout@v4
85
95
 
86
96
  - name: Set up target Python
87
- uses: actions/setup-python@v4
97
+ uses: actions/setup-python@v5
88
98
  with:
89
99
  python-version: ${{ matrix.python }}
90
100
 
@@ -112,7 +122,7 @@ jobs:
112
122
  python -m pytest --showlocals -vv --cov --cov-report=xml
113
123
 
114
124
  - name: Upload coverage report
115
- uses: codecov/codecov-action@v3
125
+ uses: codecov/codecov-action@v4
116
126
  if: ${{ always() }}
117
127
 
118
128
  msvc:
@@ -127,10 +137,10 @@ jobs:
127
137
 
128
138
  steps:
129
139
  - name: Checkout
130
- uses: actions/checkout@v3
140
+ uses: actions/checkout@v4
131
141
 
132
142
  - name: Set up target Python
133
- uses: actions/setup-python@v4
143
+ uses: actions/setup-python@v5
134
144
  with:
135
145
  python-version: ${{ matrix.python }}
136
146
 
@@ -165,7 +175,7 @@ jobs:
165
175
 
166
176
  steps:
167
177
  - name: Checkout
168
- uses: actions/checkout@v3
178
+ uses: actions/checkout@v4
169
179
 
170
180
  - name: Setup Cygwin
171
181
  uses: cygwin/cygwin-install-action@v2
@@ -200,7 +210,7 @@ jobs:
200
210
  # Cygwin Python cannot use binary wheels from PyPI. Building
201
211
  # some dependencies takes considerable time. Caching the built
202
212
  # wheels speeds up the CI job quite a bit.
203
- uses: actions/cache@v3
213
+ uses: actions/cache@v4
204
214
  with:
205
215
  path: ${{ steps.pip-cache-path.outputs.path }}
206
216
  key: cygwin-pip-${{ github.sha }}
@@ -241,7 +251,7 @@ jobs:
241
251
 
242
252
  steps:
243
253
  - name: Checkout
244
- uses: actions/checkout@v3
254
+ uses: actions/checkout@v4
245
255
 
246
256
  - name: Install pyston
247
257
  run: |
@@ -275,7 +285,7 @@ jobs:
275
285
 
276
286
  steps:
277
287
  - name: Checkout
278
- uses: actions/checkout@v3
288
+ uses: actions/checkout@v4
279
289
 
280
290
  - name: Install Homebrew Python
281
291
  run: |
@@ -304,10 +314,10 @@ jobs:
304
314
  runs-on: ubuntu-latest
305
315
  steps:
306
316
  - name: Checkout
307
- uses: actions/checkout@v3
317
+ uses: actions/checkout@v4
308
318
 
309
319
  - name: Setup Python
310
- uses: actions/setup-python@v4
320
+ uses: actions/setup-python@v5
311
321
  with:
312
322
  python-version: 3.9
313
323
 
@@ -8,7 +8,7 @@ ci:
8
8
 
9
9
  repos:
10
10
  - repo: https://github.com/pre-commit/pre-commit-hooks
11
- rev: v4.4.0
11
+ rev: v4.5.0
12
12
  hooks:
13
13
  - id: check-ast
14
14
  - id: check-builtin-literals
@@ -20,17 +20,13 @@ repos:
20
20
  - id: double-quote-string-fixer
21
21
  - id: end-of-file-fixer
22
22
  - id: trailing-whitespace
23
- - repo: https://github.com/PyCQA/isort
24
- rev: 5.12.0
25
- hooks:
26
- - id: isort
27
23
  - repo: https://github.com/astral-sh/ruff-pre-commit
28
- rev: v0.0.261
24
+ rev: v0.1.5
29
25
  hooks:
30
26
  - id: ruff
31
- args: [--fix, --show-fixes, --format, grouped]
27
+ args: [--fix, --show-fixes, --output-format, grouped]
32
28
  - repo: https://github.com/fsfe/reuse-tool
33
- rev: v1.1.2
29
+ rev: v2.1.0
34
30
  hooks:
35
31
  - id: reuse
36
32
  name: add SPDX headers
@@ -4,8 +4,12 @@
4
4
 
5
5
  version: 2
6
6
 
7
+ build:
8
+ os: ubuntu-22.04
9
+ tools:
10
+ python: "3.11"
11
+
7
12
  python:
8
- version: 3.8
9
13
  install:
10
14
  - method: pip
11
15
  path: .
@@ -11,6 +11,36 @@
11
11
  Changelog
12
12
  +++++++++
13
13
 
14
+ 0.16.0
15
+ ======
16
+
17
+ - Correctly detect a wheel shipping shared libraries as being platform
18
+ dependent also when it does not ship compiled executables or Python
19
+ extension modules.
20
+ - Use 11.0 as minimum macOS platform ABI tag on arm64: lower versions
21
+ do not exist on arm64.
22
+ - Improve parsing of the ``$ARCHFLAGS`` environment
23
+ variable. Correctly handle repeated ``-arch`` flags.
24
+ - Do not break when trying to log filename containing Unicode
25
+ characters that cannot be encoded in the encoding used by the
26
+ standard output stream.
27
+ - Drop dependency on ``colorama`` on Windows.
28
+ - Suppress all uses of ANSI terminal escapes when logging to a stream
29
+ that does not support them.
30
+ - Fix ANSI escape coloring of error messages.
31
+ - Respect the ``exclude_dirs`` and ``exclude_files`` arguments passed
32
+ to the ``install_subdir()`` Meson function in editable installs too.
33
+ - Make ``pkgutil.iter_packages()`` work properly for modules loaded
34
+ from editable installs.
35
+ - Add support for the ``custom_target()`` Meson function installing a
36
+ directory.
37
+ - In editable installs, when a rebuild is triggered on module import,
38
+ emit a message indicating that the package is being rebuilt but
39
+ suppress any output when there is no work to do.
40
+
41
+ Daniele Nicolodi, Loïc Estève, Ralf Gommers --- 16-04-2024
42
+
43
+
14
44
  0.15.0
15
45
  ======
16
46
 
@@ -1,11 +1,10 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: meson-python
3
- Version: 0.15.0
3
+ Version: 0.16.0
4
4
  Summary: Meson Python build backend (PEP 517)
5
5
  Keywords: meson build backend pep517 package
6
6
  Home-page: https://github.com/mesonbuild/meson-python
7
- Maintainer: Thomas Li
8
- Maintainer-Email: Ralf Gommers <ralf.gommers@gmail.com>, Daniele Nicolodi <daniele@grinta.net>, Henry Schreiner <HenrySchreinerIII@gmail.com>
7
+ Maintainer-Email: Ralf Gommers <ralf.gommers@gmail.com>, Daniele Nicolodi <daniele@grinta.net>, Henry Schreiner <HenrySchreinerIII@gmail.com>, Thomas Li <47963215+lithomas1@users.noreply.github.com>
9
8
  License: Copyright © 2022 the meson-python contributors
10
9
  Copyright © 2021 Quansight Labs and Filipe Laíns
11
10
 
@@ -32,12 +31,12 @@ Classifier: Programming Language :: Python
32
31
  Classifier: Topic :: Software Development :: Build Tools
33
32
  Project-URL: Homepage, https://github.com/mesonbuild/meson-python
34
33
  Project-URL: Repository, https://github.com/mesonbuild/meson-python
35
- Project-URL: Documentation, https://meson-python.readthedocs.io/
36
- Project-URL: Changelog, https://meson-python.readthedocs.io/en/latest/changelog.html
34
+ Project-URL: Documentation, https://mesonbuild.com/meson-python/
35
+ Project-URL: Changelog, https://mesonbuild.com/meson-python/changelog.html
37
36
  Requires-Python: >=3.7
38
- Requires-Dist: colorama; os_name == "nt"
39
37
  Requires-Dist: meson>=0.63.3; python_version < "3.12"
40
38
  Requires-Dist: meson>=1.2.3; python_version >= "3.12"
39
+ Requires-Dist: packaging>=19.0
41
40
  Requires-Dist: pyproject-metadata>=0.7.1
42
41
  Requires-Dist: tomli>=1.0.0; python_version < "3.11"
43
42
  Requires-Dist: build; extra == "test"
@@ -47,8 +46,8 @@ Requires-Dist: pytest-mock; extra == "test"
47
46
  Requires-Dist: cython>=3.0.3; extra == "test"
48
47
  Requires-Dist: wheel; extra == "test"
49
48
  Requires-Dist: typing-extensions>=3.7.4; python_version < "3.11" and extra == "test"
50
- Requires-Dist: furo>=2021.08.31; extra == "docs"
51
- Requires-Dist: sphinx~=4.0; extra == "docs"
49
+ Requires-Dist: furo>=2023.5.20; extra == "docs"
50
+ Requires-Dist: sphinx~=6.2; extra == "docs"
52
51
  Requires-Dist: sphinx-copybutton>=0.5.0; extra == "docs"
53
52
  Requires-Dist: sphinx-design>=0.1.0; extra == "docs"
54
53
  Requires-Dist: sphinxext-opengraph>=0.7.0; extra == "docs"
@@ -63,8 +62,8 @@ Description-Content-Type: text/x-rst
63
62
  meson-python
64
63
  ============
65
64
 
66
- ``meson-python`` is a Python build backend built on top of the Meson__
67
- build system. It enables to use Meson for the configuration and build
65
+ ``meson-python`` is a Python build back-end built on top of the Meson__
66
+ build system. It enables using Meson for the configuration and build
68
67
  steps of Python packages. Meson is an open source build system meant
69
68
  to be both extremely fast, and, even more importantly, as user
70
69
  friendly as possible. ``meson-python`` is best suited for building
@@ -77,6 +76,6 @@ discussions__ space on GitHub. Bug reports and feature requests can be
77
76
  filed as GitHub issues__.
78
77
 
79
78
  __ https://mesonbuild.com/
80
- __ https://meson-python.readthedocs.io/en/latest/
79
+ __ https://mesonbuild.com/meson-python/
81
80
  __ https://github.com/mesonbuild/meson-python/discussions/
82
81
  __ https://github.com/mesonbuild/meson-python/issues/
@@ -5,8 +5,8 @@
5
5
  meson-python
6
6
  ============
7
7
 
8
- ``meson-python`` is a Python build backend built on top of the Meson__
9
- build system. It enables to use Meson for the configuration and build
8
+ ``meson-python`` is a Python build back-end built on top of the Meson__
9
+ build system. It enables using Meson for the configuration and build
10
10
  steps of Python packages. Meson is an open source build system meant
11
11
  to be both extremely fast, and, even more importantly, as user
12
12
  friendly as possible. ``meson-python`` is best suited for building
@@ -19,6 +19,6 @@ discussions__ space on GitHub. Bug reports and feature requests can be
19
19
  filed as GitHub issues__.
20
20
 
21
21
  __ https://mesonbuild.com/
22
- __ https://meson-python.readthedocs.io/en/latest/
22
+ __ https://mesonbuild.com/meson-python/
23
23
  __ https://github.com/mesonbuild/meson-python/discussions/
24
24
  __ https://github.com/mesonbuild/meson-python/issues/
@@ -2,6 +2,6 @@
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
4
 
5
- # 20221203
5
+ # 20240305
6
6
  FROM alpine:3
7
- RUN apk add --no-cache python3-dev py3-pip build-base ninja git patchelf
7
+ RUN apk add --no-cache python3-dev py3-pip build-base ninja-is-really-ninja git patchelf
@@ -2,6 +2,6 @@
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
4
 
5
- # 20221203
5
+ # 20240204
6
6
  FROM debian:bullseye
7
7
  RUN apt-get update && apt-get install -y git ninja-build patchelf python3-pip python3-venv && rm -rf /var/lib/apt/lists/*
@@ -2,6 +2,6 @@
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
4
 
5
- # 20230816
5
+ # 20240204
6
6
  FROM debian:bookworm
7
7
  RUN apt-get update && apt-get install -y git ninja-build patchelf python3-pip python3-venv && rm -rf /var/lib/apt/lists/*
@@ -2,6 +2,6 @@
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
4
 
5
- # 20221203
5
+ # 20240204
6
6
  FROM fedora:37
7
7
  RUN dnf -y update && dnf -y install python3-devel python3-pip gcc ninja-build git patchelf && dnf clean all
@@ -2,6 +2,6 @@
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
4
 
5
- # 20221203
5
+ # 20240204
6
6
  FROM continuumio/miniconda3
7
7
  RUN apt-get update && apt-get install -y gcc ninja-build git patchelf && rm -rf /var/lib/apt/lists/*
@@ -11,6 +11,36 @@
11
11
  Changelog
12
12
  +++++++++
13
13
 
14
+ 0.16.0
15
+ ======
16
+
17
+ - Correctly detect a wheel shipping shared libraries as being platform
18
+ dependent also when it does not ship compiled executables or Python
19
+ extension modules.
20
+ - Use 11.0 as minimum macOS platform ABI tag on arm64: lower versions
21
+ do not exist on arm64.
22
+ - Improve parsing of the ``$ARCHFLAGS`` environment
23
+ variable. Correctly handle repeated ``-arch`` flags.
24
+ - Do not break when trying to log filename containing Unicode
25
+ characters that cannot be encoded in the encoding used by the
26
+ standard output stream.
27
+ - Drop dependency on ``colorama`` on Windows.
28
+ - Suppress all uses of ANSI terminal escapes when logging to a stream
29
+ that does not support them.
30
+ - Fix ANSI escape coloring of error messages.
31
+ - Respect the ``exclude_dirs`` and ``exclude_files`` arguments passed
32
+ to the ``install_subdir()`` Meson function in editable installs too.
33
+ - Make ``pkgutil.iter_packages()`` work properly for modules loaded
34
+ from editable installs.
35
+ - Add support for the ``custom_target()`` Meson function installing a
36
+ directory.
37
+ - In editable installs, when a rebuild is triggered on module import,
38
+ emit a message indicating that the package is being rebuilt but
39
+ suppress any output when there is no work to do.
40
+
41
+ Daniele Nicolodi, Loïc Estève, Ralf Gommers --- 16-04-2024
42
+
43
+
14
44
  0.15.0
15
45
  ======
16
46
 
@@ -14,6 +14,7 @@
14
14
  # add these directories to sys.path here. If the directory is relative to the
15
15
  # documentation root, use os.path.abspath to make it absolute, like shown here.
16
16
 
17
+ import datetime
17
18
  import os
18
19
  import sys
19
20
  sys.path.insert(0, os.path.abspath('..'))
@@ -23,7 +24,7 @@ import mesonpy
23
24
  # -- Project information -----------------------------------------------------
24
25
 
25
26
  project = 'meson-python'
26
- copyright = '2021, The meson-python developers'
27
+ copyright = f'2021\N{EN DASH}{datetime.date.today().year} The meson-python developers'
27
28
 
28
29
  # The short X.Y version
29
30
  version = mesonpy.__version__
@@ -92,7 +93,7 @@ html_theme_options = {
92
93
 
93
94
  # Open Graph
94
95
 
95
- ogp_site_url = 'https://meson-python.readthedocs.io'
96
+ ogp_site_url = 'https://mesonbuild.com/meson-python/'
96
97
  ogp_site_name = 'meson-python documentation'
97
98
 
98
99
 
@@ -8,5 +8,4 @@ Development
8
8
 
9
9
  .. toctree::
10
10
 
11
- documentation
12
11
  release-process
@@ -14,7 +14,7 @@ All releases are PGP signed with one of the keys listed in the
14
14
  there, and preferably signed by one of the other key holders.
15
15
 
16
16
  If your key is not signed by one of the other key holders, please make sure the
17
- PR that added your key to the :ref:`security` page was approved by at least one
17
+ PR that added your key to the :doc:`../about` page was approved by at least one
18
18
  other maintainer.
19
19
 
20
20
  After that is done, you may release the project by following these steps:
@@ -0,0 +1,61 @@
1
+ .. SPDX-FileCopyrightText: 2023 The meson-python developers
2
+ ..
3
+ .. SPDX-License-Identifier: MIT
4
+
5
+ .. _how-to-guides-config-settings:
6
+
7
+ ***************************
8
+ Using build config settings
9
+ ***************************
10
+
11
+ Build config settings can be used to customize some aspects of the
12
+ build. See the :doc:`../reference/config-settings` reference for a list
13
+ of the settings implemented by ``meson-python``.
14
+
15
+ How build config settings are specified depends on the Python package
16
+ build front-end used. The most popular build front-end are `build`_ and
17
+ `pip`_. These use the ``--config-settings`` long command line option or
18
+ the ``-C`` short command line option:
19
+
20
+ .. tab-set::
21
+
22
+ .. tab-item:: pypa/buid
23
+ :sync: key_pypa_build
24
+
25
+ .. code-block:: console
26
+
27
+ $ python -m build \
28
+ -Csetup-args="-Doption=true" \
29
+ -Csetup-args="-Dvalue=1" \
30
+ -Ccompile-args="-j6"
31
+
32
+ .. tab-item:: pip
33
+ :sync: key_pip
34
+
35
+ .. code-block:: console
36
+
37
+ $ python -m pip wheel . \
38
+ --config-settings=setup-args="-Doption=disable" \
39
+ --config-settings=compile-args="-j6"
40
+
41
+
42
+ Refer to the `build`_ and `pip`_ documentation for details. This
43
+ example uses the ``python -m pip wheel`` command to build a Python wheel
44
+ that can be later installed or distributed. To build a package and
45
+ immediately install it, replace ``wheel`` with ``install``. See the
46
+ :ref:`how-to-guides-meson-args` guide for more examples.
47
+
48
+
49
+ .. admonition:: Passing multiple settings
50
+ :class: caution
51
+
52
+ Please note that ``pip`` prior to 23.1 did not offer a way to set a
53
+ build config setting to a list of strings: later values for the
54
+ same key passed to ``--config-settings`` override earlier ones,
55
+ effectively limiting the number of options that can be passed to
56
+ each command invoked in the build process to one. This limitation
57
+ has been lifted in ``pip`` release 23.1.
58
+
59
+
60
+ .. _build: https://pypa-build.readthedocs.io/en/stable/
61
+ .. _pip: https://pip.pypa.io/
@@ -0,0 +1,106 @@
1
+ .. SPDX-FileCopyrightText: 2022 The meson-python developers
2
+ ..
3
+ .. SPDX-License-Identifier: MIT
4
+
5
+ :hide-toc:
6
+
7
+ ************
8
+ meson-python
9
+ ************
10
+
11
+ .. highlights::
12
+
13
+ A Python package build backend leveraging the Meson build system.
14
+
15
+ ``meson-python`` implement the Python build system hooks, enabling Python build
16
+ front-ends such as ``pip`` and ``build`` to build and install Python packages
17
+ based on a Meson_ build definition.
18
+
19
+ Meson is characterized by build definitions written in a very readable
20
+ domain-specific language and extremely fast builds. Meson support for Windows,
21
+ macOS, Linux, and other UNIX-like operative systems, and for all the major
22
+ compiler tool-chains. It allows to compile and link together code written in
23
+ many programming languages, including C, C++, Cython, D, Fortran, Objective C,
24
+ and Rust. It has built-in multi-platform dependency provider that works well
25
+ with distribution packages, and the capability to build dependencies as
26
+ sub-projects. If you are not familiar with Meson, we recommend checking the
27
+ `Meson tutorial`_.
28
+
29
+ ``meson-python`` inherits the strengths of Meson and is thus best suited for
30
+ Python packages building extension modules in compiled languages.
31
+ ``meson-python`` is suitable for small packages as well as very complex ones,
32
+ see our :ref:`projects-using-meson-python` directory.
33
+
34
+ To enable ``pip`` or ``build`` to build a Python source distribution (*sdist*)
35
+ or a binary Python package (*wheel*) for a Meson project, it is sufficient to
36
+ add to the root of the source tree next to the top-level ``meson.build`` a
37
+ ``pyproject.toml`` file specifying ``meson-python`` as the Python build
38
+ backend:
39
+
40
+ .. code-block:: toml
41
+
42
+ [build-system]
43
+ build-backend = 'mesonpy'
44
+ requires = ['meson-python']
45
+
46
+ The package name and version are extracted from the metadata provided to Meson
47
+ via the ``project()`` function in the ``meson.build`` file. Package metadata
48
+ can be overridden and extended using the standard package metadata format in the
49
+ ``project`` section of ``pyproject.toml``:
50
+
51
+ .. code-block:: toml
52
+
53
+ [project]
54
+ name = 'example'
55
+ version = '1.0.0'
56
+ description = 'Example package using the meson-python build backend'
57
+ readme = 'README.rst'
58
+ license = {file = 'LICENSE.txt'}
59
+ authors = [
60
+ {name = 'Au Thor', email = 'author@example.com'},
61
+ ]
62
+
63
+ [project.scripts]
64
+ example = 'example.cli:main'
65
+
66
+ Please refer to the `PyPA documentation`_ for detailed documentation about the
67
+ ``pyproject.toml`` file. Please refer to our :ref:`tutorial` for guidance about
68
+ the use of ``meson-python`` and Meson for Python packaging.
69
+
70
+
71
+ .. _Meson: https://mesonbuild.com/
72
+ .. _PyPA documentation: https://packaging.python.org/en/latest/specifications/declaring-project-metadata/
73
+ .. _Meson tutorial: https://mesonbuild.com/Tutorial.html
74
+
75
+
76
+ .. toctree::
77
+ :hidden:
78
+
79
+ tutorials/introduction
80
+ how-to-guides/editable-installs
81
+ how-to-guides/config-settings
82
+ how-to-guides/meson-args
83
+ how-to-guides/debug-builds
84
+ reference/limitations
85
+ projects-using-meson-python
86
+
87
+ .. toctree::
88
+ :caption: Reference
89
+ :hidden:
90
+
91
+ reference/config-settings
92
+ reference/pyproject-settings
93
+ reference/environment-variables
94
+ explanations/default-options
95
+ reference/meson-compatibility
96
+
97
+ .. toctree::
98
+ :caption: Project
99
+ :hidden:
100
+
101
+ changelog
102
+ about
103
+ contributing/index
104
+ Discussions <https://github.com/mesonbuild/meson-python/discussions>
105
+ Source Code <https://github.com/mesonbuild/meson-python>
106
+ Issue Tracker <https://github.com/mesonbuild/meson-python/issues>
@@ -0,0 +1,33 @@
1
+ .. SPDX-FileCopyrightText: 2023 The meson-python developers
2
+ ..
3
+ .. SPDX-License-Identifier: MIT
4
+
5
+ .. _projects-using-meson-python:
6
+
7
+ ********
8
+ Examples
9
+ ********
10
+
11
+ The following project use ``meson-python`` for their build system known to be
12
+ adhering to best practices
13
+
14
+
15
+ :`SciPy <https://github.com/scipy/scipy>`_: Probably the most complex
16
+ project using Meson and ``meson-python``. It combines CPython
17
+ extensions and libraries written in C, C++, Fortran, Cython_, and
18
+ Pythran_.
19
+
20
+ :`scikit-image <https://github.com/scikit-image/scikit-image>`_:
21
+ Another complex project using ``meson-python``.
22
+
23
+ :`siphash24 <https://github.com/dnicolodi/python-siphash24>`_: A very
24
+ simple project. It demonstrates how Meson makes it trivial to
25
+ compile a CPython extension written in `Cython`_ via a simple
26
+ template engine and link it to a library compiled from a Meson
27
+ subproject. Also an example of how to use `cibuildwheel`_ to
28
+ produce Python wheels for several platforms.
29
+
30
+
31
+ .. _Cython: https://github.com/cython/cython
32
+ .. _Pythran: https://github.com/serge-sans-paille/pythran
33
+ .. _cibuildwheel: https://github.com/pypa/cibuildwheel