conan-server 2.0.16__tar.gz → 2.0.17__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 (346) hide show
  1. {conan-server-2.0.16 → conan-server-2.0.17}/PKG-INFO +1 -1
  2. {conan-server-2.0.16 → conan-server-2.0.17}/conan/api/subapi/cache.py +2 -1
  3. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/cli.py +34 -24
  4. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/commands/list.py +1 -1
  5. {conan-server-2.0.16 → conan-server-2.0.17}/conan/internal/api/detect_api.py +44 -38
  6. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/cmake/toolchain/blocks.py +1 -1
  7. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/gnu/pkgconfigdeps.py +1 -1
  8. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/google/bazeldeps.py +5 -4
  9. {conan-server-2.0.16 → conan-server-2.0.17}/conan_server.egg-info/PKG-INFO +1 -1
  10. {conan-server-2.0.16 → conan-server-2.0.17}/conans/__init__.py +1 -1
  11. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/conf/detect.py +3 -3
  12. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/graph/graph_builder.py +3 -4
  13. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/migrations.py +4 -2
  14. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/profile_loader.py +7 -1
  15. {conan-server-2.0.16 → conan-server-2.0.17}/conans/model/conf.py +1 -1
  16. {conan-server-2.0.16 → conan-server-2.0.17}/conans/model/requires.py +1 -1
  17. {conan-server-2.0.16 → conan-server-2.0.17}/conans/test/conftest.py +3 -0
  18. {conan-server-2.0.16 → conan-server-2.0.17}/LICENSE.md +0 -0
  19. {conan-server-2.0.16 → conan-server-2.0.17}/MANIFEST.in +0 -0
  20. {conan-server-2.0.16 → conan-server-2.0.17}/README.md +0 -0
  21. {conan-server-2.0.16 → conan-server-2.0.17}/conan/__init__.py +0 -0
  22. {conan-server-2.0.16 → conan-server-2.0.17}/conan/api/__init__.py +0 -0
  23. {conan-server-2.0.16 → conan-server-2.0.17}/conan/api/conan_api.py +0 -0
  24. {conan-server-2.0.16 → conan-server-2.0.17}/conan/api/model.py +0 -0
  25. {conan-server-2.0.16 → conan-server-2.0.17}/conan/api/output.py +0 -0
  26. {conan-server-2.0.16 → conan-server-2.0.17}/conan/api/subapi/__init__.py +0 -0
  27. {conan-server-2.0.16 → conan-server-2.0.17}/conan/api/subapi/config.py +0 -0
  28. {conan-server-2.0.16 → conan-server-2.0.17}/conan/api/subapi/download.py +0 -0
  29. {conan-server-2.0.16 → conan-server-2.0.17}/conan/api/subapi/export.py +0 -0
  30. {conan-server-2.0.16 → conan-server-2.0.17}/conan/api/subapi/graph.py +0 -0
  31. {conan-server-2.0.16 → conan-server-2.0.17}/conan/api/subapi/install.py +0 -0
  32. {conan-server-2.0.16 → conan-server-2.0.17}/conan/api/subapi/list.py +0 -0
  33. {conan-server-2.0.16 → conan-server-2.0.17}/conan/api/subapi/local.py +0 -0
  34. {conan-server-2.0.16 → conan-server-2.0.17}/conan/api/subapi/lockfile.py +0 -0
  35. {conan-server-2.0.16 → conan-server-2.0.17}/conan/api/subapi/new.py +0 -0
  36. {conan-server-2.0.16 → conan-server-2.0.17}/conan/api/subapi/profiles.py +0 -0
  37. {conan-server-2.0.16 → conan-server-2.0.17}/conan/api/subapi/remotes.py +0 -0
  38. {conan-server-2.0.16 → conan-server-2.0.17}/conan/api/subapi/remove.py +0 -0
  39. {conan-server-2.0.16 → conan-server-2.0.17}/conan/api/subapi/search.py +0 -0
  40. {conan-server-2.0.16 → conan-server-2.0.17}/conan/api/subapi/upload.py +0 -0
  41. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/__init__.py +0 -0
  42. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/args.py +0 -0
  43. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/command.py +0 -0
  44. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/commands/__init__.py +0 -0
  45. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/commands/build.py +0 -0
  46. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/commands/cache.py +0 -0
  47. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/commands/config.py +0 -0
  48. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/commands/create.py +0 -0
  49. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/commands/download.py +0 -0
  50. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/commands/editable.py +0 -0
  51. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/commands/export.py +0 -0
  52. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/commands/export_pkg.py +0 -0
  53. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/commands/graph.py +0 -0
  54. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/commands/inspect.py +0 -0
  55. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/commands/install.py +0 -0
  56. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/commands/lock.py +0 -0
  57. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/commands/new.py +0 -0
  58. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/commands/profile.py +0 -0
  59. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/commands/remote.py +0 -0
  60. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/commands/remove.py +0 -0
  61. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/commands/search.py +0 -0
  62. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/commands/source.py +0 -0
  63. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/commands/test.py +0 -0
  64. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/commands/upload.py +0 -0
  65. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/commands/version.py +0 -0
  66. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/exit_codes.py +0 -0
  67. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/formatters/__init__.py +0 -0
  68. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/formatters/graph/__init__.py +0 -0
  69. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/formatters/graph/graph.py +0 -0
  70. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/formatters/graph/graph_info_text.py +0 -0
  71. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/formatters/graph/info_graph_dot.py +0 -0
  72. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/formatters/graph/info_graph_html.py +0 -0
  73. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/formatters/list/__init__.py +0 -0
  74. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/formatters/list/binary_html_table.py +0 -0
  75. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/formatters/list/list.py +0 -0
  76. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/formatters/list/search_table_html.py +0 -0
  77. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/printers/__init__.py +0 -0
  78. {conan-server-2.0.16 → conan-server-2.0.17}/conan/cli/printers/graph.py +0 -0
  79. {conan-server-2.0.16 → conan-server-2.0.17}/conan/errors.py +0 -0
  80. {conan-server-2.0.16 → conan-server-2.0.17}/conan/internal/__init__.py +0 -0
  81. {conan-server-2.0.16 → conan-server-2.0.17}/conan/internal/api/__init__.py +0 -0
  82. {conan-server-2.0.16 → conan-server-2.0.17}/conan/internal/api/new/__init__.py +0 -0
  83. {conan-server-2.0.16 → conan-server-2.0.17}/conan/internal/api/new/alias_new.py +0 -0
  84. {conan-server-2.0.16 → conan-server-2.0.17}/conan/internal/api/new/autoools_exe.py +0 -0
  85. {conan-server-2.0.16 → conan-server-2.0.17}/conan/internal/api/new/autotools_lib.py +0 -0
  86. {conan-server-2.0.16 → conan-server-2.0.17}/conan/internal/api/new/basic.py +0 -0
  87. {conan-server-2.0.16 → conan-server-2.0.17}/conan/internal/api/new/bazel_exe.py +0 -0
  88. {conan-server-2.0.16 → conan-server-2.0.17}/conan/internal/api/new/bazel_lib.py +0 -0
  89. {conan-server-2.0.16 → conan-server-2.0.17}/conan/internal/api/new/cmake_exe.py +0 -0
  90. {conan-server-2.0.16 → conan-server-2.0.17}/conan/internal/api/new/cmake_lib.py +0 -0
  91. {conan-server-2.0.16 → conan-server-2.0.17}/conan/internal/api/new/meson_exe.py +0 -0
  92. {conan-server-2.0.16 → conan-server-2.0.17}/conan/internal/api/new/meson_lib.py +0 -0
  93. {conan-server-2.0.16 → conan-server-2.0.17}/conan/internal/api/new/msbuild_exe.py +0 -0
  94. {conan-server-2.0.16 → conan-server-2.0.17}/conan/internal/api/new/msbuild_lib.py +0 -0
  95. {conan-server-2.0.16 → conan-server-2.0.17}/conan/internal/cache/__init__.py +0 -0
  96. {conan-server-2.0.16 → conan-server-2.0.17}/conan/internal/cache/cache.py +0 -0
  97. {conan-server-2.0.16 → conan-server-2.0.17}/conan/internal/cache/conan_reference_layout.py +0 -0
  98. {conan-server-2.0.16 → conan-server-2.0.17}/conan/internal/cache/db/__init__.py +0 -0
  99. {conan-server-2.0.16 → conan-server-2.0.17}/conan/internal/cache/db/cache_database.py +0 -0
  100. {conan-server-2.0.16 → conan-server-2.0.17}/conan/internal/cache/db/packages_table.py +0 -0
  101. {conan-server-2.0.16 → conan-server-2.0.17}/conan/internal/cache/db/recipes_table.py +0 -0
  102. {conan-server-2.0.16 → conan-server-2.0.17}/conan/internal/cache/db/table.py +0 -0
  103. {conan-server-2.0.16 → conan-server-2.0.17}/conan/internal/cache/home_paths.py +0 -0
  104. {conan-server-2.0.16 → conan-server-2.0.17}/conan/internal/conan_app.py +0 -0
  105. {conan-server-2.0.16 → conan-server-2.0.17}/conan/internal/deploy.py +0 -0
  106. {conan-server-2.0.16 → conan-server-2.0.17}/conan/internal/integrity_check.py +0 -0
  107. {conan-server-2.0.16 → conan-server-2.0.17}/conan/internal/upload_metadata.py +0 -0
  108. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/__init__.py +0 -0
  109. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/android/__init__.py +0 -0
  110. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/android/utils.py +0 -0
  111. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/apple/__init__.py +0 -0
  112. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/apple/apple.py +0 -0
  113. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/apple/xcodebuild.py +0 -0
  114. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/apple/xcodedeps.py +0 -0
  115. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/apple/xcodetoolchain.py +0 -0
  116. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/build/__init__.py +0 -0
  117. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/build/cppstd.py +0 -0
  118. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/build/cpu.py +0 -0
  119. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/build/cross_building.py +0 -0
  120. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/build/flags.py +0 -0
  121. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/build/stdcpp_library.py +0 -0
  122. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/cmake/__init__.py +0 -0
  123. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/cmake/cmake.py +0 -0
  124. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/cmake/cmakedeps/__init__.py +0 -0
  125. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/cmake/cmakedeps/cmakedeps.py +0 -0
  126. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/cmake/cmakedeps/templates/__init__.py +0 -0
  127. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/cmake/cmakedeps/templates/config.py +0 -0
  128. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/cmake/cmakedeps/templates/config_version.py +0 -0
  129. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/cmake/cmakedeps/templates/macros.py +0 -0
  130. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/cmake/cmakedeps/templates/target_configuration.py +0 -0
  131. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/cmake/cmakedeps/templates/target_data.py +0 -0
  132. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/cmake/cmakedeps/templates/targets.py +0 -0
  133. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/cmake/layout.py +0 -0
  134. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/cmake/presets.py +0 -0
  135. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/cmake/toolchain/__init__.py +0 -0
  136. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/cmake/toolchain/toolchain.py +0 -0
  137. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/cmake/utils.py +0 -0
  138. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/env/__init__.py +0 -0
  139. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/env/environment.py +0 -0
  140. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/env/virtualbuildenv.py +0 -0
  141. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/env/virtualrunenv.py +0 -0
  142. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/files/__init__.py +0 -0
  143. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/files/conandata.py +0 -0
  144. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/files/copy_pattern.py +0 -0
  145. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/files/files.py +0 -0
  146. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/files/packager.py +0 -0
  147. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/files/patches.py +0 -0
  148. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/files/symlinks/__init__.py +0 -0
  149. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/files/symlinks/symlinks.py +0 -0
  150. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/gnu/__init__.py +0 -0
  151. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/gnu/autotools.py +0 -0
  152. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/gnu/autotoolsdeps.py +0 -0
  153. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/gnu/autotoolstoolchain.py +0 -0
  154. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/gnu/get_gnu_triplet.py +0 -0
  155. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/gnu/gnudeps_flags.py +0 -0
  156. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/gnu/makedeps.py +0 -0
  157. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/gnu/pkgconfig.py +0 -0
  158. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/google/__init__.py +0 -0
  159. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/google/bazel.py +0 -0
  160. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/google/layout.py +0 -0
  161. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/google/toolchain.py +0 -0
  162. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/intel/__init__.py +0 -0
  163. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/intel/intel_cc.py +0 -0
  164. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/layout/__init__.py +0 -0
  165. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/meson/__init__.py +0 -0
  166. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/meson/helpers.py +0 -0
  167. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/meson/meson.py +0 -0
  168. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/meson/toolchain.py +0 -0
  169. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/microsoft/__init__.py +0 -0
  170. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/microsoft/layout.py +0 -0
  171. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/microsoft/msbuild.py +0 -0
  172. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/microsoft/msbuilddeps.py +0 -0
  173. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/microsoft/nmakedeps.py +0 -0
  174. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/microsoft/nmaketoolchain.py +0 -0
  175. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/microsoft/subsystems.py +0 -0
  176. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/microsoft/toolchain.py +0 -0
  177. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/microsoft/visual.py +0 -0
  178. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/premake/__init__.py +0 -0
  179. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/premake/premake.py +0 -0
  180. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/premake/premakedeps.py +0 -0
  181. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/qbs/__init__.py +0 -0
  182. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/qbs/qbs.py +0 -0
  183. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/qbs/qbsprofile.py +0 -0
  184. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/scm/__init__.py +0 -0
  185. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/scm/git.py +0 -0
  186. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/scons/__init__.py +0 -0
  187. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/scons/sconsdeps.py +0 -0
  188. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/system/__init__.py +0 -0
  189. {conan-server-2.0.16 → conan-server-2.0.17}/conan/tools/system/package_manager.py +0 -0
  190. {conan-server-2.0.16 → conan-server-2.0.17}/conan_server.egg-info/SOURCES.txt +0 -0
  191. {conan-server-2.0.16 → conan-server-2.0.17}/conan_server.egg-info/dependency_links.txt +0 -0
  192. {conan-server-2.0.16 → conan-server-2.0.17}/conan_server.egg-info/entry_points.txt +0 -0
  193. {conan-server-2.0.16 → conan-server-2.0.17}/conan_server.egg-info/requires.txt +0 -0
  194. {conan-server-2.0.16 → conan-server-2.0.17}/conan_server.egg-info/top_level.txt +0 -0
  195. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/__init__.py +0 -0
  196. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/cache/__init__.py +0 -0
  197. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/cache/cache.py +0 -0
  198. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/cache/editable.py +0 -0
  199. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/cache/remote_registry.py +0 -0
  200. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/cmd/__init__.py +0 -0
  201. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/cmd/export.py +0 -0
  202. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/cmd/uploader.py +0 -0
  203. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/cmd/user.py +0 -0
  204. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/conanfile/__init__.py +0 -0
  205. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/conanfile/build.py +0 -0
  206. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/conanfile/configure.py +0 -0
  207. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/conanfile/implementations.py +0 -0
  208. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/conanfile/package.py +0 -0
  209. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/conf/__init__.py +0 -0
  210. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/conf/config_installer.py +0 -0
  211. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/conf/detect_vs.py +0 -0
  212. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/conf/required_version.py +0 -0
  213. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/downloaders/__init__.py +0 -0
  214. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/downloaders/caching_file_downloader.py +0 -0
  215. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/downloaders/download_cache.py +0 -0
  216. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/downloaders/file_downloader.py +0 -0
  217. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/generators/__init__.py +0 -0
  218. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/graph/__init__.py +0 -0
  219. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/graph/build_mode.py +0 -0
  220. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/graph/compatibility.py +0 -0
  221. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/graph/compute_pid.py +0 -0
  222. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/graph/graph.py +0 -0
  223. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/graph/graph_binaries.py +0 -0
  224. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/graph/graph_error.py +0 -0
  225. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/graph/install_graph.py +0 -0
  226. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/graph/profile_node_definer.py +0 -0
  227. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/graph/provides.py +0 -0
  228. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/graph/proxy.py +0 -0
  229. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/graph/python_requires.py +0 -0
  230. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/graph/range_resolver.py +0 -0
  231. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/hook_manager.py +0 -0
  232. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/installer.py +0 -0
  233. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/loader.py +0 -0
  234. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/loader_txt.py +0 -0
  235. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/pkg_sign.py +0 -0
  236. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/remote_manager.py +0 -0
  237. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/rest/__init__.py +0 -0
  238. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/rest/auth_manager.py +0 -0
  239. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/rest/client_routes.py +0 -0
  240. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/rest/conan_requester.py +0 -0
  241. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/rest/file_uploader.py +0 -0
  242. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/rest/remote_credentials.py +0 -0
  243. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/rest/rest_client.py +0 -0
  244. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/rest/rest_client_common.py +0 -0
  245. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/rest/rest_client_v2.py +0 -0
  246. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/source.py +0 -0
  247. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/store/__init__.py +0 -0
  248. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/store/localdb.py +0 -0
  249. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/subsystems.py +0 -0
  250. {conan-server-2.0.16 → conan-server-2.0.17}/conans/client/userio.py +0 -0
  251. {conan-server-2.0.16 → conan-server-2.0.17}/conans/conan.py +0 -0
  252. {conan-server-2.0.16 → conan-server-2.0.17}/conans/conan_server.py +0 -0
  253. {conan-server-2.0.16 → conan-server-2.0.17}/conans/errors.py +0 -0
  254. {conan-server-2.0.16 → conan-server-2.0.17}/conans/migrations.py +0 -0
  255. {conan-server-2.0.16 → conan-server-2.0.17}/conans/model/__init__.py +0 -0
  256. {conan-server-2.0.16 → conan-server-2.0.17}/conans/model/build_info.py +0 -0
  257. {conan-server-2.0.16 → conan-server-2.0.17}/conans/model/conan_file.py +0 -0
  258. {conan-server-2.0.16 → conan-server-2.0.17}/conans/model/conanfile_interface.py +0 -0
  259. {conan-server-2.0.16 → conan-server-2.0.17}/conans/model/dependencies.py +0 -0
  260. {conan-server-2.0.16 → conan-server-2.0.17}/conans/model/graph_lock.py +0 -0
  261. {conan-server-2.0.16 → conan-server-2.0.17}/conans/model/info.py +0 -0
  262. {conan-server-2.0.16 → conan-server-2.0.17}/conans/model/layout.py +0 -0
  263. {conan-server-2.0.16 → conan-server-2.0.17}/conans/model/manifest.py +0 -0
  264. {conan-server-2.0.16 → conan-server-2.0.17}/conans/model/options.py +0 -0
  265. {conan-server-2.0.16 → conan-server-2.0.17}/conans/model/package_ref.py +0 -0
  266. {conan-server-2.0.16 → conan-server-2.0.17}/conans/model/pkg_type.py +0 -0
  267. {conan-server-2.0.16 → conan-server-2.0.17}/conans/model/profile.py +0 -0
  268. {conan-server-2.0.16 → conan-server-2.0.17}/conans/model/recipe_ref.py +0 -0
  269. {conan-server-2.0.16 → conan-server-2.0.17}/conans/model/rest_routes.py +0 -0
  270. {conan-server-2.0.16 → conan-server-2.0.17}/conans/model/settings.py +0 -0
  271. {conan-server-2.0.16 → conan-server-2.0.17}/conans/model/version.py +0 -0
  272. {conan-server-2.0.16 → conan-server-2.0.17}/conans/model/version_range.py +0 -0
  273. {conan-server-2.0.16 → conan-server-2.0.17}/conans/paths/__init__.py +0 -0
  274. {conan-server-2.0.16 → conan-server-2.0.17}/conans/pylint_plugin.py +0 -0
  275. {conan-server-2.0.16 → conan-server-2.0.17}/conans/requirements.txt +0 -0
  276. {conan-server-2.0.16 → conan-server-2.0.17}/conans/requirements_dev.txt +0 -0
  277. {conan-server-2.0.16 → conan-server-2.0.17}/conans/requirements_server.txt +0 -0
  278. {conan-server-2.0.16 → conan-server-2.0.17}/conans/search/__init__.py +0 -0
  279. {conan-server-2.0.16 → conan-server-2.0.17}/conans/search/query_parse.py +0 -0
  280. {conan-server-2.0.16 → conan-server-2.0.17}/conans/search/search.py +0 -0
  281. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/__init__.py +0 -0
  282. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/conf/__init__.py +0 -0
  283. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/conf/default_server_conf.py +0 -0
  284. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/crypto/__init__.py +0 -0
  285. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/crypto/jwt/__init__.py +0 -0
  286. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/crypto/jwt/jwt_credentials_manager.py +0 -0
  287. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/crypto/jwt/jwt_manager.py +0 -0
  288. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/launcher.py +0 -0
  289. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/migrate.py +0 -0
  290. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/migrations.py +0 -0
  291. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/plugin_loader.py +0 -0
  292. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/rest/__init__.py +0 -0
  293. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/rest/api_v2.py +0 -0
  294. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/rest/bottle_plugins/__init__.py +0 -0
  295. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/rest/bottle_plugins/authorization_header.py +0 -0
  296. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/rest/bottle_plugins/http_basic_authentication.py +0 -0
  297. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/rest/bottle_plugins/jwt_authentication.py +0 -0
  298. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/rest/bottle_plugins/return_handler.py +0 -0
  299. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/rest/bottle_routes.py +0 -0
  300. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/rest/controller/__init__.py +0 -0
  301. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/rest/controller/v2/__init__.py +0 -0
  302. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/rest/controller/v2/conan.py +0 -0
  303. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/rest/controller/v2/delete.py +0 -0
  304. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/rest/controller/v2/ping.py +0 -0
  305. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/rest/controller/v2/revisions.py +0 -0
  306. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/rest/controller/v2/search.py +0 -0
  307. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/rest/controller/v2/users.py +0 -0
  308. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/rest/server.py +0 -0
  309. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/revision_list.py +0 -0
  310. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/server_launcher.py +0 -0
  311. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/service/__init__.py +0 -0
  312. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/service/authorize.py +0 -0
  313. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/service/mime.py +0 -0
  314. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/service/user_service.py +0 -0
  315. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/service/v2/__init__.py +0 -0
  316. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/service/v2/search.py +0 -0
  317. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/service/v2/service_v2.py +0 -0
  318. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/store/__init__.py +0 -0
  319. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/store/disk_adapter.py +0 -0
  320. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/store/server_store.py +0 -0
  321. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/utils/__init__.py +0 -0
  322. {conan-server-2.0.16 → conan-server-2.0.17}/conans/server/utils/files.py +0 -0
  323. {conan-server-2.0.16 → conan-server-2.0.17}/conans/test/__init__.py +0 -0
  324. {conan-server-2.0.16 → conan-server-2.0.17}/conans/test/utils/__init__.py +0 -0
  325. {conan-server-2.0.16 → conan-server-2.0.17}/conans/test/utils/artifactory.py +0 -0
  326. {conan-server-2.0.16 → conan-server-2.0.17}/conans/test/utils/file_server.py +0 -0
  327. {conan-server-2.0.16 → conan-server-2.0.17}/conans/test/utils/mocks.py +0 -0
  328. {conan-server-2.0.16 → conan-server-2.0.17}/conans/test/utils/profiles.py +0 -0
  329. {conan-server-2.0.16 → conan-server-2.0.17}/conans/test/utils/scm.py +0 -0
  330. {conan-server-2.0.16 → conan-server-2.0.17}/conans/test/utils/server_launcher.py +0 -0
  331. {conan-server-2.0.16 → conan-server-2.0.17}/conans/test/utils/test_files.py +0 -0
  332. {conan-server-2.0.16 → conan-server-2.0.17}/conans/test/utils/tools.py +0 -0
  333. {conan-server-2.0.16 → conan-server-2.0.17}/conans/util/__init__.py +0 -0
  334. {conan-server-2.0.16 → conan-server-2.0.17}/conans/util/config_parser.py +0 -0
  335. {conan-server-2.0.16 → conan-server-2.0.17}/conans/util/dates.py +0 -0
  336. {conan-server-2.0.16 → conan-server-2.0.17}/conans/util/encrypt.py +0 -0
  337. {conan-server-2.0.16 → conan-server-2.0.17}/conans/util/env.py +0 -0
  338. {conan-server-2.0.16 → conan-server-2.0.17}/conans/util/files.py +0 -0
  339. {conan-server-2.0.16 → conan-server-2.0.17}/conans/util/locks.py +0 -0
  340. {conan-server-2.0.16 → conan-server-2.0.17}/conans/util/runners.py +0 -0
  341. {conan-server-2.0.16 → conan-server-2.0.17}/conans/util/sha.py +0 -0
  342. {conan-server-2.0.16 → conan-server-2.0.17}/conans/util/thread.py +0 -0
  343. {conan-server-2.0.16 → conan-server-2.0.17}/conans/util/windows.py +0 -0
  344. {conan-server-2.0.16 → conan-server-2.0.17}/pyproject.toml +0 -0
  345. {conan-server-2.0.16 → conan-server-2.0.17}/setup.cfg +0 -0
  346. {conan-server-2.0.16 → conan-server-2.0.17}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: conan-server
3
- Version: 2.0.16
3
+ Version: 2.0.17
4
4
  Summary: Conan Server of Conan C/C++ package manager
5
5
  Home-page: https://conan.io
6
6
  Author: JFrog LTD
@@ -13,7 +13,7 @@ from conans.errors import ConanException
13
13
  from conans.model.package_ref import PkgReference
14
14
  from conans.model.recipe_ref import RecipeReference
15
15
  from conans.util.dates import revision_timestamp_now
16
- from conans.util.files import rmdir, gzopen_without_timestamps
16
+ from conans.util.files import rmdir, gzopen_without_timestamps, mkdir
17
17
 
18
18
 
19
19
  class CacheAPI:
@@ -113,6 +113,7 @@ class CacheAPI:
113
113
  cache_folder = self.conan_api.cache_folder
114
114
  app = ConanApp(cache_folder, self.conan_api.config.global_conf)
115
115
  out = ConanOutput()
116
+ mkdir(os.path.dirname(tgz_path))
116
117
  name = os.path.basename(tgz_path)
117
118
  with open(tgz_path, "wb") as tgz_handle:
118
119
  tgz = gzopen_without_timestamps(name, mode="w", fileobj=tgz_handle)
@@ -47,35 +47,43 @@ class Cli:
47
47
  for k, v in self._commands.items(): # Fill groups data too
48
48
  self._groups[v.group].append(k)
49
49
 
50
- custom_commands_path = HomePaths(self._conan_api.cache_folder).custom_commands_path
51
- if not os.path.isdir(custom_commands_path):
52
- return
50
+ conan_custom_commands_path = HomePaths(self._conan_api.cache_folder).custom_commands_path
51
+ # Important! This variable should be only used for testing/debugging purpose
52
+ developer_custom_commands_path = os.getenv("_CONAN_INTERNAL_CUSTOM_COMMANDS_PATH")
53
+ # Notice that in case of having same custom commands file names, the developer one has
54
+ # preference over the Conan default location because of the sys.path.append(xxxx)
55
+ custom_commands_folders = [developer_custom_commands_path, conan_custom_commands_path] \
56
+ if developer_custom_commands_path else [conan_custom_commands_path]
57
+
58
+ for custom_commands_path in custom_commands_folders:
59
+ if not os.path.isdir(custom_commands_path):
60
+ return
53
61
 
54
- sys.path.append(custom_commands_path)
55
- for module in pkgutil.iter_modules([custom_commands_path]):
56
- module_name = module[1]
57
- if module_name.startswith("cmd_"):
58
- try:
59
- self._add_command(module_name, module_name.replace("cmd_", ""))
60
- except Exception as e:
61
- ConanOutput().error(f"Error loading custom command '{module_name}.py': {e}",
62
- error_type="exception")
63
- # layers
64
- for folder in os.listdir(custom_commands_path):
65
- layer_folder = os.path.join(custom_commands_path, folder)
66
- sys.path.append(layer_folder)
67
- if not os.path.isdir(layer_folder):
68
- continue
69
- for module in pkgutil.iter_modules([layer_folder]):
62
+ sys.path.append(custom_commands_path)
63
+ for module in pkgutil.iter_modules([custom_commands_path]):
70
64
  module_name = module[1]
71
65
  if module_name.startswith("cmd_"):
72
- module_path = f"{folder}.{module_name}"
73
66
  try:
74
- self._add_command(module_path, module_name.replace("cmd_", ""),
75
- package=folder)
67
+ self._add_command(module_name, module_name.replace("cmd_", ""))
76
68
  except Exception as e:
77
- ConanOutput().error(f"Error loading custom command {module_path}: {e}",
69
+ ConanOutput().error(f"Error loading custom command '{module_name}.py': {e}",
78
70
  error_type="exception")
71
+ # layers
72
+ for folder in os.listdir(custom_commands_path):
73
+ layer_folder = os.path.join(custom_commands_path, folder)
74
+ sys.path.append(layer_folder)
75
+ if not os.path.isdir(layer_folder):
76
+ continue
77
+ for module in pkgutil.iter_modules([layer_folder]):
78
+ module_name = module[1]
79
+ if module_name.startswith("cmd_"):
80
+ module_path = f"{folder}.{module_name}"
81
+ try:
82
+ self._add_command(module_path, module_name.replace("cmd_", ""),
83
+ package=folder)
84
+ except Exception as e:
85
+ ConanOutput().error(f"Error loading custom command {module_path}: {e}",
86
+ error_type="exception")
79
87
 
80
88
  def _add_command(self, import_path, method_name, package=None):
81
89
  try:
@@ -84,7 +92,9 @@ class Cli:
84
92
  if command_wrapper.doc:
85
93
  name = f"{package}:{command_wrapper.name}" if package else command_wrapper.name
86
94
  self._commands[name] = command_wrapper
87
- self._groups[command_wrapper.group].append(name)
95
+ # Avoiding duplicated command help messages
96
+ if name not in self._groups[command_wrapper.group]:
97
+ self._groups[command_wrapper.group].append(name)
88
98
  for name, value in getmembers(imported_module):
89
99
  if isinstance(value, ConanSubCommand):
90
100
  if name.startswith("{}_".format(method_name)):
@@ -109,7 +109,7 @@ def prepare_pkglist_compact(pkglist):
109
109
  new_rrev = f"{ref}#{rrev}"
110
110
  timestamp = rrev_info.pop("timestamp", None)
111
111
  if timestamp:
112
- new_rrev += f" ({timestamp_to_str(timestamp)})"
112
+ new_rrev += f"%{timestamp} ({timestamp_to_str(timestamp)})"
113
113
 
114
114
  packages = rrev_info.pop("packages", None)
115
115
  if packages:
@@ -122,7 +122,7 @@ def _get_e2k_architecture():
122
122
  }.get(platform.processor())
123
123
 
124
124
 
125
- def detect_libcxx(compiler, version):
125
+ def detect_libcxx(compiler, version, compiler_exe=None):
126
126
  assert isinstance(version, Version)
127
127
 
128
128
  def _detect_gcc_libcxx(version_, executable):
@@ -166,7 +166,7 @@ def detect_libcxx(compiler, version):
166
166
  if compiler == "apple-clang":
167
167
  return "libc++"
168
168
  elif compiler == "gcc":
169
- libcxx = _detect_gcc_libcxx(version, "g++")
169
+ libcxx = _detect_gcc_libcxx(version, compiler_exe or "g++")
170
170
  return libcxx
171
171
  elif compiler == "cc":
172
172
  if platform.system() == "SunOS":
@@ -179,7 +179,7 @@ def detect_libcxx(compiler, version):
179
179
  elif platform.system() == "Windows":
180
180
  return # by default windows will assume LLVM/Clang with VS backend
181
181
  else: # Linux
182
- libcxx = _detect_gcc_libcxx(version, "clang++")
182
+ libcxx = _detect_gcc_libcxx(version, compiler_exe or "clang++")
183
183
  return libcxx
184
184
  elif compiler == "sun-cc":
185
185
  return "libCstd"
@@ -243,17 +243,17 @@ def detect_cppstd(compiler, compiler_version):
243
243
  return cppstd
244
244
 
245
245
 
246
- def detect_compiler():
247
- """
248
- find the default compiler on the build machine
249
- search order and priority:
250
- 1. CC and CXX environment variables are always top priority
251
- 2. Visual Studio detection (Windows only) via vswhere or registry or environment variables
252
- 3. Apple Clang (Mac only)
253
- 4. cc executable
254
- 5. gcc executable
255
- 6. clang executable
246
+ def detect_default_compiler():
256
247
  """
248
+ find the default compiler on the build machine
249
+ search order and priority:
250
+ 1. CC and CXX environment variables are always top priority
251
+ 2. Visual Studio detection (Windows only) via vswhere or registry or environment variables
252
+ 3. Apple Clang (Mac only)
253
+ 4. cc executable
254
+ 5. gcc executable
255
+ 6. clang executable
256
+ """
257
257
  output = ConanOutput(scope="detect_api")
258
258
  cc = os.environ.get("CC", "")
259
259
  cxx = os.environ.get("CXX", "")
@@ -263,11 +263,11 @@ def detect_compiler():
263
263
  if "clang" in command.lower():
264
264
  return _clang_compiler(command)
265
265
  if "gcc" in command or "g++" in command or "c++" in command:
266
- gcc, gcc_version = _gcc_compiler(command)
266
+ gcc, gcc_version, compiler_exe = _gcc_compiler(command)
267
267
  if platform.system() == "Darwin" and gcc is None:
268
268
  output.error("%s detected as a frontend using apple-clang. "
269
269
  "Compiler not supported" % command)
270
- return gcc, gcc_version
270
+ return gcc, gcc_version, compiler_exe
271
271
  if platform.system() == "SunOS" and command.lower() == "cc":
272
272
  return _sun_cc_compiler(command)
273
273
  if (platform.system() == "Windows" and command.rstrip('"').endswith(("cl", "cl.exe"))
@@ -276,28 +276,28 @@ def detect_compiler():
276
276
 
277
277
  # I am not able to find its version
278
278
  output.error("Not able to automatically detect '%s' version" % command)
279
- return None, None
279
+ return None, None, None
280
280
 
281
281
  if platform.system() == "Windows":
282
282
  version = _detect_vs_ide_version()
283
283
  version = {"17": "193", "16": "192", "15": "191"}.get(str(version)) # Map to compiler
284
284
  if version:
285
- return 'msvc', Version(version)
285
+ return 'msvc', Version(version), None
286
286
 
287
287
  if platform.system() == "SunOS":
288
- sun_cc, sun_cc_version = _sun_cc_compiler()
288
+ sun_cc, sun_cc_version, compiler_exe = _sun_cc_compiler()
289
289
  if sun_cc:
290
- return sun_cc, sun_cc_version
290
+ return sun_cc, sun_cc_version, compiler_exe
291
291
 
292
292
  if platform.system() in ["Darwin", "FreeBSD"]:
293
- clang, clang_version = _clang_compiler() # prioritize clang
293
+ clang, clang_version, compiler_exe = _clang_compiler() # prioritize clang
294
294
  if clang:
295
- return clang, clang_version
295
+ return clang, clang_version, compiler_exe
296
296
  return
297
297
  else:
298
- gcc, gcc_version = _gcc_compiler()
298
+ gcc, gcc_version, compiler_exe = _gcc_compiler()
299
299
  if gcc:
300
- return gcc, gcc_version
300
+ return gcc, gcc_version, compiler_exe
301
301
  return _clang_compiler()
302
302
 
303
303
 
@@ -326,11 +326,11 @@ def _gcc_compiler(compiler_exe="gcc"):
326
326
  _, out = detect_runner("%s --version" % compiler_exe)
327
327
  out = out.lower()
328
328
  if "clang" in out:
329
- return None, None
329
+ return None, None, None
330
330
 
331
331
  ret, out = detect_runner('%s -dumpversion' % compiler_exe)
332
332
  if ret != 0:
333
- return None, None
333
+ return None, None, None
334
334
  compiler = "gcc"
335
335
  installed_version = re.search(r"([0-9]+(\.[0-9])?)", out).group()
336
336
  # Since GCC 7.1, -dumpversion return the major version number
@@ -338,9 +338,15 @@ def _gcc_compiler(compiler_exe="gcc"):
338
338
  # number ("7.1.1").
339
339
  if installed_version:
340
340
  ConanOutput(scope="detect_api").info("Found %s %s" % (compiler, installed_version))
341
- return compiler, Version(installed_version)
341
+ return compiler, Version(installed_version), compiler_exe
342
342
  except (Exception,): # to disable broad-except
343
- return None, None
343
+ return None, None, None
344
+
345
+
346
+ def detect_compiler():
347
+ ConanOutput(scope="detect_api").warning("detect_compiler() is deprecated, use detect_default_compiler()", warn_tag="deprecated")
348
+ compiler, version, _ = detect_default_compiler()
349
+ return compiler, version
344
350
 
345
351
 
346
352
  def _sun_cc_compiler(compiler_exe="cc"):
@@ -354,28 +360,28 @@ def _sun_cc_compiler(compiler_exe="cc"):
354
360
  installed_version = re.search(r"([0-9]+\.[0-9]+)", out).group()
355
361
  if installed_version:
356
362
  ConanOutput(scope="detect_api").info("Found %s %s" % (compiler, installed_version))
357
- return compiler, Version(installed_version)
363
+ return compiler, Version(installed_version), compiler_exe
358
364
  except (Exception,): # to disable broad-except
359
- return None, None
365
+ return None, None, None
360
366
 
361
367
 
362
368
  def _clang_compiler(compiler_exe="clang"):
363
369
  try:
364
370
  ret, out = detect_runner('%s --version' % compiler_exe)
365
371
  if ret != 0:
366
- return None, None
372
+ return None, None, None
367
373
  if "Apple" in out:
368
374
  compiler = "apple-clang"
369
375
  elif "clang version" in out:
370
376
  compiler = "clang"
371
377
  else:
372
- return None, None
378
+ return None, None, None
373
379
  installed_version = re.search(r"([0-9]+\.[0-9])", out).group()
374
380
  if installed_version:
375
381
  ConanOutput(scope="detect_api").info("Found %s %s" % (compiler, installed_version))
376
- return compiler, Version(installed_version)
382
+ return compiler, Version(installed_version), compiler_exe
377
383
  except (Exception,): # to disable broad-except
378
- return None, None
384
+ return None, None, None
379
385
 
380
386
 
381
387
  def _msvc_cl_compiler(compiler_exe="cl"):
@@ -386,20 +392,20 @@ def _msvc_cl_compiler(compiler_exe="cl"):
386
392
  compiler_exe = compiler_exe.strip('"')
387
393
  ret, out = detect_runner(f'"{compiler_exe}" /?')
388
394
  if ret != 0:
389
- return None, None
395
+ return None, None, None
390
396
  first_line = out.splitlines()[0]
391
397
  if "Microsoft" not in first_line:
392
- return None, None
398
+ return None, None, None
393
399
  compiler = "msvc"
394
400
  version_regex = re.search(r"(?P<major>[0-9]+)\.(?P<minor>[0-9]+)\.([0-9]+)\.?([0-9]+)?",
395
401
  first_line)
396
402
  if not version_regex:
397
- return None, None
403
+ return None, None, None
398
404
  # 19.36.32535 -> 193
399
405
  version = f"{version_regex.group('major')}{version_regex.group('minor')[0]}"
400
- return compiler, Version(version)
406
+ return compiler, Version(version), compiler_exe
401
407
  except (Exception,): # to disable broad-except
402
- return None, None
408
+ return None, None, None
403
409
 
404
410
 
405
411
  def default_compiler_version(compiler, version):
@@ -826,7 +826,7 @@ class GenericSystemBlock(Block):
826
826
  cmake_sysroot = self._conanfile.conf.get("tools.build:sysroot")
827
827
  cmake_sysroot = cmake_sysroot.replace("\\", "/") if cmake_sysroot is not None else None
828
828
 
829
- result = self._get_winsdk_version(system_version, generator)
829
+ result = self._get_winsdk_version(system_version, generator_platform)
830
830
  system_version, winsdk_version, gen_platform_sdk_version = result
831
831
 
832
832
  return {"toolset": toolset,
@@ -286,7 +286,7 @@ class _PCGenerator:
286
286
  requires = self._get_cpp_info_requires_names(self._dep.cpp_info)
287
287
  # If we have found some component requires it would be enough
288
288
  if not requires:
289
- # If no requires were found, let's try to get all the direct dependencies,
289
+ # If no requires were found, let's try to get all the direct visible dependencies,
290
290
  # e.g., requires = "other_pkg/1.0"
291
291
  requires = [_get_package_name(req, self._build_context_suffix)
292
292
  for req in self._transitive_reqs.values()]
@@ -117,15 +117,16 @@ def _get_libs(dep, cpp_info=None) -> list:
117
117
  full_path = os.path.join(libdir, f)
118
118
  if not os.path.isfile(full_path): # Make sure that directories are excluded
119
119
  continue
120
+ name, ext = os.path.splitext(f)
120
121
  # Users may not name their libraries in a conventional way. For example, directly
121
- # use the basename of the lib file as lib name.
122
- if f in libs:
122
+ # use the basename of the lib file as lib name, e.g., cpp_info.libs = ["liblib1.a"]
123
+ # Issue related: https://github.com/conan-io/conan/issues/11331
124
+ if ext and f in libs: # let's ensure that it has any extension
123
125
  _save_lib_path(f, full_path)
124
126
  continue
125
- name, ext = os.path.splitext(f)
126
127
  if name not in libs and name.startswith("lib"):
127
128
  name = name[3:] # libpkg -> pkg
128
- # FIXME: Should it read a conf variable to know unexpected extensions?
129
+ # FIXME: Should it read a conf variable to know unexpected extensions?
129
130
  if (is_shared and ext in (".so", ".dylib", ".lib", ".dll")) or \
130
131
  (not is_shared and ext in (".a", ".lib")):
131
132
  if name in libs:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: conan-server
3
- Version: 2.0.16
3
+ Version: 2.0.17
4
4
  Summary: Conan Server of Conan C/C++ package manager
5
5
  Home-page: https://conan.io
6
6
  Author: JFrog LTD
@@ -2,4 +2,4 @@ CHECKSUM_DEPLOY = "checksum_deploy" # Only when v2
2
2
  REVISIONS = "revisions" # Only when enabled in config, not by default look at server_launcher.py
3
3
  OAUTH_TOKEN = "oauth_token"
4
4
 
5
- __version__ = '2.0.16'
5
+ __version__ = '2.0.17'
@@ -1,6 +1,6 @@
1
1
  from conan.api.output import ConanOutput
2
2
  from conan.internal.api.detect_api import detect_os, detect_arch, default_msvc_runtime, \
3
- detect_libcxx, detect_cppstd, detect_compiler, default_compiler_version
3
+ detect_libcxx, detect_cppstd, detect_default_compiler, default_compiler_version
4
4
 
5
5
 
6
6
  def detect_defaults_settings():
@@ -14,7 +14,7 @@ def detect_defaults_settings():
14
14
  arch = detect_arch()
15
15
  if arch:
16
16
  result.append(("arch", arch))
17
- compiler, version = detect_compiler()
17
+ compiler, version, compiler_exe = detect_default_compiler()
18
18
  if not compiler:
19
19
  result.append(("build_type", "Release"))
20
20
  ConanOutput().warning("No compiler was detected (one may not be needed)")
@@ -28,7 +28,7 @@ def detect_defaults_settings():
28
28
  result.append(("compiler.runtime", runtime))
29
29
  if runtime_version:
30
30
  result.append(("compiler.runtime_version", runtime_version))
31
- libcxx = detect_libcxx(compiler, version)
31
+ libcxx = detect_libcxx(compiler, version, compiler_exe)
32
32
  if libcxx:
33
33
  result.append(("compiler.libcxx", libcxx))
34
34
  cppstd = detect_cppstd(compiler, version)
@@ -1,6 +1,5 @@
1
1
  import copy
2
2
  import os
3
- import re
4
3
  from collections import deque
5
4
 
6
5
  from conans.client.conanfile.configure import run_configure_method
@@ -14,7 +13,6 @@ from conans.client.graph.provides import check_graph_provides
14
13
  from conans.errors import ConanException
15
14
  from conans.model.conan_file import ConanFile
16
15
  from conans.model.options import Options
17
- from conans.model.package_ref import PkgReference
18
16
  from conans.model.recipe_ref import RecipeReference, ref_matches
19
17
  from conans.model.requires import Requirement
20
18
 
@@ -280,11 +278,12 @@ class DepsGraphBuilder(object):
280
278
  tracking_ref = require_version.split(':', 1)
281
279
  ref = require.ref
282
280
  if len(tracking_ref) > 1:
283
- ref = RecipeReference.loads(str(node.ref))
281
+ ref = RecipeReference.loads(str(require.ref))
284
282
  ref.name = tracking_ref[1][:-1] # Remove the trailing >
285
283
  req = Requirement(ref, headers=True, libs=True, visible=True)
286
284
  transitive = node.transitive_deps.get(req)
287
- if transitive is None:
285
+ if transitive is None or transitive.require.ref.user != ref.user \
286
+ or transitive.require.ref.channel != ref.channel:
288
287
  raise ConanException(f"{node.ref} require '{ref}': didn't find a matching "
289
288
  "host dependency")
290
289
  require.ref.version = transitive.require.ref.version
@@ -58,11 +58,13 @@ class ClientMigrator(Migrator):
58
58
 
59
59
 
60
60
  def _migrate_pkg_db_lru(cache_folder, old_version):
61
- ConanOutput().warning(f"Upgrade cache from Conan version '{old_version}'")
62
- ConanOutput().warning("Running 2.0.14 Cache DB migration to add LRU column")
63
61
  config = ConfigAPI.load_config(cache_folder)
64
62
  storage = config.get("core.cache:storage_path") or os.path.join(cache_folder, "p")
65
63
  db_filename = os.path.join(storage, 'cache.sqlite3')
64
+ if not os.path.exists(db_filename):
65
+ return
66
+ ConanOutput().warning(f"Upgrade cache from Conan version '{old_version}'")
67
+ ConanOutput().warning("Running 2.0.14 Cache DB migration to add LRU column")
66
68
  connection = sqlite3.connect(db_filename, isolation_level=None,
67
69
  timeout=1, check_same_thread=False)
68
70
  try:
@@ -126,8 +126,14 @@ class ProfileLoader:
126
126
  "profile_name": file_path,
127
127
  "conan_version": conan_version,
128
128
  "detect_api": detect_api}
129
+
129
130
  rtemplate = Environment(loader=FileSystemLoader(base_path)).from_string(text)
130
- text = rtemplate.render(context)
131
+
132
+ try:
133
+ text = rtemplate.render(context)
134
+ except Exception as e:
135
+ raise ConanException(f"Error while rendering the profile template file '{profile_path}'. "
136
+ f"Check your Jinja2 syntax: {str(e)}")
131
137
 
132
138
  try:
133
139
  return self._recurse_load_profile(text, profile_path)
@@ -347,7 +347,7 @@ class Conf:
347
347
  """
348
348
  Returns a string with the format ``name=conf-value``
349
349
  """
350
- return "\n".join([v.dumps() for v in reversed(self._values.values())])
350
+ return "\n".join([v.dumps() for v in sorted(self._values.values(), key=lambda x: x._name)])
351
351
 
352
352
  def serialize(self):
353
353
  """
@@ -268,7 +268,7 @@ class Requirement:
268
268
  if require.build: # public!
269
269
  # TODO: To discuss if this way of conflicting build_requires is actually useful or not
270
270
  downstream_require = Requirement(require.ref, headers=False, libs=False, build=True,
271
- run=False, visible=True, direct=False)
271
+ run=False, visible=self.visible, direct=False)
272
272
  return downstream_require
273
273
 
274
274
  if self.build: # Build-requires
@@ -91,6 +91,9 @@ tools_locations = {
91
91
  "path": {'Windows': 'C:/cmake/cmake-3.23.1-win64-x64/bin',
92
92
  'Darwin': '/Users/jenkins/cmake/cmake-3.23.1/bin',
93
93
  'Linux': "/usr/share/cmake-3.23.5/bin"}
94
+ },
95
+ "3.28": {
96
+ "disabled": True # TODO: Still not in CI
94
97
  }
95
98
  },
96
99
  'ninja': {
File without changes
File without changes
File without changes