conan 2.10.3__tar.gz → 2.11.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 (332) hide show
  1. {conan-2.10.3/conan.egg-info → conan-2.11.0}/PKG-INFO +1 -1
  2. {conan-2.10.3 → conan-2.11.0}/conan/__init__.py +1 -1
  3. {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/download.py +3 -3
  4. {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/install.py +7 -10
  5. {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/list.py +7 -8
  6. {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/local.py +5 -11
  7. {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/remotes.py +11 -9
  8. {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/workspace.py +2 -1
  9. {conan-2.10.3 → conan-2.11.0}/conan/cli/cli.py +1 -1
  10. {conan-2.10.3 → conan-2.11.0}/conan/cli/printers/graph.py +4 -0
  11. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/local/editable.py +15 -1
  12. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/profile/profile_loader.py +4 -1
  13. {conan-2.10.3 → conan-2.11.0}/conan/internal/conan_app.py +23 -11
  14. {conan-2.10.3 → conan-2.11.0}/conan/test/utils/tools.py +14 -26
  15. {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmakedeps/templates/macros.py +1 -2
  16. {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmakedeps2/target_configuration.py +2 -1
  17. {conan-2.10.3 → conan-2.11.0}/conan/tools/env/environment.py +26 -10
  18. {conan-2.10.3 → conan-2.11.0}/conan/tools/gnu/autotoolstoolchain.py +26 -13
  19. {conan-2.10.3 → conan-2.11.0}/conan/tools/google/bazeldeps.py +3 -1
  20. {conan-2.10.3 → conan-2.11.0}/conan/tools/meson/toolchain.py +1 -0
  21. {conan-2.10.3 → conan-2.11.0}/conan/tools/microsoft/visual.py +22 -9
  22. {conan-2.10.3 → conan-2.11.0/conan.egg-info}/PKG-INFO +1 -1
  23. {conan-2.10.3 → conan-2.11.0}/conans/client/rest_client_local_recipe_index.py +17 -5
  24. {conan-2.10.3 → conan-2.11.0}/conans/client/subsystems.py +4 -5
  25. {conan-2.10.3 → conan-2.11.0}/conans/model/build_info.py +7 -6
  26. {conan-2.10.3 → conan-2.11.0}/conans/model/conf.py +2 -2
  27. {conan-2.10.3 → conan-2.11.0}/LICENSE.md +0 -0
  28. {conan-2.10.3 → conan-2.11.0}/MANIFEST.in +0 -0
  29. {conan-2.10.3 → conan-2.11.0}/README.md +0 -0
  30. {conan-2.10.3 → conan-2.11.0}/conan/api/__init__.py +0 -0
  31. {conan-2.10.3 → conan-2.11.0}/conan/api/conan_api.py +0 -0
  32. {conan-2.10.3 → conan-2.11.0}/conan/api/input.py +0 -0
  33. {conan-2.10.3 → conan-2.11.0}/conan/api/model.py +0 -0
  34. {conan-2.10.3 → conan-2.11.0}/conan/api/output.py +0 -0
  35. {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/__init__.py +0 -0
  36. {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/cache.py +0 -0
  37. {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/command.py +0 -0
  38. {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/config.py +0 -0
  39. {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/export.py +0 -0
  40. {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/graph.py +0 -0
  41. {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/lockfile.py +0 -0
  42. {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/new.py +0 -0
  43. {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/profiles.py +0 -0
  44. {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/remove.py +0 -0
  45. {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/search.py +0 -0
  46. {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/upload.py +0 -0
  47. {conan-2.10.3 → conan-2.11.0}/conan/cli/__init__.py +0 -0
  48. {conan-2.10.3 → conan-2.11.0}/conan/cli/args.py +0 -0
  49. {conan-2.10.3 → conan-2.11.0}/conan/cli/command.py +0 -0
  50. {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/__init__.py +0 -0
  51. {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/build.py +0 -0
  52. {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/cache.py +0 -0
  53. {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/config.py +0 -0
  54. {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/create.py +0 -0
  55. {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/download.py +0 -0
  56. {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/editable.py +0 -0
  57. {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/export.py +0 -0
  58. {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/export_pkg.py +0 -0
  59. {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/graph.py +0 -0
  60. {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/inspect.py +0 -0
  61. {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/install.py +0 -0
  62. {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/list.py +0 -0
  63. {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/lock.py +0 -0
  64. {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/new.py +0 -0
  65. {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/pkglist.py +0 -0
  66. {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/profile.py +0 -0
  67. {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/remote.py +0 -0
  68. {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/remove.py +0 -0
  69. {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/search.py +0 -0
  70. {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/source.py +0 -0
  71. {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/test.py +0 -0
  72. {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/upload.py +0 -0
  73. {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/version.py +0 -0
  74. {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/workspace.py +0 -0
  75. {conan-2.10.3 → conan-2.11.0}/conan/cli/exit_codes.py +0 -0
  76. {conan-2.10.3 → conan-2.11.0}/conan/cli/formatters/__init__.py +0 -0
  77. {conan-2.10.3 → conan-2.11.0}/conan/cli/formatters/graph/__init__.py +0 -0
  78. {conan-2.10.3 → conan-2.11.0}/conan/cli/formatters/graph/build_order_html.py +0 -0
  79. {conan-2.10.3 → conan-2.11.0}/conan/cli/formatters/graph/graph.py +0 -0
  80. {conan-2.10.3 → conan-2.11.0}/conan/cli/formatters/graph/graph_info_text.py +0 -0
  81. {conan-2.10.3 → conan-2.11.0}/conan/cli/formatters/graph/info_graph_dot.py +0 -0
  82. {conan-2.10.3 → conan-2.11.0}/conan/cli/formatters/graph/info_graph_html.py +0 -0
  83. {conan-2.10.3 → conan-2.11.0}/conan/cli/formatters/list/__init__.py +0 -0
  84. {conan-2.10.3 → conan-2.11.0}/conan/cli/formatters/list/binary_html_table.py +0 -0
  85. {conan-2.10.3 → conan-2.11.0}/conan/cli/formatters/list/list.py +0 -0
  86. {conan-2.10.3 → conan-2.11.0}/conan/cli/formatters/list/search_table_html.py +0 -0
  87. {conan-2.10.3 → conan-2.11.0}/conan/cli/printers/__init__.py +0 -0
  88. {conan-2.10.3 → conan-2.11.0}/conan/cps/__init__.py +0 -0
  89. {conan-2.10.3 → conan-2.11.0}/conan/cps/cps.py +0 -0
  90. {conan-2.10.3 → conan-2.11.0}/conan/errors.py +0 -0
  91. {conan-2.10.3 → conan-2.11.0}/conan/internal/__init__.py +0 -0
  92. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/__init__.py +0 -0
  93. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/config/__init__.py +0 -0
  94. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/config/config_installer.py +0 -0
  95. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/detect/__init__.py +0 -0
  96. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/detect/detect_api.py +0 -0
  97. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/detect/detect_vs.py +0 -0
  98. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/export.py +0 -0
  99. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/install/__init__.py +0 -0
  100. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/install/generators.py +0 -0
  101. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/list/__init__.py +0 -0
  102. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/list/query_parse.py +0 -0
  103. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/local/__init__.py +0 -0
  104. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/__init__.py +0 -0
  105. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/alias_new.py +0 -0
  106. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/autoools_exe.py +0 -0
  107. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/autotools_lib.py +0 -0
  108. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/basic.py +0 -0
  109. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/bazel_7_exe.py +0 -0
  110. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/bazel_7_lib.py +0 -0
  111. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/bazel_exe.py +0 -0
  112. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/bazel_lib.py +0 -0
  113. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/cmake_exe.py +0 -0
  114. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/cmake_lib.py +0 -0
  115. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/local_recipes_index.py +0 -0
  116. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/meson_exe.py +0 -0
  117. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/meson_lib.py +0 -0
  118. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/msbuild_exe.py +0 -0
  119. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/msbuild_lib.py +0 -0
  120. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/qbs_lib.py +0 -0
  121. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/profile/__init__.py +0 -0
  122. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/profile/detect.py +0 -0
  123. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/remotes/__init__.py +0 -0
  124. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/remotes/encrypt.py +0 -0
  125. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/remotes/localdb.py +0 -0
  126. {conan-2.10.3 → conan-2.11.0}/conan/internal/api/uploader.py +0 -0
  127. {conan-2.10.3 → conan-2.11.0}/conan/internal/cache/__init__.py +0 -0
  128. {conan-2.10.3 → conan-2.11.0}/conan/internal/cache/cache.py +0 -0
  129. {conan-2.10.3 → conan-2.11.0}/conan/internal/cache/conan_reference_layout.py +0 -0
  130. {conan-2.10.3 → conan-2.11.0}/conan/internal/cache/db/__init__.py +0 -0
  131. {conan-2.10.3 → conan-2.11.0}/conan/internal/cache/db/cache_database.py +0 -0
  132. {conan-2.10.3 → conan-2.11.0}/conan/internal/cache/db/packages_table.py +0 -0
  133. {conan-2.10.3 → conan-2.11.0}/conan/internal/cache/db/recipes_table.py +0 -0
  134. {conan-2.10.3 → conan-2.11.0}/conan/internal/cache/db/table.py +0 -0
  135. {conan-2.10.3 → conan-2.11.0}/conan/internal/cache/home_paths.py +0 -0
  136. {conan-2.10.3 → conan-2.11.0}/conan/internal/cache/integrity_check.py +0 -0
  137. {conan-2.10.3 → conan-2.11.0}/conan/internal/default_settings.py +0 -0
  138. {conan-2.10.3 → conan-2.11.0}/conan/internal/deploy.py +0 -0
  139. {conan-2.10.3 → conan-2.11.0}/conan/internal/errors.py +0 -0
  140. {conan-2.10.3 → conan-2.11.0}/conan/internal/internal_tools.py +0 -0
  141. {conan-2.10.3 → conan-2.11.0}/conan/internal/methods.py +0 -0
  142. {conan-2.10.3 → conan-2.11.0}/conan/internal/paths.py +0 -0
  143. {conan-2.10.3 → conan-2.11.0}/conan/internal/runner/__init__.py +0 -0
  144. {conan-2.10.3 → conan-2.11.0}/conan/internal/runner/docker.py +0 -0
  145. {conan-2.10.3 → conan-2.11.0}/conan/internal/runner/ssh.py +0 -0
  146. {conan-2.10.3 → conan-2.11.0}/conan/internal/runner/wsl.py +0 -0
  147. {conan-2.10.3 → conan-2.11.0}/conan/internal/workspace.py +0 -0
  148. {conan-2.10.3 → conan-2.11.0}/conan/test/__init__.py +0 -0
  149. {conan-2.10.3 → conan-2.11.0}/conan/test/assets/__init__.py +0 -0
  150. {conan-2.10.3 → conan-2.11.0}/conan/test/assets/autotools.py +0 -0
  151. {conan-2.10.3 → conan-2.11.0}/conan/test/assets/cmake.py +0 -0
  152. {conan-2.10.3 → conan-2.11.0}/conan/test/assets/genconanfile.py +0 -0
  153. {conan-2.10.3 → conan-2.11.0}/conan/test/assets/pkg_cmake.py +0 -0
  154. {conan-2.10.3 → conan-2.11.0}/conan/test/assets/sources.py +0 -0
  155. {conan-2.10.3 → conan-2.11.0}/conan/test/assets/visual_project_files.py +0 -0
  156. {conan-2.10.3 → conan-2.11.0}/conan/test/utils/__init__.py +0 -0
  157. {conan-2.10.3 → conan-2.11.0}/conan/test/utils/artifactory.py +0 -0
  158. {conan-2.10.3 → conan-2.11.0}/conan/test/utils/env.py +0 -0
  159. {conan-2.10.3 → conan-2.11.0}/conan/test/utils/file_server.py +0 -0
  160. {conan-2.10.3 → conan-2.11.0}/conan/test/utils/mocks.py +0 -0
  161. {conan-2.10.3 → conan-2.11.0}/conan/test/utils/profiles.py +0 -0
  162. {conan-2.10.3 → conan-2.11.0}/conan/test/utils/scm.py +0 -0
  163. {conan-2.10.3 → conan-2.11.0}/conan/test/utils/server_launcher.py +0 -0
  164. {conan-2.10.3 → conan-2.11.0}/conan/test/utils/test_files.py +0 -0
  165. {conan-2.10.3 → conan-2.11.0}/conan/tools/__init__.py +0 -0
  166. {conan-2.10.3 → conan-2.11.0}/conan/tools/android/__init__.py +0 -0
  167. {conan-2.10.3 → conan-2.11.0}/conan/tools/android/utils.py +0 -0
  168. {conan-2.10.3 → conan-2.11.0}/conan/tools/apple/__init__.py +0 -0
  169. {conan-2.10.3 → conan-2.11.0}/conan/tools/apple/apple.py +0 -0
  170. {conan-2.10.3 → conan-2.11.0}/conan/tools/apple/xcodebuild.py +0 -0
  171. {conan-2.10.3 → conan-2.11.0}/conan/tools/apple/xcodedeps.py +0 -0
  172. {conan-2.10.3 → conan-2.11.0}/conan/tools/apple/xcodetoolchain.py +0 -0
  173. {conan-2.10.3 → conan-2.11.0}/conan/tools/build/__init__.py +0 -0
  174. {conan-2.10.3 → conan-2.11.0}/conan/tools/build/cppstd.py +0 -0
  175. {conan-2.10.3 → conan-2.11.0}/conan/tools/build/cpu.py +0 -0
  176. {conan-2.10.3 → conan-2.11.0}/conan/tools/build/cross_building.py +0 -0
  177. {conan-2.10.3 → conan-2.11.0}/conan/tools/build/cstd.py +0 -0
  178. {conan-2.10.3 → conan-2.11.0}/conan/tools/build/flags.py +0 -0
  179. {conan-2.10.3 → conan-2.11.0}/conan/tools/build/stdcpp_library.py +0 -0
  180. {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/__init__.py +0 -0
  181. {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmake.py +0 -0
  182. {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmakedeps/__init__.py +0 -0
  183. {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmakedeps/cmakedeps.py +0 -0
  184. {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmakedeps/templates/__init__.py +0 -0
  185. {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmakedeps/templates/config.py +0 -0
  186. {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmakedeps/templates/config_version.py +0 -0
  187. {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmakedeps/templates/target_configuration.py +0 -0
  188. {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmakedeps/templates/target_data.py +0 -0
  189. {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmakedeps/templates/targets.py +0 -0
  190. {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmakedeps2/__init__.py +0 -0
  191. {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmakedeps2/cmakedeps.py +0 -0
  192. {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmakedeps2/config.py +0 -0
  193. {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmakedeps2/config_version.py +0 -0
  194. {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmakedeps2/targets.py +0 -0
  195. {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/layout.py +0 -0
  196. {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/presets.py +0 -0
  197. {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/toolchain/__init__.py +0 -0
  198. {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/toolchain/blocks.py +0 -0
  199. {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/toolchain/toolchain.py +0 -0
  200. {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/utils.py +0 -0
  201. {conan-2.10.3 → conan-2.11.0}/conan/tools/cps/__init__.py +0 -0
  202. {conan-2.10.3 → conan-2.11.0}/conan/tools/cps/cps_deps.py +0 -0
  203. {conan-2.10.3 → conan-2.11.0}/conan/tools/env/__init__.py +0 -0
  204. {conan-2.10.3 → conan-2.11.0}/conan/tools/env/virtualbuildenv.py +0 -0
  205. {conan-2.10.3 → conan-2.11.0}/conan/tools/env/virtualrunenv.py +0 -0
  206. {conan-2.10.3 → conan-2.11.0}/conan/tools/files/__init__.py +0 -0
  207. {conan-2.10.3 → conan-2.11.0}/conan/tools/files/conandata.py +0 -0
  208. {conan-2.10.3 → conan-2.11.0}/conan/tools/files/copy_pattern.py +0 -0
  209. {conan-2.10.3 → conan-2.11.0}/conan/tools/files/files.py +0 -0
  210. {conan-2.10.3 → conan-2.11.0}/conan/tools/files/packager.py +0 -0
  211. {conan-2.10.3 → conan-2.11.0}/conan/tools/files/patches.py +0 -0
  212. {conan-2.10.3 → conan-2.11.0}/conan/tools/files/symlinks/__init__.py +0 -0
  213. {conan-2.10.3 → conan-2.11.0}/conan/tools/files/symlinks/symlinks.py +0 -0
  214. {conan-2.10.3 → conan-2.11.0}/conan/tools/gnu/__init__.py +0 -0
  215. {conan-2.10.3 → conan-2.11.0}/conan/tools/gnu/autotools.py +0 -0
  216. {conan-2.10.3 → conan-2.11.0}/conan/tools/gnu/autotoolsdeps.py +0 -0
  217. {conan-2.10.3 → conan-2.11.0}/conan/tools/gnu/get_gnu_triplet.py +0 -0
  218. {conan-2.10.3 → conan-2.11.0}/conan/tools/gnu/gnudeps_flags.py +0 -0
  219. {conan-2.10.3 → conan-2.11.0}/conan/tools/gnu/gnutoolchain.py +0 -0
  220. {conan-2.10.3 → conan-2.11.0}/conan/tools/gnu/makedeps.py +0 -0
  221. {conan-2.10.3 → conan-2.11.0}/conan/tools/gnu/pkgconfig.py +0 -0
  222. {conan-2.10.3 → conan-2.11.0}/conan/tools/gnu/pkgconfigdeps.py +0 -0
  223. {conan-2.10.3 → conan-2.11.0}/conan/tools/google/__init__.py +0 -0
  224. {conan-2.10.3 → conan-2.11.0}/conan/tools/google/bazel.py +0 -0
  225. {conan-2.10.3 → conan-2.11.0}/conan/tools/google/layout.py +0 -0
  226. {conan-2.10.3 → conan-2.11.0}/conan/tools/google/toolchain.py +0 -0
  227. {conan-2.10.3 → conan-2.11.0}/conan/tools/intel/__init__.py +0 -0
  228. {conan-2.10.3 → conan-2.11.0}/conan/tools/intel/intel_cc.py +0 -0
  229. {conan-2.10.3 → conan-2.11.0}/conan/tools/layout/__init__.py +0 -0
  230. {conan-2.10.3 → conan-2.11.0}/conan/tools/meson/__init__.py +0 -0
  231. {conan-2.10.3 → conan-2.11.0}/conan/tools/meson/helpers.py +0 -0
  232. {conan-2.10.3 → conan-2.11.0}/conan/tools/meson/meson.py +0 -0
  233. {conan-2.10.3 → conan-2.11.0}/conan/tools/microsoft/__init__.py +0 -0
  234. {conan-2.10.3 → conan-2.11.0}/conan/tools/microsoft/layout.py +0 -0
  235. {conan-2.10.3 → conan-2.11.0}/conan/tools/microsoft/msbuild.py +0 -0
  236. {conan-2.10.3 → conan-2.11.0}/conan/tools/microsoft/msbuilddeps.py +0 -0
  237. {conan-2.10.3 → conan-2.11.0}/conan/tools/microsoft/nmakedeps.py +0 -0
  238. {conan-2.10.3 → conan-2.11.0}/conan/tools/microsoft/nmaketoolchain.py +0 -0
  239. {conan-2.10.3 → conan-2.11.0}/conan/tools/microsoft/subsystems.py +0 -0
  240. {conan-2.10.3 → conan-2.11.0}/conan/tools/microsoft/toolchain.py +0 -0
  241. {conan-2.10.3 → conan-2.11.0}/conan/tools/premake/__init__.py +0 -0
  242. {conan-2.10.3 → conan-2.11.0}/conan/tools/premake/premake.py +0 -0
  243. {conan-2.10.3 → conan-2.11.0}/conan/tools/premake/premakedeps.py +0 -0
  244. {conan-2.10.3 → conan-2.11.0}/conan/tools/qbs/__init__.py +0 -0
  245. {conan-2.10.3 → conan-2.11.0}/conan/tools/qbs/common.py +0 -0
  246. {conan-2.10.3 → conan-2.11.0}/conan/tools/qbs/qbs.py +0 -0
  247. {conan-2.10.3 → conan-2.11.0}/conan/tools/qbs/qbsdeps.py +0 -0
  248. {conan-2.10.3 → conan-2.11.0}/conan/tools/qbs/qbsprofile.py +0 -0
  249. {conan-2.10.3 → conan-2.11.0}/conan/tools/ros/__init__.py +0 -0
  250. {conan-2.10.3 → conan-2.11.0}/conan/tools/ros/rosenv.py +0 -0
  251. {conan-2.10.3 → conan-2.11.0}/conan/tools/scm/__init__.py +0 -0
  252. {conan-2.10.3 → conan-2.11.0}/conan/tools/scm/git.py +0 -0
  253. {conan-2.10.3 → conan-2.11.0}/conan/tools/scons/__init__.py +0 -0
  254. {conan-2.10.3 → conan-2.11.0}/conan/tools/scons/sconsdeps.py +0 -0
  255. {conan-2.10.3 → conan-2.11.0}/conan/tools/system/__init__.py +0 -0
  256. {conan-2.10.3 → conan-2.11.0}/conan/tools/system/package_manager.py +0 -0
  257. {conan-2.10.3 → conan-2.11.0}/conan.egg-info/SOURCES.txt +0 -0
  258. {conan-2.10.3 → conan-2.11.0}/conan.egg-info/dependency_links.txt +0 -0
  259. {conan-2.10.3 → conan-2.11.0}/conan.egg-info/entry_points.txt +0 -0
  260. {conan-2.10.3 → conan-2.11.0}/conan.egg-info/requires.txt +0 -0
  261. {conan-2.10.3 → conan-2.11.0}/conan.egg-info/top_level.txt +0 -0
  262. {conan-2.10.3 → conan-2.11.0}/conans/__init__.py +0 -0
  263. {conan-2.10.3 → conan-2.11.0}/conans/client/__init__.py +0 -0
  264. {conan-2.10.3 → conan-2.11.0}/conans/client/downloaders/__init__.py +0 -0
  265. {conan-2.10.3 → conan-2.11.0}/conans/client/downloaders/caching_file_downloader.py +0 -0
  266. {conan-2.10.3 → conan-2.11.0}/conans/client/downloaders/download_cache.py +0 -0
  267. {conan-2.10.3 → conan-2.11.0}/conans/client/downloaders/file_downloader.py +0 -0
  268. {conan-2.10.3 → conan-2.11.0}/conans/client/graph/__init__.py +0 -0
  269. {conan-2.10.3 → conan-2.11.0}/conans/client/graph/build_mode.py +0 -0
  270. {conan-2.10.3 → conan-2.11.0}/conans/client/graph/compatibility.py +0 -0
  271. {conan-2.10.3 → conan-2.11.0}/conans/client/graph/compute_pid.py +0 -0
  272. {conan-2.10.3 → conan-2.11.0}/conans/client/graph/graph.py +0 -0
  273. {conan-2.10.3 → conan-2.11.0}/conans/client/graph/graph_binaries.py +0 -0
  274. {conan-2.10.3 → conan-2.11.0}/conans/client/graph/graph_builder.py +0 -0
  275. {conan-2.10.3 → conan-2.11.0}/conans/client/graph/graph_error.py +0 -0
  276. {conan-2.10.3 → conan-2.11.0}/conans/client/graph/install_graph.py +0 -0
  277. {conan-2.10.3 → conan-2.11.0}/conans/client/graph/profile_node_definer.py +0 -0
  278. {conan-2.10.3 → conan-2.11.0}/conans/client/graph/provides.py +0 -0
  279. {conan-2.10.3 → conan-2.11.0}/conans/client/graph/proxy.py +0 -0
  280. {conan-2.10.3 → conan-2.11.0}/conans/client/graph/python_requires.py +0 -0
  281. {conan-2.10.3 → conan-2.11.0}/conans/client/graph/range_resolver.py +0 -0
  282. {conan-2.10.3 → conan-2.11.0}/conans/client/hook_manager.py +0 -0
  283. {conan-2.10.3 → conan-2.11.0}/conans/client/installer.py +0 -0
  284. {conan-2.10.3 → conan-2.11.0}/conans/client/loader.py +0 -0
  285. {conan-2.10.3 → conan-2.11.0}/conans/client/loader_txt.py +0 -0
  286. {conan-2.10.3 → conan-2.11.0}/conans/client/migrations.py +0 -0
  287. {conan-2.10.3 → conan-2.11.0}/conans/client/pkg_sign.py +0 -0
  288. {conan-2.10.3 → conan-2.11.0}/conans/client/remote_manager.py +0 -0
  289. {conan-2.10.3 → conan-2.11.0}/conans/client/rest/__init__.py +0 -0
  290. {conan-2.10.3 → conan-2.11.0}/conans/client/rest/auth_manager.py +0 -0
  291. {conan-2.10.3 → conan-2.11.0}/conans/client/rest/client_routes.py +0 -0
  292. {conan-2.10.3 → conan-2.11.0}/conans/client/rest/conan_requester.py +0 -0
  293. {conan-2.10.3 → conan-2.11.0}/conans/client/rest/file_uploader.py +0 -0
  294. {conan-2.10.3 → conan-2.11.0}/conans/client/rest/remote_credentials.py +0 -0
  295. {conan-2.10.3 → conan-2.11.0}/conans/client/rest/rest_client.py +0 -0
  296. {conan-2.10.3 → conan-2.11.0}/conans/client/rest/rest_client_v2.py +0 -0
  297. {conan-2.10.3 → conan-2.11.0}/conans/client/source.py +0 -0
  298. {conan-2.10.3 → conan-2.11.0}/conans/conan.py +0 -0
  299. {conan-2.10.3 → conan-2.11.0}/conans/conan_server.py +0 -0
  300. {conan-2.10.3 → conan-2.11.0}/conans/migrations.py +0 -0
  301. {conan-2.10.3 → conan-2.11.0}/conans/model/__init__.py +0 -0
  302. {conan-2.10.3 → conan-2.11.0}/conans/model/conan_file.py +0 -0
  303. {conan-2.10.3 → conan-2.11.0}/conans/model/conanfile_interface.py +0 -0
  304. {conan-2.10.3 → conan-2.11.0}/conans/model/dependencies.py +0 -0
  305. {conan-2.10.3 → conan-2.11.0}/conans/model/graph_lock.py +0 -0
  306. {conan-2.10.3 → conan-2.11.0}/conans/model/info.py +0 -0
  307. {conan-2.10.3 → conan-2.11.0}/conans/model/layout.py +0 -0
  308. {conan-2.10.3 → conan-2.11.0}/conans/model/manifest.py +0 -0
  309. {conan-2.10.3 → conan-2.11.0}/conans/model/options.py +0 -0
  310. {conan-2.10.3 → conan-2.11.0}/conans/model/package_ref.py +0 -0
  311. {conan-2.10.3 → conan-2.11.0}/conans/model/pkg_type.py +0 -0
  312. {conan-2.10.3 → conan-2.11.0}/conans/model/profile.py +0 -0
  313. {conan-2.10.3 → conan-2.11.0}/conans/model/recipe_ref.py +0 -0
  314. {conan-2.10.3 → conan-2.11.0}/conans/model/requires.py +0 -0
  315. {conan-2.10.3 → conan-2.11.0}/conans/model/rest_routes.py +0 -0
  316. {conan-2.10.3 → conan-2.11.0}/conans/model/settings.py +0 -0
  317. {conan-2.10.3 → conan-2.11.0}/conans/model/version.py +0 -0
  318. {conan-2.10.3 → conan-2.11.0}/conans/model/version_range.py +0 -0
  319. {conan-2.10.3 → conan-2.11.0}/conans/requirements.txt +0 -0
  320. {conan-2.10.3 → conan-2.11.0}/conans/requirements_dev.txt +0 -0
  321. {conan-2.10.3 → conan-2.11.0}/conans/requirements_runner.txt +0 -0
  322. {conan-2.10.3 → conan-2.11.0}/conans/requirements_server.txt +0 -0
  323. {conan-2.10.3 → conan-2.11.0}/conans/util/__init__.py +0 -0
  324. {conan-2.10.3 → conan-2.11.0}/conans/util/config_parser.py +0 -0
  325. {conan-2.10.3 → conan-2.11.0}/conans/util/dates.py +0 -0
  326. {conan-2.10.3 → conan-2.11.0}/conans/util/files.py +0 -0
  327. {conan-2.10.3 → conan-2.11.0}/conans/util/locks.py +0 -0
  328. {conan-2.10.3 → conan-2.11.0}/conans/util/runners.py +0 -0
  329. {conan-2.10.3 → conan-2.11.0}/conans/util/thread.py +0 -0
  330. {conan-2.10.3 → conan-2.11.0}/pyproject.toml +0 -0
  331. {conan-2.10.3 → conan-2.11.0}/setup.cfg +0 -0
  332. {conan-2.10.3 → conan-2.11.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: conan
3
- Version: 2.10.3
3
+ Version: 2.11.0
4
4
  Summary: Conan C/C++ package manager
5
5
  Home-page: https://conan.io
6
6
  Author: JFrog LTD
@@ -1,5 +1,5 @@
1
1
  from conans.model.conan_file import ConanFile
2
2
  from conan.tools.scm import Version as _Version
3
3
 
4
- __version__ = '2.10.3'
4
+ __version__ = '2.11.0'
5
5
  conan_version = _Version(__version__)
@@ -4,7 +4,7 @@ from typing import Optional, List
4
4
 
5
5
  from conan.api.model import Remote, PackagesList
6
6
  from conan.api.output import ConanOutput
7
- from conan.internal.conan_app import ConanApp
7
+ from conan.internal.conan_app import ConanBasicApp
8
8
  from conan.errors import ConanException
9
9
  from conans.model.package_ref import PkgReference
10
10
  from conans.model.recipe_ref import RecipeReference
@@ -20,7 +20,7 @@ class DownloadAPI:
20
20
  If the recipe is already in the cache it will be skipped,
21
21
  but the specified metadata will be downloaded."""
22
22
  output = ConanOutput()
23
- app = ConanApp(self.conan_api)
23
+ app = ConanBasicApp(self.conan_api)
24
24
  assert ref.revision, f"Reference '{ref}' must have revision"
25
25
  try:
26
26
  app.cache.recipe_layout(ref) # raises if not found
@@ -53,7 +53,7 @@ class DownloadAPI:
53
53
  If the package is already in the cache it will be skipped,
54
54
  but the specified metadata will be downloaded."""
55
55
  output = ConanOutput()
56
- app = ConanApp(self.conan_api)
56
+ app = ConanBasicApp(self.conan_api)
57
57
  try:
58
58
  app.cache.recipe_layout(pref.ref) # raises if not found
59
59
  except ConanException:
@@ -2,7 +2,7 @@ import os
2
2
 
3
3
  from conan.internal.api.install.generators import write_generators
4
4
  from conan.internal.cache.home_paths import HomePaths
5
- from conan.internal.conan_app import ConanApp
5
+ from conan.internal.conan_app import ConanBasicApp
6
6
  from conan.internal.deploy import do_deploys
7
7
 
8
8
  from conans.client.graph.install_graph import InstallGraph
@@ -21,9 +21,8 @@ class InstallAPI:
21
21
  :param deps_graph: Dependency graph to intall packages for
22
22
  :param remotes:
23
23
  """
24
- app = ConanApp(self.conan_api)
25
- installer = BinaryInstaller(app, self.conan_api.config.global_conf,
26
- self.conan_api.local.editable_packages)
24
+ app = ConanBasicApp(self.conan_api)
25
+ installer = BinaryInstaller(app, self.conan_api.config.global_conf, app.editable_packages)
27
26
  install_graph = InstallGraph(deps_graph)
28
27
  install_graph.raise_errors()
29
28
  install_order = install_graph.install_order()
@@ -35,9 +34,8 @@ class InstallAPI:
35
34
  :param only_info: Only allow reporting and checking, but never install
36
35
  :param graph: Dependency graph to intall packages for
37
36
  """
38
- app = ConanApp(self.conan_api)
39
- installer = BinaryInstaller(app, self.conan_api.config.global_conf,
40
- self.conan_api.local.editable_packages)
37
+ app = ConanBasicApp(self.conan_api)
38
+ installer = BinaryInstaller(app, self.conan_api.config.global_conf, app.editable_packages)
41
39
  installer.install_system_requires(graph, only_info)
42
40
 
43
41
  def install_sources(self, graph, remotes):
@@ -46,9 +44,8 @@ class InstallAPI:
46
44
  :param remotes:
47
45
  :param graph: Dependency graph to install packages for
48
46
  """
49
- app = ConanApp(self.conan_api)
50
- installer = BinaryInstaller(app, self.conan_api.config.global_conf,
51
- self.conan_api.local.editable_packages)
47
+ app = ConanBasicApp(self.conan_api)
48
+ installer = BinaryInstaller(app, self.conan_api.config.global_conf, app.editable_packages)
52
49
  installer.install_sources(graph, remotes)
53
50
 
54
51
  # TODO: Look for a better name
@@ -5,7 +5,7 @@ from typing import Dict
5
5
  from conan.api.model import PackagesList
6
6
  from conan.api.output import ConanOutput, TimedOutput
7
7
  from conan.internal.api.list.query_parse import filter_package_configs
8
- from conan.internal.conan_app import ConanApp
8
+ from conan.internal.conan_app import ConanBasicApp
9
9
  from conan.internal.paths import CONANINFO
10
10
  from conan.internal.errors import NotFoundException
11
11
  from conan.errors import ConanException
@@ -26,7 +26,7 @@ class ListAPI:
26
26
 
27
27
  def latest_recipe_revision(self, ref: RecipeReference, remote=None):
28
28
  assert ref.revision is None, "latest_recipe_revision: ref already have a revision"
29
- app = ConanApp(self.conan_api)
29
+ app = ConanBasicApp(self.conan_api)
30
30
  if remote:
31
31
  ret = app.remote_manager.get_latest_recipe_reference(ref, remote=remote)
32
32
  else:
@@ -36,7 +36,7 @@ class ListAPI:
36
36
 
37
37
  def recipe_revisions(self, ref: RecipeReference, remote=None):
38
38
  assert ref.revision is None, "recipe_revisions: ref already have a revision"
39
- app = ConanApp(self.conan_api)
39
+ app = ConanBasicApp(self.conan_api)
40
40
  if remote:
41
41
  results = app.remote_manager.get_recipe_revisions_references(ref, remote=remote)
42
42
  else:
@@ -50,7 +50,7 @@ class ListAPI:
50
50
  # is used as an "exists" check too in other places, lets respect the None return
51
51
  assert pref.revision is None, "latest_package_revision: ref already have a revision"
52
52
  assert pref.package_id is not None, "package_id must be defined"
53
- app = ConanApp(self.conan_api)
53
+ app = ConanBasicApp(self.conan_api)
54
54
  if remote:
55
55
  ret = app.remote_manager.get_latest_package_reference(pref, remote=remote)
56
56
  else:
@@ -60,7 +60,7 @@ class ListAPI:
60
60
  def package_revisions(self, pref: PkgReference, remote=None):
61
61
  assert pref.ref.revision is not None, "package_revisions requires a recipe revision, " \
62
62
  "check latest first if needed"
63
- app = ConanApp(self.conan_api)
63
+ app = ConanBasicApp(self.conan_api)
64
64
  if remote:
65
65
  results = app.remote_manager.get_package_revisions_references(pref, remote=remote)
66
66
  else:
@@ -71,12 +71,11 @@ class ListAPI:
71
71
  remote=None) -> Dict[PkgReference, dict]:
72
72
  assert ref.revision is not None, "packages: ref should have a revision. " \
73
73
  "Check latest if needed."
74
+ app = ConanBasicApp(self.conan_api)
74
75
  if not remote:
75
- app = ConanApp(self.conan_api)
76
76
  prefs = app.cache.get_package_references(ref)
77
77
  packages = _get_cache_packages_binary_info(app.cache, prefs)
78
78
  else:
79
- app = ConanApp(self.conan_api)
80
79
  if ref.revision == "latest":
81
80
  ref.revision = None
82
81
  ref = app.remote_manager.get_latest_recipe_reference(ref, remote=remote)
@@ -143,7 +142,7 @@ class ListAPI:
143
142
  select_bundle = PackagesList()
144
143
  # Avoid doing a ``search`` of recipes if it is an exact ref and it will be used later
145
144
  search_ref = pattern.search_ref
146
- app = ConanApp(self.conan_api)
145
+ app = ConanBasicApp(self.conan_api)
147
146
  limit_time = timelimit(lru) if lru else None
148
147
  out = ConanOutput()
149
148
  remote_name = "local cache" if not remote else remote.name
@@ -19,9 +19,6 @@ class LocalAPI:
19
19
  def __init__(self, conan_api):
20
20
  self._conan_api = conan_api
21
21
  self.editable_packages = EditablePackages(conan_api.home_folder)
22
- editables = conan_api.workspace.editables()
23
- if editables:
24
- self.editable_packages.edited_refs.update(editables)
25
22
 
26
23
  @staticmethod
27
24
  def get_conanfile_path(path, cwd, py):
@@ -50,30 +47,27 @@ class LocalAPI:
50
47
 
51
48
  def editable_add(self, path, name=None, version=None, user=None, channel=None, cwd=None,
52
49
  output_folder=None, remotes=None):
53
- path = self._conan_api.local.get_conanfile_path(path, cwd, py=True)
50
+ path = self.get_conanfile_path(path, cwd, py=True)
54
51
  app = ConanApp(self._conan_api)
55
52
  conanfile = app.loader.load_named(path, name, version, user, channel, remotes=remotes)
56
53
  if conanfile.name is None or conanfile.version is None:
57
54
  raise ConanException("Editable package recipe should declare its name and version")
58
55
  ref = RecipeReference(conanfile.name, conanfile.version, conanfile.user, conanfile.channel)
59
56
  # Retrieve conanfile.py from target_path
60
- target_path = self._conan_api.local.get_conanfile_path(path=path, cwd=cwd, py=True)
57
+ target_path = self.get_conanfile_path(path=path, cwd=cwd, py=True)
61
58
  output_folder = make_abs_path(output_folder) if output_folder else None
62
59
  # Check the conanfile is there, and name/version matches
63
- editable_packages = EditablePackages(self._conan_api.home_folder)
64
- editable_packages.add(ref, target_path, output_folder=output_folder)
60
+ self.editable_packages.add(ref, target_path, output_folder=output_folder)
65
61
  return ref
66
62
 
67
63
  def editable_remove(self, path=None, requires=None, cwd=None):
68
64
  if path:
69
65
  path = make_abs_path(path, cwd)
70
66
  path = os.path.join(path, "conanfile.py")
71
- editable_packages = EditablePackages(self._conan_api.home_folder)
72
- return editable_packages.remove(path, requires)
67
+ return self.editable_packages.remove(path, requires)
73
68
 
74
69
  def editable_list(self):
75
- editable_packages = EditablePackages(self._conan_api.home_folder)
76
- return editable_packages.edited_refs
70
+ return self.editable_packages.edited_refs
77
71
 
78
72
  def source(self, path, name=None, version=None, user=None, channel=None, remotes=None):
79
73
  """ calls the 'source()' method of the current (user folder) conanfile.py
@@ -29,7 +29,8 @@ class RemotesAPI:
29
29
  def __init__(self, conan_api):
30
30
  # This method is private, the subapi is not instantiated by users
31
31
  self.conan_api = conan_api
32
- self._remotes_file = HomePaths(self.conan_api.cache_folder).remotes_path
32
+ self._home_folder = conan_api.home_folder
33
+ self._remotes_file = HomePaths(self._home_folder).remotes_path
33
34
 
34
35
  def list(self, pattern=None, only_enabled=True):
35
36
  """
@@ -107,7 +108,7 @@ class RemotesAPI:
107
108
  :param index: if not defined, the new remote will be last one. Pass an integer to insert
108
109
  the remote in that position instead of the last one
109
110
  """
110
- add_local_recipes_index_remote(self.conan_api, remote)
111
+ add_local_recipes_index_remote(self._home_folder, remote)
111
112
  remotes = _load(self._remotes_file)
112
113
  if remote.remote_type != LOCAL_RECIPES_INDEX:
113
114
  _validate_url(remote.url)
@@ -142,9 +143,9 @@ class RemotesAPI:
142
143
  removed = _filter(remotes, pattern, only_enabled=False)
143
144
  remotes = [r for r in remotes if r not in removed]
144
145
  _save(self._remotes_file, remotes)
145
- localdb = LocalDB(self.conan_api.cache_folder)
146
+ localdb = LocalDB(self._home_folder)
146
147
  for remote in removed:
147
- remove_local_recipes_index_remote(self.conan_api, remote)
148
+ remove_local_recipes_index_remote(self._home_folder, remote)
148
149
  localdb.clean(remote_url=remote.url)
149
150
  return removed
150
151
 
@@ -201,7 +202,7 @@ class RemotesAPI:
201
202
 
202
203
  def user_info(self, remote: Remote):
203
204
  # TODO: Review
204
- localdb = LocalDB(self.conan_api.cache_folder)
205
+ localdb = LocalDB(self._home_folder)
205
206
  user_info = {}
206
207
  user, token, _ = localdb.get_login(remote.url)
207
208
  user_info["name"] = remote.name
@@ -226,29 +227,30 @@ class RemotesAPI:
226
227
 
227
228
  :param remote: The ``Remote`` object to logout
228
229
  """
229
- localdb = LocalDB(self.conan_api.cache_folder)
230
+ localdb = LocalDB(self._home_folder)
230
231
  # The localdb only stores url + username + token, not remote name, so use URL as key
231
232
  localdb.clean(remote_url=remote.url)
232
233
 
233
234
  def user_set(self, remote: Remote, username):
234
235
  # TODO: Review
235
- localdb = LocalDB(self.conan_api.cache_folder)
236
+ localdb = LocalDB(self._home_folder)
236
237
  if username == "":
237
238
  username = None
238
239
  localdb.store(username, token=None, refresh_token=None, remote_url=remote.url)
239
240
 
240
241
  def user_auth(self, remote: Remote, with_user=False, force=False):
241
242
  # TODO: Review
243
+ localdb = LocalDB(self._home_folder)
242
244
  app = ConanApp(self.conan_api)
243
245
  if with_user:
244
- user, token, _ = app.localdb.get_login(remote.url)
246
+ user, token, _ = localdb.get_login(remote.url)
245
247
  if not user:
246
248
  var_name = f"CONAN_LOGIN_USERNAME_{remote.name.replace('-', '_').upper()}"
247
249
  user = os.getenv(var_name, None) or os.getenv("CONAN_LOGIN_USERNAME", None)
248
250
  if not user:
249
251
  return
250
252
  app.remote_manager.check_credentials(remote, force)
251
- user, token, _ = app.localdb.get_login(remote.url)
253
+ user, token, _ = localdb.get_login(remote.url)
252
254
  return user
253
255
 
254
256
 
@@ -27,7 +27,8 @@ class WorkspaceAPI:
27
27
  def config_folder(self):
28
28
  return self._workspace.config_folder()
29
29
 
30
- def editables(self):
30
+ @property
31
+ def editable_packages(self):
31
32
  return self._workspace.editables()
32
33
 
33
34
  def open(self, require, remotes, cwd=None):
@@ -249,7 +249,7 @@ def _warn_python_version():
249
249
  def _warn_frozen_center(conan_api):
250
250
  remotes = conan_api.remotes.list()
251
251
  for r in remotes:
252
- if r.url == "https://center.conan.io":
252
+ if r.url == "https://center.conan.io" and not r.disabled:
253
253
  ConanOutput().warning(
254
254
  "The remote 'https://center.conan.io' is now frozen and has been replaced by 'https://center2.conan.io'. \n"
255
255
  "Starting from Conan 2.9.2, the default remote is 'center2.conan.io'. \n"
@@ -68,6 +68,10 @@ def print_graph_basic(graph):
68
68
  "it might be removed in 3.0.")
69
69
  output.warning("Consider using version-ranges instead.")
70
70
  _format_resolved("Resolved version ranges", graph.resolved_ranges)
71
+ for req in graph.resolved_ranges:
72
+ if str(req.version) == "[]":
73
+ output.warning("Empty version range usage is discouraged. Use [*] instead", warn_tag="deprecated")
74
+ break
71
75
 
72
76
  overrides = graph.overrides()
73
77
  if overrides:
@@ -12,7 +12,10 @@ EDITABLE_PACKAGES_FILE = 'editable_packages.json'
12
12
 
13
13
 
14
14
  class EditablePackages:
15
- def __init__(self, cache_folder):
15
+ def __init__(self, cache_folder=None):
16
+ if cache_folder is None:
17
+ self._edited_refs = {}
18
+ return
16
19
  self._edited_file = normpath(join(cache_folder, EDITABLE_PACKAGES_FILE))
17
20
  if os.path.exists(self._edited_file):
18
21
  edited = load(self._edited_file)
@@ -22,6 +25,17 @@ class EditablePackages:
22
25
  else:
23
26
  self._edited_refs = {} # {ref: {"path": path, "layout": layout}}
24
27
 
28
+ def update_copy(self, ws_editables):
29
+ """
30
+ Create a new instance with the union of the editable packages of self and other
31
+ """
32
+ if ws_editables is None:
33
+ return self
34
+ result = EditablePackages()
35
+ result._edited_refs = self._edited_refs.copy()
36
+ result._edited_refs.update(ws_editables)
37
+ return result
38
+
25
39
  @property
26
40
  def edited_refs(self):
27
41
  return self._edited_refs
@@ -123,7 +123,10 @@ class ProfileLoader:
123
123
  "conan_version": conan_version,
124
124
  "detect_api": detect_api}
125
125
 
126
- rtemplate = Environment(loader=FileSystemLoader(base_path)).from_string(text)
126
+ # Always include the root Conan home "profiles" folder as secondary route for loading
127
+ # imports and includes from jinja2 templates.
128
+ loader_paths = [base_path, profiles_folder]
129
+ rtemplate = Environment(loader=FileSystemLoader(loader_paths)).from_string(text)
127
130
 
128
131
  try:
129
132
  text = rtemplate.render(context)
@@ -5,7 +5,6 @@ from conan.internal.cache.home_paths import HomePaths
5
5
  from conans.client.graph.proxy import ConanProxy
6
6
  from conans.client.graph.python_requires import PyRequireLoader
7
7
  from conans.client.graph.range_resolver import RangeResolver
8
- from conans.client.hook_manager import HookManager
9
8
  from conans.client.loader import ConanFileLoader, load_python_file
10
9
  from conans.client.remote_manager import RemoteManager
11
10
  from conans.client.rest.auth_manager import ConanApiAuthManager
@@ -36,29 +35,42 @@ class ConanFileHelpers:
36
35
  self.home_folder = home_folder
37
36
 
38
37
 
39
- class ConanApp:
38
+ class ConanBasicApp:
40
39
  def __init__(self, conan_api):
40
+ """ Needs:
41
+ - Global configuration
42
+ - Cache home folder
43
+ """
41
44
  global_conf = conan_api.config.global_conf
45
+ self.global_conf = global_conf
42
46
  cache_folder = conan_api.home_folder
43
47
  self.cache_folder = cache_folder
44
48
  self.cache = PkgCache(self.cache_folder, global_conf)
45
49
 
46
- home_paths = HomePaths(self.cache_folder)
47
-
48
50
  # Wraps an http_requester to inject proxies, certs, etc
49
51
  self.requester = ConanRequester(global_conf, cache_folder)
50
52
  # To handle remote connections
51
53
  # Wraps RestApiClient to add authentication support (same interface)
52
- self.localdb = LocalDB(cache_folder)
53
- auth_manager = ConanApiAuthManager(self.requester, cache_folder, self.localdb, global_conf)
54
+ localdb = LocalDB(cache_folder)
55
+ auth_manager = ConanApiAuthManager(self.requester, cache_folder, localdb, global_conf)
54
56
  # Handle remote connections
55
57
  self.remote_manager = RemoteManager(self.cache, auth_manager, cache_folder)
58
+ global_editables = conan_api.local.editable_packages
59
+ ws_editables = conan_api.workspace.editable_packages
60
+ self.editable_packages = global_editables.update_copy(ws_editables)
56
61
 
57
- self.proxy = ConanProxy(self, conan_api.local.editable_packages)
58
- self.range_resolver = RangeResolver(self, global_conf, conan_api.local.editable_packages)
59
62
 
60
- self.pyreq_loader = PyRequireLoader(self, global_conf)
61
- cmd_wrap = CmdWrapper(home_paths.wrapper_path)
62
- conanfile_helpers = ConanFileHelpers(self.requester, cmd_wrap, global_conf, self.cache,
63
+ class ConanApp(ConanBasicApp):
64
+ def __init__(self, conan_api):
65
+ """ Needs:
66
+ - LocalAPI to read editable packages
67
+ """
68
+ super().__init__(conan_api)
69
+ self.proxy = ConanProxy(self, self.editable_packages)
70
+ self.range_resolver = RangeResolver(self, self.global_conf, self.editable_packages)
71
+
72
+ self.pyreq_loader = PyRequireLoader(self, self.global_conf)
73
+ cmd_wrap = CmdWrapper(HomePaths(self.cache_folder).wrapper_path)
74
+ conanfile_helpers = ConanFileHelpers(self.requester, cmd_wrap, self.global_conf, self.cache,
63
75
  self.cache_folder)
64
76
  self.loader = ConanFileLoader(self.pyreq_loader, conanfile_helpers)
@@ -24,6 +24,8 @@ from mock import Mock
24
24
  from requests.exceptions import HTTPError
25
25
  from webtest.app import TestApp
26
26
 
27
+ from conan.api.subapi.config import ConfigAPI
28
+ from conan.api.subapi.remotes import _save
27
29
  from conan.cli.exit_codes import SUCCESS, ERROR_GENERAL
28
30
  from conan.internal.cache.cache import PackageLayout, RecipeLayout, PkgCache
29
31
  from conan.internal.cache.home_paths import HomePaths
@@ -456,10 +458,10 @@ class TestClient:
456
458
  # create default profile
457
459
  if light:
458
460
  text = "[settings]\nos=Linux" # Needed at least build-os
459
- save(self.cache.settings_path, "os: [Linux, Windows]")
461
+ save(self.paths.settings_path, "os: [Linux, Windows]")
460
462
  else:
461
463
  text = default_profiles[platform.system()]
462
- save(self.cache.default_profile_path, text)
464
+ save(os.path.join(self.cache_folder, "profiles", "default"), text)
463
465
  # Using internal env variable to add another custom commands folder
464
466
  self._custom_commands_folder = custom_commands_folder
465
467
 
@@ -475,23 +477,11 @@ class TestClient:
475
477
  @property
476
478
  def cache(self):
477
479
  # Returns a temporary cache object intended for inspecting it
478
- api = ConanAPI(cache_folder=self.cache_folder)
479
- global_conf = api.config.global_conf
480
-
481
- class MyCache(PkgCache, HomePaths): # Temporary class to avoid breaking all tests
482
- def __init__(self, cache_folder):
483
- PkgCache.__init__(self, cache_folder, global_conf)
484
- HomePaths.__init__(self, cache_folder)
485
-
486
- @property
487
- def plugins_path(self): # Temporary to not break tests
488
- return os.path.join(self._home, "extensions", "plugins")
489
-
490
- @property
491
- def default_profile_path(self):
492
- return os.path.join(self._home, "profiles", "default")
480
+ return PkgCache(self.cache_folder, ConfigAPI.load_config(self.cache_folder))
493
481
 
494
- return MyCache(self.cache_folder)
482
+ @property
483
+ def paths(self):
484
+ return HomePaths(self.cache_folder)
495
485
 
496
486
  @property
497
487
  def base_folder(self):
@@ -503,17 +493,15 @@ class TestClient:
503
493
  return self.cache.store
504
494
 
505
495
  def update_servers(self):
506
- api = ConanAPI(cache_folder=self.cache_folder)
507
- for r in api.remotes.list():
508
- api.remotes.remove(r.name)
509
-
496
+ remotes = []
510
497
  for name, server in self.servers.items():
511
498
  if isinstance(server, ArtifactoryServer):
512
- api.remotes.add(Remote(name, server.repo_api_url))
499
+ remotes.append(Remote(name, server.repo_api_url))
513
500
  elif isinstance(server, TestServer):
514
- api.remotes.add(Remote(name, server.fake_url))
501
+ remotes.append(Remote(name, server.fake_url))
515
502
  else:
516
- api.remotes.add(Remote(name, server))
503
+ remotes.append(Remote(name, server))
504
+ _save(HomePaths(self.cache_folder).remotes_path, remotes)
517
505
 
518
506
  @contextmanager
519
507
  def chdir(self, newdir):
@@ -563,7 +551,7 @@ class TestClient:
563
551
  try:
564
552
  if self._custom_commands_folder:
565
553
  with environment_update({_CONAN_INTERNAL_CUSTOM_COMMANDS_PATH:
566
- self._custom_commands_folder}):
554
+ self._custom_commands_folder}):
567
555
  command.run(args)
568
556
  else:
569
557
  command.run(args)
@@ -65,8 +65,7 @@ class MacrosTemplate(CMakeDepsFileTemplate):
65
65
  NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
66
66
  set(CMAKE_FIND_LIBRARY_SUFFIXES ${_OLD_CMAKE_FIND_LIBRARY_SUFFIXES})
67
67
  if(NOT CONAN_SHARED_FOUND_LIBRARY)
68
- message(STATUS "Cannot locate shared library: ${_LIBRARY_NAME}")
69
- message(DEBUG "DLL library not found, creating UNKNOWN IMPORTED target")
68
+ message(DEBUG "DLL library not found, creating UNKNOWN IMPORTED target, searched for: ${_LIBRARY_NAME}")
70
69
  if(NOT TARGET ${_LIB_NAME})
71
70
  add_library(${_LIB_NAME} UNKNOWN IMPORTED)
72
71
  endif()
@@ -4,6 +4,7 @@ import textwrap
4
4
  import jinja2
5
5
  from jinja2 import Template
6
6
 
7
+ from conan.api.output import ConanOutput
7
8
  from conan.errors import ConanException
8
9
  from conans.client.graph.graph import CONTEXT_BUILD, CONTEXT_HOST
9
10
  from conans.model.pkg_type import PackageType
@@ -166,7 +167,7 @@ class TargetConfigurationTemplate2:
166
167
  "system_libs": system_libs}
167
168
 
168
169
  if info.frameworks:
169
- self._conanfile.output.warning("frameworks not supported yet in new CMakeDeps generator")
170
+ ConanOutput(scope=str(self._conanfile)).warning("frameworks not supported yet in new CMakeDeps generator")
170
171
 
171
172
  if info.libs:
172
173
  if len(info.libs) != 1:
@@ -3,6 +3,7 @@ import textwrap
3
3
  from collections import OrderedDict
4
4
  from contextlib import contextmanager
5
5
 
6
+ from conan.api.output import ConanOutput
6
7
  from conan.internal.api.install.generators import relativize_paths
7
8
  from conans.client.subsystems import deduce_subsystem, WINDOWS, subsystem_path
8
9
  from conan.errors import ConanException
@@ -14,7 +15,7 @@ class _EnvVarPlaceHolder:
14
15
  pass
15
16
 
16
17
 
17
- def environment_wrap_command(env_filenames, env_folder, cmd, subsystem=None,
18
+ def environment_wrap_command(conanfile, env_filenames, env_folder, cmd, subsystem=None,
18
19
  accepted_extensions=None):
19
20
  if not env_filenames:
20
21
  return cmd
@@ -51,22 +52,24 @@ def environment_wrap_command(env_filenames, env_folder, cmd, subsystem=None,
51
52
  raise ConanException("Cannot wrap command with different envs,"
52
53
  "{} - {}".format(bats+ps1s, shs))
53
54
 
55
+ powershell = conanfile.conf.get("tools.env.virtualenv:powershell") or "powershell.exe"
56
+ powershell = "powershell.exe" if powershell is True else powershell
57
+
54
58
  if bats:
55
59
  launchers = " && ".join('"{}"'.format(b) for b in bats)
56
60
  if ps1s:
57
- ps1_launchers = " ; ".join('"&\'{}\'"'.format(f) for f in ps1s)
58
- cmd = cmd.replace('"', "'")
59
- return '{} && powershell.exe {} ; cmd /c {}'.format(launchers, ps1_launchers, cmd)
61
+ ps1_launchers = f'{powershell} -Command "' + " ; ".join('&\'{}\''.format(f) for f in ps1s) + '"'
62
+ cmd = cmd.replace('"', r'\"')
63
+ return '{} && {} ; cmd /c "{}"'.format(launchers, ps1_launchers, cmd)
60
64
  else:
61
65
  return '{} && {}'.format(launchers, cmd)
62
66
  elif shs:
63
67
  launchers = " && ".join('. "{}"'.format(f) for f in shs)
64
68
  return '{} && {}'.format(launchers, cmd)
65
69
  elif ps1s:
66
- # TODO: at the moment it only works with path without spaces
67
- launchers = " ; ".join('"&\'{}\'"'.format(f) for f in ps1s)
68
- cmd = cmd.replace('"', "'")
69
- return 'powershell.exe {} ; cmd /c {}'.format(launchers, cmd)
70
+ ps1_launchers = f'{powershell} -Command "' + " ; ".join('&\'{}\''.format(f) for f in ps1s) + '"'
71
+ cmd = cmd.replace('"', r'\"')
72
+ return '{} ; cmd /c "{}"'.format(ps1_launchers, cmd)
70
73
  else:
71
74
  return cmd
72
75
 
@@ -523,7 +526,8 @@ class EnvVars:
523
526
  def save_script(self, filename):
524
527
  """
525
528
  Saves a script file (bat, sh, ps1) with a launcher to set the environment.
526
- If the conf "tools.env.virtualenv:powershell" is set to True it will generate powershell
529
+ If the conf "tools.env.virtualenv:powershell" is not an empty string
530
+ it will generate powershell
527
531
  launchers if Windows.
528
532
 
529
533
  :param filename: Name of the file to generate. If the extension is provided, it will generate
@@ -536,7 +540,19 @@ class EnvVars:
536
540
  is_ps1 = ext == ".ps1"
537
541
  else: # Need to deduce it automatically
538
542
  is_bat = self._subsystem == WINDOWS
539
- is_ps1 = self._conanfile.conf.get("tools.env.virtualenv:powershell", check_type=bool)
543
+ try:
544
+ is_ps1 = self._conanfile.conf.get("tools.env.virtualenv:powershell", check_type=bool)
545
+ if is_ps1 is not None:
546
+ ConanOutput().warning(
547
+ "Boolean values for 'tools.env.virtualenv:powershell' are deprecated. "
548
+ "Please specify 'powershell.exe' or 'pwsh' instead, appending arguments if needed "
549
+ "(for example: 'powershell.exe -argument'). "
550
+ "To unset this configuration, use `tools.env.virtualenv:powershell=!`, which matches "
551
+ "the previous 'False' behavior.",
552
+ warn_tag="deprecated"
553
+ )
554
+ except ConanException:
555
+ is_ps1 = self._conanfile.conf.get("tools.env.virtualenv:powershell", check_type=str)
540
556
  if is_ps1:
541
557
  filename = filename + ".ps1"
542
558
  is_bat = False