conan-server 2.0.10__tar.gz → 2.0.12__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 (345) hide show
  1. {conan-server-2.0.10 → conan-server-2.0.12}/PKG-INFO +1 -1
  2. {conan-server-2.0.10 → conan-server-2.0.12}/conan/api/output.py +1 -1
  3. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/args.py +2 -0
  4. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/commands/build.py +19 -13
  5. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/commands/export_pkg.py +6 -3
  6. conan-server-2.0.12/conan/cli/commands/install.py +81 -0
  7. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/commands/lock.py +2 -2
  8. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/commands/profile.py +10 -5
  9. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/commands/remove.py +8 -4
  10. conan-server-2.0.10/conans/client/conf/detect.py → conan-server-2.0.12/conan/internal/api/detect_api.py +318 -344
  11. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/build/cppstd.py +2 -2
  12. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/build/flags.py +4 -0
  13. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/cmake/cmakedeps/templates/config_version.py +1 -1
  14. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/cmake/cmakedeps/templates/target_configuration.py +2 -1
  15. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/cmake/cmakedeps/templates/target_data.py +8 -5
  16. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/cmake/cmakedeps/templates/targets.py +0 -4
  17. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/cmake/toolchain/blocks.py +16 -1
  18. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/gnu/makedeps.py +10 -6
  19. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/meson/helpers.py +11 -3
  20. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/meson/toolchain.py +34 -16
  21. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/scm/git.py +5 -4
  22. conan-server-2.0.12/conan/tools/scons/__init__.py +1 -0
  23. conan-server-2.0.12/conan/tools/scons/sconsdeps.py +61 -0
  24. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/system/package_manager.py +16 -11
  25. {conan-server-2.0.10 → conan-server-2.0.12}/conan_server.egg-info/PKG-INFO +1 -1
  26. {conan-server-2.0.10 → conan-server-2.0.12}/conan_server.egg-info/SOURCES.txt +3 -0
  27. {conan-server-2.0.10 → conan-server-2.0.12}/conans/__init__.py +1 -1
  28. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/cache/cache.py +9 -4
  29. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/conf/__init__.py +9 -6
  30. conan-server-2.0.12/conans/client/conf/detect.py +38 -0
  31. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/conf/detect_vs.py +0 -22
  32. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/downloaders/caching_file_downloader.py +12 -1
  33. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/generators/__init__.py +1 -0
  34. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/graph/compatibility.py +6 -0
  35. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/graph/compute_pid.py +4 -0
  36. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/graph/graph_binaries.py +60 -29
  37. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/graph/graph_builder.py +10 -1
  38. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/graph/install_graph.py +18 -2
  39. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/installer.py +1 -0
  40. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/profile_loader.py +4 -2
  41. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/rest/conan_requester.py +3 -1
  42. {conan-server-2.0.10 → conan-server-2.0.12}/conans/model/build_info.py +2 -1
  43. {conan-server-2.0.10 → conan-server-2.0.12}/conans/model/conf.py +11 -6
  44. {conan-server-2.0.10 → conan-server-2.0.12}/conans/model/info.py +2 -0
  45. {conan-server-2.0.10 → conan-server-2.0.12}/conans/model/layout.py +2 -1
  46. {conan-server-2.0.10 → conan-server-2.0.12}/conans/model/options.py +4 -0
  47. {conan-server-2.0.10 → conan-server-2.0.12}/conans/model/pkg_type.py +1 -1
  48. {conan-server-2.0.10 → conan-server-2.0.12}/conans/model/requires.py +4 -3
  49. {conan-server-2.0.10 → conan-server-2.0.12}/conans/model/version_range.py +3 -1
  50. {conan-server-2.0.10 → conan-server-2.0.12}/conans/test/utils/tools.py +12 -6
  51. conan-server-2.0.10/conan/cli/commands/install.py +0 -98
  52. {conan-server-2.0.10 → conan-server-2.0.12}/LICENSE.md +0 -0
  53. {conan-server-2.0.10 → conan-server-2.0.12}/MANIFEST.in +0 -0
  54. {conan-server-2.0.10 → conan-server-2.0.12}/README.md +0 -0
  55. {conan-server-2.0.10 → conan-server-2.0.12}/conan/__init__.py +0 -0
  56. {conan-server-2.0.10 → conan-server-2.0.12}/conan/api/__init__.py +0 -0
  57. {conan-server-2.0.10 → conan-server-2.0.12}/conan/api/conan_api.py +0 -0
  58. {conan-server-2.0.10 → conan-server-2.0.12}/conan/api/model.py +0 -0
  59. {conan-server-2.0.10 → conan-server-2.0.12}/conan/api/subapi/__init__.py +0 -0
  60. {conan-server-2.0.10 → conan-server-2.0.12}/conan/api/subapi/cache.py +0 -0
  61. {conan-server-2.0.10 → conan-server-2.0.12}/conan/api/subapi/config.py +0 -0
  62. {conan-server-2.0.10 → conan-server-2.0.12}/conan/api/subapi/download.py +0 -0
  63. {conan-server-2.0.10 → conan-server-2.0.12}/conan/api/subapi/export.py +0 -0
  64. {conan-server-2.0.10 → conan-server-2.0.12}/conan/api/subapi/graph.py +0 -0
  65. {conan-server-2.0.10 → conan-server-2.0.12}/conan/api/subapi/install.py +0 -0
  66. {conan-server-2.0.10 → conan-server-2.0.12}/conan/api/subapi/list.py +0 -0
  67. {conan-server-2.0.10 → conan-server-2.0.12}/conan/api/subapi/local.py +0 -0
  68. {conan-server-2.0.10 → conan-server-2.0.12}/conan/api/subapi/lockfile.py +0 -0
  69. {conan-server-2.0.10 → conan-server-2.0.12}/conan/api/subapi/new.py +0 -0
  70. {conan-server-2.0.10 → conan-server-2.0.12}/conan/api/subapi/profiles.py +0 -0
  71. {conan-server-2.0.10 → conan-server-2.0.12}/conan/api/subapi/remotes.py +0 -0
  72. {conan-server-2.0.10 → conan-server-2.0.12}/conan/api/subapi/remove.py +0 -0
  73. {conan-server-2.0.10 → conan-server-2.0.12}/conan/api/subapi/search.py +0 -0
  74. {conan-server-2.0.10 → conan-server-2.0.12}/conan/api/subapi/upload.py +0 -0
  75. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/__init__.py +0 -0
  76. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/cli.py +0 -0
  77. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/command.py +0 -0
  78. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/commands/__init__.py +0 -0
  79. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/commands/cache.py +0 -0
  80. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/commands/config.py +0 -0
  81. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/commands/create.py +0 -0
  82. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/commands/download.py +0 -0
  83. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/commands/editable.py +0 -0
  84. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/commands/export.py +0 -0
  85. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/commands/graph.py +0 -0
  86. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/commands/inspect.py +0 -0
  87. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/commands/list.py +0 -0
  88. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/commands/new.py +0 -0
  89. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/commands/remote.py +0 -0
  90. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/commands/search.py +0 -0
  91. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/commands/source.py +0 -0
  92. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/commands/test.py +0 -0
  93. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/commands/upload.py +0 -0
  94. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/commands/version.py +0 -0
  95. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/exit_codes.py +0 -0
  96. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/formatters/__init__.py +0 -0
  97. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/formatters/graph/__init__.py +0 -0
  98. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/formatters/graph/graph.py +0 -0
  99. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/formatters/graph/graph_info_text.py +0 -0
  100. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/formatters/graph/info_graph_dot.py +0 -0
  101. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/formatters/graph/info_graph_html.py +0 -0
  102. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/formatters/list/__init__.py +0 -0
  103. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/formatters/list/binary_html_table.py +0 -0
  104. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/formatters/list/list.py +0 -0
  105. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/formatters/list/search_table_html.py +0 -0
  106. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/printers/__init__.py +0 -0
  107. {conan-server-2.0.10 → conan-server-2.0.12}/conan/cli/printers/graph.py +0 -0
  108. {conan-server-2.0.10 → conan-server-2.0.12}/conan/errors.py +0 -0
  109. {conan-server-2.0.10 → conan-server-2.0.12}/conan/internal/__init__.py +0 -0
  110. {conan-server-2.0.10 → conan-server-2.0.12}/conan/internal/api/__init__.py +0 -0
  111. {conan-server-2.0.10 → conan-server-2.0.12}/conan/internal/api/new/__init__.py +0 -0
  112. {conan-server-2.0.10 → conan-server-2.0.12}/conan/internal/api/new/alias_new.py +0 -0
  113. {conan-server-2.0.10 → conan-server-2.0.12}/conan/internal/api/new/autoools_exe.py +0 -0
  114. {conan-server-2.0.10 → conan-server-2.0.12}/conan/internal/api/new/autotools_lib.py +0 -0
  115. {conan-server-2.0.10 → conan-server-2.0.12}/conan/internal/api/new/basic.py +0 -0
  116. {conan-server-2.0.10 → conan-server-2.0.12}/conan/internal/api/new/bazel_exe.py +0 -0
  117. {conan-server-2.0.10 → conan-server-2.0.12}/conan/internal/api/new/bazel_lib.py +0 -0
  118. {conan-server-2.0.10 → conan-server-2.0.12}/conan/internal/api/new/cmake_exe.py +0 -0
  119. {conan-server-2.0.10 → conan-server-2.0.12}/conan/internal/api/new/cmake_lib.py +0 -0
  120. {conan-server-2.0.10 → conan-server-2.0.12}/conan/internal/api/new/meson_exe.py +0 -0
  121. {conan-server-2.0.10 → conan-server-2.0.12}/conan/internal/api/new/meson_lib.py +0 -0
  122. {conan-server-2.0.10 → conan-server-2.0.12}/conan/internal/api/new/msbuild_exe.py +0 -0
  123. {conan-server-2.0.10 → conan-server-2.0.12}/conan/internal/api/new/msbuild_lib.py +0 -0
  124. {conan-server-2.0.10 → conan-server-2.0.12}/conan/internal/cache/__init__.py +0 -0
  125. {conan-server-2.0.10 → conan-server-2.0.12}/conan/internal/cache/cache.py +0 -0
  126. {conan-server-2.0.10 → conan-server-2.0.12}/conan/internal/cache/conan_reference_layout.py +0 -0
  127. {conan-server-2.0.10 → conan-server-2.0.12}/conan/internal/cache/db/__init__.py +0 -0
  128. {conan-server-2.0.10 → conan-server-2.0.12}/conan/internal/cache/db/cache_database.py +0 -0
  129. {conan-server-2.0.10 → conan-server-2.0.12}/conan/internal/cache/db/packages_table.py +0 -0
  130. {conan-server-2.0.10 → conan-server-2.0.12}/conan/internal/cache/db/recipes_table.py +0 -0
  131. {conan-server-2.0.10 → conan-server-2.0.12}/conan/internal/cache/db/table.py +0 -0
  132. {conan-server-2.0.10 → conan-server-2.0.12}/conan/internal/conan_app.py +0 -0
  133. {conan-server-2.0.10 → conan-server-2.0.12}/conan/internal/deploy.py +0 -0
  134. {conan-server-2.0.10 → conan-server-2.0.12}/conan/internal/integrity_check.py +0 -0
  135. {conan-server-2.0.10 → conan-server-2.0.12}/conan/internal/upload_metadata.py +0 -0
  136. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/__init__.py +0 -0
  137. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/android/__init__.py +0 -0
  138. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/android/utils.py +0 -0
  139. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/apple/__init__.py +0 -0
  140. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/apple/apple.py +0 -0
  141. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/apple/xcodebuild.py +0 -0
  142. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/apple/xcodedeps.py +0 -0
  143. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/apple/xcodetoolchain.py +0 -0
  144. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/build/__init__.py +0 -0
  145. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/build/cpu.py +0 -0
  146. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/build/cross_building.py +0 -0
  147. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/build/stdcpp_library.py +0 -0
  148. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/cmake/__init__.py +0 -0
  149. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/cmake/cmake.py +0 -0
  150. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/cmake/cmakedeps/__init__.py +0 -0
  151. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/cmake/cmakedeps/cmakedeps.py +0 -0
  152. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/cmake/cmakedeps/templates/__init__.py +0 -0
  153. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/cmake/cmakedeps/templates/config.py +0 -0
  154. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/cmake/cmakedeps/templates/macros.py +0 -0
  155. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/cmake/layout.py +0 -0
  156. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/cmake/presets.py +0 -0
  157. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/cmake/toolchain/__init__.py +0 -0
  158. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/cmake/toolchain/toolchain.py +0 -0
  159. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/cmake/utils.py +0 -0
  160. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/env/__init__.py +0 -0
  161. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/env/environment.py +0 -0
  162. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/env/virtualbuildenv.py +0 -0
  163. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/env/virtualrunenv.py +0 -0
  164. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/files/__init__.py +0 -0
  165. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/files/conandata.py +0 -0
  166. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/files/copy_pattern.py +0 -0
  167. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/files/files.py +0 -0
  168. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/files/packager.py +0 -0
  169. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/files/patches.py +0 -0
  170. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/files/symlinks/__init__.py +0 -0
  171. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/files/symlinks/symlinks.py +0 -0
  172. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/gnu/__init__.py +0 -0
  173. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/gnu/autotools.py +0 -0
  174. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/gnu/autotoolsdeps.py +0 -0
  175. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/gnu/autotoolstoolchain.py +0 -0
  176. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/gnu/get_gnu_triplet.py +0 -0
  177. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/gnu/gnudeps_flags.py +0 -0
  178. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/gnu/pkgconfig.py +0 -0
  179. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/gnu/pkgconfigdeps.py +0 -0
  180. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/google/__init__.py +0 -0
  181. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/google/bazel.py +0 -0
  182. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/google/bazeldeps.py +0 -0
  183. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/google/layout.py +0 -0
  184. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/google/toolchain.py +0 -0
  185. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/intel/__init__.py +0 -0
  186. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/intel/intel_cc.py +0 -0
  187. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/layout/__init__.py +0 -0
  188. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/meson/__init__.py +0 -0
  189. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/meson/meson.py +0 -0
  190. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/microsoft/__init__.py +0 -0
  191. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/microsoft/layout.py +0 -0
  192. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/microsoft/msbuild.py +0 -0
  193. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/microsoft/msbuilddeps.py +0 -0
  194. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/microsoft/nmakedeps.py +0 -0
  195. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/microsoft/nmaketoolchain.py +0 -0
  196. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/microsoft/subsystems.py +0 -0
  197. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/microsoft/toolchain.py +0 -0
  198. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/microsoft/visual.py +0 -0
  199. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/premake/__init__.py +0 -0
  200. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/premake/premake.py +0 -0
  201. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/premake/premakedeps.py +0 -0
  202. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/qbs/__init__.py +0 -0
  203. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/qbs/qbs.py +0 -0
  204. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/qbs/qbsprofile.py +0 -0
  205. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/scm/__init__.py +0 -0
  206. {conan-server-2.0.10 → conan-server-2.0.12}/conan/tools/system/__init__.py +0 -0
  207. {conan-server-2.0.10 → conan-server-2.0.12}/conan_server.egg-info/dependency_links.txt +0 -0
  208. {conan-server-2.0.10 → conan-server-2.0.12}/conan_server.egg-info/entry_points.txt +0 -0
  209. {conan-server-2.0.10 → conan-server-2.0.12}/conan_server.egg-info/requires.txt +0 -0
  210. {conan-server-2.0.10 → conan-server-2.0.12}/conan_server.egg-info/top_level.txt +0 -0
  211. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/__init__.py +0 -0
  212. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/cache/__init__.py +0 -0
  213. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/cache/editable.py +0 -0
  214. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/cache/remote_registry.py +0 -0
  215. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/cmd/__init__.py +0 -0
  216. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/cmd/export.py +0 -0
  217. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/cmd/uploader.py +0 -0
  218. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/cmd/user.py +0 -0
  219. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/conanfile/__init__.py +0 -0
  220. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/conanfile/build.py +0 -0
  221. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/conanfile/configure.py +0 -0
  222. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/conanfile/implementations.py +0 -0
  223. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/conanfile/package.py +0 -0
  224. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/conf/config_installer.py +0 -0
  225. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/conf/required_version.py +0 -0
  226. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/downloaders/__init__.py +0 -0
  227. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/downloaders/download_cache.py +0 -0
  228. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/downloaders/file_downloader.py +0 -0
  229. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/graph/__init__.py +0 -0
  230. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/graph/build_mode.py +0 -0
  231. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/graph/graph.py +0 -0
  232. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/graph/graph_error.py +0 -0
  233. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/graph/profile_node_definer.py +0 -0
  234. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/graph/provides.py +0 -0
  235. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/graph/proxy.py +0 -0
  236. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/graph/python_requires.py +0 -0
  237. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/graph/range_resolver.py +0 -0
  238. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/hook_manager.py +0 -0
  239. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/loader.py +0 -0
  240. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/loader_txt.py +0 -0
  241. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/migrations.py +0 -0
  242. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/pkg_sign.py +0 -0
  243. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/remote_manager.py +0 -0
  244. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/rest/__init__.py +0 -0
  245. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/rest/auth_manager.py +0 -0
  246. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/rest/client_routes.py +0 -0
  247. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/rest/file_uploader.py +0 -0
  248. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/rest/remote_credentials.py +0 -0
  249. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/rest/rest_client.py +0 -0
  250. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/rest/rest_client_common.py +0 -0
  251. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/rest/rest_client_v2.py +0 -0
  252. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/source.py +0 -0
  253. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/store/__init__.py +0 -0
  254. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/store/localdb.py +0 -0
  255. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/subsystems.py +0 -0
  256. {conan-server-2.0.10 → conan-server-2.0.12}/conans/client/userio.py +0 -0
  257. {conan-server-2.0.10 → conan-server-2.0.12}/conans/conan.py +0 -0
  258. {conan-server-2.0.10 → conan-server-2.0.12}/conans/conan_server.py +0 -0
  259. {conan-server-2.0.10 → conan-server-2.0.12}/conans/errors.py +0 -0
  260. {conan-server-2.0.10 → conan-server-2.0.12}/conans/migrations.py +0 -0
  261. {conan-server-2.0.10 → conan-server-2.0.12}/conans/model/__init__.py +0 -0
  262. {conan-server-2.0.10 → conan-server-2.0.12}/conans/model/conan_file.py +0 -0
  263. {conan-server-2.0.10 → conan-server-2.0.12}/conans/model/conanfile_interface.py +0 -0
  264. {conan-server-2.0.10 → conan-server-2.0.12}/conans/model/dependencies.py +0 -0
  265. {conan-server-2.0.10 → conan-server-2.0.12}/conans/model/graph_lock.py +0 -0
  266. {conan-server-2.0.10 → conan-server-2.0.12}/conans/model/manifest.py +0 -0
  267. {conan-server-2.0.10 → conan-server-2.0.12}/conans/model/package_ref.py +0 -0
  268. {conan-server-2.0.10 → conan-server-2.0.12}/conans/model/profile.py +0 -0
  269. {conan-server-2.0.10 → conan-server-2.0.12}/conans/model/recipe_ref.py +0 -0
  270. {conan-server-2.0.10 → conan-server-2.0.12}/conans/model/rest_routes.py +0 -0
  271. {conan-server-2.0.10 → conan-server-2.0.12}/conans/model/settings.py +0 -0
  272. {conan-server-2.0.10 → conan-server-2.0.12}/conans/model/version.py +0 -0
  273. {conan-server-2.0.10 → conan-server-2.0.12}/conans/paths/__init__.py +0 -0
  274. {conan-server-2.0.10 → conan-server-2.0.12}/conans/pylint_plugin.py +0 -0
  275. {conan-server-2.0.10 → conan-server-2.0.12}/conans/requirements.txt +0 -0
  276. {conan-server-2.0.10 → conan-server-2.0.12}/conans/requirements_dev.txt +0 -0
  277. {conan-server-2.0.10 → conan-server-2.0.12}/conans/requirements_server.txt +0 -0
  278. {conan-server-2.0.10 → conan-server-2.0.12}/conans/search/__init__.py +0 -0
  279. {conan-server-2.0.10 → conan-server-2.0.12}/conans/search/query_parse.py +0 -0
  280. {conan-server-2.0.10 → conan-server-2.0.12}/conans/search/search.py +0 -0
  281. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/__init__.py +0 -0
  282. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/conf/__init__.py +0 -0
  283. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/conf/default_server_conf.py +0 -0
  284. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/crypto/__init__.py +0 -0
  285. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/crypto/jwt/__init__.py +0 -0
  286. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/crypto/jwt/jwt_credentials_manager.py +0 -0
  287. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/crypto/jwt/jwt_manager.py +0 -0
  288. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/launcher.py +0 -0
  289. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/migrate.py +0 -0
  290. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/migrations.py +0 -0
  291. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/plugin_loader.py +0 -0
  292. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/rest/__init__.py +0 -0
  293. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/rest/api_v2.py +0 -0
  294. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/rest/bottle_plugins/__init__.py +0 -0
  295. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/rest/bottle_plugins/authorization_header.py +0 -0
  296. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/rest/bottle_plugins/http_basic_authentication.py +0 -0
  297. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/rest/bottle_plugins/jwt_authentication.py +0 -0
  298. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/rest/bottle_plugins/return_handler.py +0 -0
  299. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/rest/bottle_routes.py +0 -0
  300. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/rest/controller/__init__.py +0 -0
  301. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/rest/controller/v2/__init__.py +0 -0
  302. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/rest/controller/v2/conan.py +0 -0
  303. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/rest/controller/v2/delete.py +0 -0
  304. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/rest/controller/v2/ping.py +0 -0
  305. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/rest/controller/v2/revisions.py +0 -0
  306. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/rest/controller/v2/search.py +0 -0
  307. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/rest/controller/v2/users.py +0 -0
  308. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/rest/server.py +0 -0
  309. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/revision_list.py +0 -0
  310. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/server_launcher.py +0 -0
  311. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/service/__init__.py +0 -0
  312. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/service/authorize.py +0 -0
  313. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/service/mime.py +0 -0
  314. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/service/user_service.py +0 -0
  315. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/service/v2/__init__.py +0 -0
  316. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/service/v2/search.py +0 -0
  317. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/service/v2/service_v2.py +0 -0
  318. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/store/__init__.py +0 -0
  319. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/store/disk_adapter.py +0 -0
  320. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/store/server_store.py +0 -0
  321. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/utils/__init__.py +0 -0
  322. {conan-server-2.0.10 → conan-server-2.0.12}/conans/server/utils/files.py +0 -0
  323. {conan-server-2.0.10 → conan-server-2.0.12}/conans/test/__init__.py +0 -0
  324. {conan-server-2.0.10 → conan-server-2.0.12}/conans/test/conftest.py +0 -0
  325. {conan-server-2.0.10 → conan-server-2.0.12}/conans/test/utils/__init__.py +0 -0
  326. {conan-server-2.0.10 → conan-server-2.0.12}/conans/test/utils/artifactory.py +0 -0
  327. {conan-server-2.0.10 → conan-server-2.0.12}/conans/test/utils/file_server.py +0 -0
  328. {conan-server-2.0.10 → conan-server-2.0.12}/conans/test/utils/mocks.py +0 -0
  329. {conan-server-2.0.10 → conan-server-2.0.12}/conans/test/utils/profiles.py +0 -0
  330. {conan-server-2.0.10 → conan-server-2.0.12}/conans/test/utils/scm.py +0 -0
  331. {conan-server-2.0.10 → conan-server-2.0.12}/conans/test/utils/server_launcher.py +0 -0
  332. {conan-server-2.0.10 → conan-server-2.0.12}/conans/test/utils/test_files.py +0 -0
  333. {conan-server-2.0.10 → conan-server-2.0.12}/conans/util/__init__.py +0 -0
  334. {conan-server-2.0.10 → conan-server-2.0.12}/conans/util/config_parser.py +0 -0
  335. {conan-server-2.0.10 → conan-server-2.0.12}/conans/util/dates.py +0 -0
  336. {conan-server-2.0.10 → conan-server-2.0.12}/conans/util/encrypt.py +0 -0
  337. {conan-server-2.0.10 → conan-server-2.0.12}/conans/util/env.py +0 -0
  338. {conan-server-2.0.10 → conan-server-2.0.12}/conans/util/files.py +0 -0
  339. {conan-server-2.0.10 → conan-server-2.0.12}/conans/util/locks.py +0 -0
  340. {conan-server-2.0.10 → conan-server-2.0.12}/conans/util/runners.py +0 -0
  341. {conan-server-2.0.10 → conan-server-2.0.12}/conans/util/sha.py +0 -0
  342. {conan-server-2.0.10 → conan-server-2.0.12}/conans/util/thread.py +0 -0
  343. {conan-server-2.0.10 → conan-server-2.0.12}/conans/util/windows.py +0 -0
  344. {conan-server-2.0.10 → conan-server-2.0.12}/setup.cfg +0 -0
  345. {conan-server-2.0.10 → conan-server-2.0.12}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: conan-server
3
- Version: 2.0.10
3
+ Version: 2.0.12
4
4
  Summary: Conan Server of Conan C/C++ package manager
5
5
  Home-page: https://conan.io
6
6
  Author: JFrog LTD
@@ -227,7 +227,7 @@ def cli_out_write(data, fg=None, bg=None, endline="\n", indentation=0):
227
227
 
228
228
  fg_ = fg or ''
229
229
  bg_ = bg or ''
230
- if color_enabled(sys.stdout):
230
+ if (fg or bg) and color_enabled(sys.stdout):
231
231
  data = f"{' ' * indentation}{fg_}{bg_}{data}{Style.RESET_ALL}{endline}"
232
232
  else:
233
233
  data = f"{' ' * indentation}{data}{endline}"
@@ -133,3 +133,5 @@ def validate_common_graph_args(args):
133
133
  if args.path and (args.requires or args.tool_requires):
134
134
  raise ConanException("--requires and --tool-requires arguments are incompatible with "
135
135
  f"[path] '{args.path}' argument")
136
+ if not args.path and args.build_require:
137
+ raise ConanException("--build-require should only be used with <path> argument")
@@ -13,35 +13,43 @@ def build(conan_api, parser, *args):
13
13
  """
14
14
  Install dependencies and call the build() method.
15
15
  """
16
- parser.add_argument("path", nargs="?",
16
+ parser.add_argument("path",
17
17
  help='Path to a python-based recipe file or a folder '
18
18
  'containing a conanfile.py recipe. conanfile.txt '
19
19
  'cannot be used with conan build.')
20
20
  add_reference_args(parser)
21
- # TODO: Missing --build-require argument and management
21
+ parser.add_argument("-g", "--generator", action="append", help='Generators to use')
22
22
  parser.add_argument("-of", "--output-folder",
23
23
  help='The root output folder for generated and build files')
24
+ parser.add_argument("-d", "--deployer", action="append",
25
+ help='Deploy using the provided deployer to the output folder')
26
+ parser.add_argument("--deployer-folder",
27
+ help="Deployer output folder, base build folder by default if not set")
28
+ parser.add_argument("--build-require", action='store_true', default=False,
29
+ help='Whether the provided path is a build-require')
24
30
  add_common_install_arguments(parser)
25
31
  add_lockfile_args(parser)
26
32
  args = parser.parse_args(*args)
27
33
 
28
34
  cwd = os.getcwd()
29
35
  path = conan_api.local.get_conanfile_path(args.path, cwd, py=True)
30
- folder = os.path.dirname(path)
36
+ source_folder = os.path.dirname(path)
37
+ output_folder = make_abs_path(args.output_folder, cwd) if args.output_folder else None
38
+ deployer_folder = make_abs_path(args.deployer_folder, cwd) if args.deployer_folder else None
39
+
40
+ # Basic collaborators: remotes, lockfile, profiles
31
41
  remotes = conan_api.remotes.list(args.remote) if not args.no_remote else []
32
42
  overrides = eval(args.lockfile_overrides) if args.lockfile_overrides else None
33
- lockfile = conan_api.lockfile.get_lockfile(lockfile=args.lockfile,
34
- conanfile_path=path,
35
- cwd=cwd,
36
- partial=args.lockfile_partial,
37
- overrides=overrides)
43
+ lockfile = conan_api.lockfile.get_lockfile(lockfile=args.lockfile, conanfile_path=path, cwd=cwd,
44
+ partial=args.lockfile_partial, overrides=overrides)
38
45
  profile_host, profile_build = conan_api.profiles.get_profiles_from_args(args)
39
46
  print_profiles(profile_host, profile_build)
40
47
 
41
48
  deps_graph = conan_api.graph.load_graph_consumer(path, args.name, args.version,
42
49
  args.user, args.channel,
43
50
  profile_host, profile_build, lockfile, remotes,
44
- args.update)
51
+ args.update,
52
+ is_build_require=args.build_require)
45
53
  print_graph_basic(deps_graph)
46
54
  deps_graph.report_graph_error()
47
55
  conan_api.graph.analyze_binaries(deps_graph, args.build, remotes=remotes, update=args.update,
@@ -52,11 +60,9 @@ def build(conan_api, parser, *args):
52
60
  out.title("Installing packages")
53
61
  conan_api.install.install_binaries(deps_graph=deps_graph, remotes=remotes)
54
62
 
55
- source_folder = folder
56
- output_folder = make_abs_path(args.output_folder, cwd) if args.output_folder else None
57
63
  out.title("Finalizing install (deploy, generators)")
58
- conan_api.install.install_consumer(deps_graph=deps_graph, source_folder=source_folder,
59
- output_folder=output_folder)
64
+ conan_api.install.install_consumer(deps_graph, args.generator, source_folder, output_folder,
65
+ deploy=args.deployer, deploy_folder=deployer_folder)
60
66
 
61
67
  out.title("Calling build()")
62
68
  conanfile = deps_graph.root.conanfile
@@ -7,6 +7,7 @@ from conan.cli.command import conan_command, OnceArgument
7
7
  from conan.cli.commands.create import _get_test_conanfile_path
8
8
  from conan.cli.formatters.graph import format_graph_json
9
9
  from conan.cli.printers.graph import print_graph_basic
10
+ from conans.errors import ConanException
10
11
 
11
12
 
12
13
  @conan_command(group="Creator", formatters={"json": format_graph_json})
@@ -45,11 +46,13 @@ def export_pkg(conan_api, parser, *args):
45
46
  profile_host, profile_build = conan_api.profiles.get_profiles_from_args(args)
46
47
  remotes = conan_api.remotes.list(args.remote) if not args.no_remote else []
47
48
 
49
+ conanfile = conan_api.local.inspect(path, remotes, lockfile)
50
+ # The package_type is not fully processed at export
51
+ if conanfile.package_type == "python-require":
52
+ raise ConanException("export-pkg can only be used for binaries, not for 'python-require'")
48
53
  ref, conanfile = conan_api.export.export(path=path, name=args.name, version=args.version,
49
54
  user=args.user, channel=args.channel, lockfile=lockfile,
50
55
  remotes=remotes)
51
- # The package_type is not fully processed at export
52
- assert conanfile.package_type != "python-require", "A python-require cannot be export-pkg"
53
56
  lockfile = conan_api.lockfile.update_lockfile_export(lockfile, conanfile, ref,
54
57
  args.build_require)
55
58
 
@@ -91,7 +94,7 @@ def export_pkg(conan_api, parser, *args):
91
94
  if test_conanfile_path:
92
95
  from conan.cli.commands.test import run_test
93
96
  deps_graph = run_test(conan_api, test_conanfile_path, ref, profile_host, profile_build,
94
- remotes=None, lockfile=lockfile, update=False, build_modes=None)
97
+ remotes=remotes, lockfile=lockfile, update=False, build_modes=None)
95
98
  # TODO: Do something with lockfile, same as create()
96
99
 
97
100
  conan_api.lockfile.save_lockfile(lockfile, args.lockfile_out, cwd)
@@ -0,0 +1,81 @@
1
+ import os
2
+
3
+ from conan.api.output import ConanOutput
4
+ from conan.cli import make_abs_path
5
+ from conan.cli.args import common_graph_args, validate_common_graph_args
6
+ from conan.cli.command import conan_command
7
+ from conan.cli.formatters.graph import format_graph_json
8
+ from conan.cli.printers import print_profiles
9
+ from conan.cli.printers.graph import print_graph_packages, print_graph_basic
10
+
11
+
12
+ @conan_command(group="Consumer", formatters={"json": format_graph_json})
13
+ def install(conan_api, parser, *args):
14
+ """
15
+ Install the requirements specified in a recipe (conanfile.py or conanfile.txt).
16
+
17
+ It can also be used to install packages without a conanfile, using the
18
+ --requires and --tool-requires arguments.
19
+
20
+ If any requirement is not found in the local cache, it will iterate the remotes
21
+ looking for it. When the full dependency graph is computed, and all dependencies
22
+ recipes have been found, it will look for binary packages matching the current settings.
23
+ If no binary package is found for some or several dependencies, it will error,
24
+ unless the '--build' argument is used to build it from source.
25
+
26
+ After installation of packages, the generators and deployers will be called.
27
+ """
28
+ common_graph_args(parser)
29
+ parser.add_argument("-g", "--generator", action="append", help='Generators to use')
30
+ parser.add_argument("-of", "--output-folder",
31
+ help='The root output folder for generated and build files')
32
+ parser.add_argument("-d", "--deployer", action="append",
33
+ help='Deploy using the provided deployer to the output folder')
34
+ parser.add_argument("--deployer-folder",
35
+ help="Deployer output folder, base build folder by default if not set")
36
+ parser.add_argument("--build-require", action='store_true', default=False,
37
+ help='Whether the provided path is a build-require')
38
+ args = parser.parse_args(*args)
39
+ validate_common_graph_args(args)
40
+
41
+ # basic paths
42
+ cwd = os.getcwd()
43
+ path = conan_api.local.get_conanfile_path(args.path, cwd, py=None) if args.path else None
44
+ source_folder = os.path.dirname(path) if args.path else cwd
45
+ output_folder = make_abs_path(args.output_folder, cwd) if args.output_folder else None
46
+
47
+ # Basic collaborators: remotes, lockfile, profiles
48
+ remotes = conan_api.remotes.list(args.remote) if not args.no_remote else []
49
+ overrides = eval(args.lockfile_overrides) if args.lockfile_overrides else None
50
+ lockfile = conan_api.lockfile.get_lockfile(lockfile=args.lockfile, conanfile_path=path, cwd=cwd,
51
+ partial=args.lockfile_partial, overrides=overrides)
52
+ profile_host, profile_build = conan_api.profiles.get_profiles_from_args(args)
53
+ print_profiles(profile_host, profile_build)
54
+
55
+ # Graph computation (without installation of binaries)
56
+ gapi = conan_api.graph
57
+ if path:
58
+ deps_graph = gapi.load_graph_consumer(path, args.name, args.version, args.user, args.channel,
59
+ profile_host, profile_build, lockfile, remotes,
60
+ args.update, is_build_require=args.build_require)
61
+ else:
62
+ deps_graph = gapi.load_graph_requires(args.requires, args.tool_requires, profile_host,
63
+ profile_build, lockfile, remotes, args.update)
64
+ print_graph_basic(deps_graph)
65
+ deps_graph.report_graph_error()
66
+ gapi.analyze_binaries(deps_graph, args.build, remotes, update=args.update, lockfile=lockfile)
67
+ print_graph_packages(deps_graph)
68
+
69
+ # Installation of binaries and consumer generators
70
+ conan_api.install.install_binaries(deps_graph=deps_graph, remotes=remotes)
71
+ ConanOutput().title("Finalizing install (deploy, generators)")
72
+ conan_api.install.install_consumer(deps_graph, args.generator, source_folder, output_folder,
73
+ deploy=args.deployer, deploy_folder=args.deployer_folder)
74
+ ConanOutput().success("Install finished successfully")
75
+
76
+ # Update lockfile if necessary
77
+ lockfile = conan_api.lockfile.update_lockfile(lockfile, deps_graph, args.lockfile_packages,
78
+ clean=args.lockfile_clean)
79
+ conan_api.lockfile.save_lockfile(lockfile, args.lockfile_out, cwd)
80
+ return {"graph": deps_graph,
81
+ "conan_api": conan_api}
@@ -43,12 +43,12 @@ def lock_create(conan_api, parser, subparser, *args):
43
43
  graph = conan_api.graph.load_graph_consumer(path, args.name, args.version,
44
44
  args.user, args.channel,
45
45
  profile_host, profile_build, lockfile,
46
- remotes, args.build, args.update,
46
+ remotes, args.update,
47
47
  is_build_require=args.build_require)
48
48
  else:
49
49
  graph = conan_api.graph.load_graph_requires(args.requires, args.tool_requires,
50
50
  profile_host, profile_build, lockfile,
51
- remotes, args.build, args.update)
51
+ remotes, args.update)
52
52
 
53
53
  print_graph_basic(graph)
54
54
  graph.report_graph_error()
@@ -1,3 +1,4 @@
1
+ import json
1
2
  import os
2
3
 
3
4
  from conan.api.output import ConanOutput, cli_out_write
@@ -22,12 +23,14 @@ def profiles_list_cli_output(profiles):
22
23
  cli_out_write(p)
23
24
 
24
25
 
25
- def detected_profile_cli_output(detect_profile):
26
- cli_out_write("Detected profile:")
27
- cli_out_write(detect_profile.dumps())
26
+ def json_profiles(profiles):
27
+ host, build = profiles
28
+ result = {"host": host.serialize(),
29
+ "build": build.serialize()}
30
+ cli_out_write(json.dumps(result))
28
31
 
29
32
 
30
- @conan_subcommand(formatters={"text": print_profiles})
33
+ @conan_subcommand(formatters={"text": print_profiles, "json": json_profiles})
31
34
  def profile_show(conan_api, parser, subparser, *args):
32
35
  """
33
36
  Show aggregated profiles from the passed arguments.
@@ -63,7 +66,9 @@ def profile_detect(conan_api, parser, subparser, *args):
63
66
  raise ConanException(f"Profile '{profile_pathname}' already exists")
64
67
 
65
68
  detected_profile = conan_api.profiles.detect()
66
- detected_profile_cli_output(detected_profile)
69
+ ConanOutput().success("\nDetected profile:")
70
+ cli_out_write(detected_profile.dumps())
71
+
67
72
  contents = detected_profile.dumps()
68
73
  ConanOutput().warning("This profile is a guess of your environment, please check it.")
69
74
  if detected_profile.settings.get("os") == "Macos":
@@ -9,8 +9,8 @@ from conans.errors import ConanException
9
9
 
10
10
 
11
11
  def summary_remove_list(results):
12
- """ Do litte format modification to serialized
13
- list bundle so it looks prettier on text output
12
+ """ Do a little format modification to serialized
13
+ list bundle, so it looks prettier on text output
14
14
  """
15
15
  cli_out_write("Remove summary:")
16
16
  info = results["results"]
@@ -51,6 +51,8 @@ def remove(conan_api: ConanAPI, parser, *args):
51
51
  parser.add_argument('-r', '--remote', action=OnceArgument,
52
52
  help='Will remove from the specified remote')
53
53
  parser.add_argument("-l", "--list", help="Package list file")
54
+ parser.add_argument("--dry-run", default=False, action="store_true",
55
+ help="Do not remove any items, only print those which would be removed")
54
56
  args = parser.parse_args(*args)
55
57
 
56
58
  if args.pattern is None and args.list is None:
@@ -88,7 +90,8 @@ def remove(conan_api: ConanAPI, parser, *args):
88
90
  packages = ref_bundle.get("packages")
89
91
  if packages is None:
90
92
  if confirmation(f"Remove the recipe and all the packages of '{ref.repr_notime()}'?"):
91
- conan_api.remove.recipe(ref, remote=remote)
93
+ if not args.dry_run:
94
+ conan_api.remove.recipe(ref, remote=remote)
92
95
  else:
93
96
  ref_dict.pop(ref.revision)
94
97
  if not ref_dict:
@@ -104,7 +107,8 @@ def remove(conan_api: ConanAPI, parser, *args):
104
107
 
105
108
  for pref, _ in prefs.items():
106
109
  if confirmation(f"Remove the package '{pref.repr_notime()}'?"):
107
- conan_api.remove.package(pref, remote=remote)
110
+ if not args.dry_run:
111
+ conan_api.remove.package(pref, remote=remote)
108
112
  else:
109
113
  pref_dict = packages[pref.package_id]["revisions"]
110
114
  pref_dict.pop(pref.revision)