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.
- {conan-2.10.3/conan.egg-info → conan-2.11.0}/PKG-INFO +1 -1
- {conan-2.10.3 → conan-2.11.0}/conan/__init__.py +1 -1
- {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/download.py +3 -3
- {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/install.py +7 -10
- {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/list.py +7 -8
- {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/local.py +5 -11
- {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/remotes.py +11 -9
- {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/workspace.py +2 -1
- {conan-2.10.3 → conan-2.11.0}/conan/cli/cli.py +1 -1
- {conan-2.10.3 → conan-2.11.0}/conan/cli/printers/graph.py +4 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/local/editable.py +15 -1
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/profile/profile_loader.py +4 -1
- {conan-2.10.3 → conan-2.11.0}/conan/internal/conan_app.py +23 -11
- {conan-2.10.3 → conan-2.11.0}/conan/test/utils/tools.py +14 -26
- {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmakedeps/templates/macros.py +1 -2
- {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmakedeps2/target_configuration.py +2 -1
- {conan-2.10.3 → conan-2.11.0}/conan/tools/env/environment.py +26 -10
- {conan-2.10.3 → conan-2.11.0}/conan/tools/gnu/autotoolstoolchain.py +26 -13
- {conan-2.10.3 → conan-2.11.0}/conan/tools/google/bazeldeps.py +3 -1
- {conan-2.10.3 → conan-2.11.0}/conan/tools/meson/toolchain.py +1 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/microsoft/visual.py +22 -9
- {conan-2.10.3 → conan-2.11.0/conan.egg-info}/PKG-INFO +1 -1
- {conan-2.10.3 → conan-2.11.0}/conans/client/rest_client_local_recipe_index.py +17 -5
- {conan-2.10.3 → conan-2.11.0}/conans/client/subsystems.py +4 -5
- {conan-2.10.3 → conan-2.11.0}/conans/model/build_info.py +7 -6
- {conan-2.10.3 → conan-2.11.0}/conans/model/conf.py +2 -2
- {conan-2.10.3 → conan-2.11.0}/LICENSE.md +0 -0
- {conan-2.10.3 → conan-2.11.0}/MANIFEST.in +0 -0
- {conan-2.10.3 → conan-2.11.0}/README.md +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/api/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/api/conan_api.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/api/input.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/api/model.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/api/output.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/cache.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/command.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/config.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/export.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/graph.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/lockfile.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/new.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/profiles.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/remove.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/search.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/api/subapi/upload.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/args.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/command.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/build.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/cache.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/config.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/create.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/download.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/editable.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/export.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/export_pkg.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/graph.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/inspect.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/install.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/list.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/lock.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/new.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/pkglist.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/profile.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/remote.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/remove.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/search.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/source.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/test.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/upload.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/version.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/commands/workspace.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/exit_codes.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/formatters/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/formatters/graph/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/formatters/graph/build_order_html.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/formatters/graph/graph.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/formatters/graph/graph_info_text.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/formatters/graph/info_graph_dot.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/formatters/graph/info_graph_html.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/formatters/list/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/formatters/list/binary_html_table.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/formatters/list/list.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/formatters/list/search_table_html.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cli/printers/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cps/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/cps/cps.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/errors.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/config/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/config/config_installer.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/detect/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/detect/detect_api.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/detect/detect_vs.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/export.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/install/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/install/generators.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/list/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/list/query_parse.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/local/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/alias_new.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/autoools_exe.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/autotools_lib.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/basic.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/bazel_7_exe.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/bazel_7_lib.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/bazel_exe.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/bazel_lib.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/cmake_exe.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/cmake_lib.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/local_recipes_index.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/meson_exe.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/meson_lib.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/msbuild_exe.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/msbuild_lib.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/new/qbs_lib.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/profile/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/profile/detect.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/remotes/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/remotes/encrypt.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/remotes/localdb.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/api/uploader.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/cache/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/cache/cache.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/cache/conan_reference_layout.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/cache/db/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/cache/db/cache_database.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/cache/db/packages_table.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/cache/db/recipes_table.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/cache/db/table.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/cache/home_paths.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/cache/integrity_check.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/default_settings.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/deploy.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/errors.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/internal_tools.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/methods.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/paths.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/runner/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/runner/docker.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/runner/ssh.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/runner/wsl.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/internal/workspace.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/test/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/test/assets/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/test/assets/autotools.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/test/assets/cmake.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/test/assets/genconanfile.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/test/assets/pkg_cmake.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/test/assets/sources.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/test/assets/visual_project_files.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/test/utils/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/test/utils/artifactory.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/test/utils/env.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/test/utils/file_server.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/test/utils/mocks.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/test/utils/profiles.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/test/utils/scm.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/test/utils/server_launcher.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/test/utils/test_files.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/android/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/android/utils.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/apple/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/apple/apple.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/apple/xcodebuild.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/apple/xcodedeps.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/apple/xcodetoolchain.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/build/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/build/cppstd.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/build/cpu.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/build/cross_building.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/build/cstd.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/build/flags.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/build/stdcpp_library.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmake.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmakedeps/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmakedeps/cmakedeps.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmakedeps/templates/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmakedeps/templates/config.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmakedeps/templates/config_version.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmakedeps/templates/target_configuration.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmakedeps/templates/target_data.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmakedeps/templates/targets.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmakedeps2/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmakedeps2/cmakedeps.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmakedeps2/config.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmakedeps2/config_version.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/cmakedeps2/targets.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/layout.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/presets.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/toolchain/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/toolchain/blocks.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/toolchain/toolchain.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/cmake/utils.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/cps/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/cps/cps_deps.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/env/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/env/virtualbuildenv.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/env/virtualrunenv.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/files/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/files/conandata.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/files/copy_pattern.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/files/files.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/files/packager.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/files/patches.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/files/symlinks/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/files/symlinks/symlinks.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/gnu/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/gnu/autotools.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/gnu/autotoolsdeps.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/gnu/get_gnu_triplet.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/gnu/gnudeps_flags.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/gnu/gnutoolchain.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/gnu/makedeps.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/gnu/pkgconfig.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/gnu/pkgconfigdeps.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/google/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/google/bazel.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/google/layout.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/google/toolchain.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/intel/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/intel/intel_cc.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/layout/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/meson/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/meson/helpers.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/meson/meson.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/microsoft/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/microsoft/layout.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/microsoft/msbuild.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/microsoft/msbuilddeps.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/microsoft/nmakedeps.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/microsoft/nmaketoolchain.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/microsoft/subsystems.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/microsoft/toolchain.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/premake/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/premake/premake.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/premake/premakedeps.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/qbs/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/qbs/common.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/qbs/qbs.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/qbs/qbsdeps.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/qbs/qbsprofile.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/ros/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/ros/rosenv.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/scm/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/scm/git.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/scons/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/scons/sconsdeps.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/system/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan/tools/system/package_manager.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan.egg-info/SOURCES.txt +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan.egg-info/dependency_links.txt +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan.egg-info/entry_points.txt +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan.egg-info/requires.txt +0 -0
- {conan-2.10.3 → conan-2.11.0}/conan.egg-info/top_level.txt +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/downloaders/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/downloaders/caching_file_downloader.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/downloaders/download_cache.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/downloaders/file_downloader.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/graph/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/graph/build_mode.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/graph/compatibility.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/graph/compute_pid.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/graph/graph.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/graph/graph_binaries.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/graph/graph_builder.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/graph/graph_error.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/graph/install_graph.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/graph/profile_node_definer.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/graph/provides.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/graph/proxy.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/graph/python_requires.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/graph/range_resolver.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/hook_manager.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/installer.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/loader.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/loader_txt.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/migrations.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/pkg_sign.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/remote_manager.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/rest/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/rest/auth_manager.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/rest/client_routes.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/rest/conan_requester.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/rest/file_uploader.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/rest/remote_credentials.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/rest/rest_client.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/rest/rest_client_v2.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/client/source.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/conan.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/conan_server.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/migrations.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/model/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/model/conan_file.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/model/conanfile_interface.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/model/dependencies.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/model/graph_lock.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/model/info.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/model/layout.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/model/manifest.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/model/options.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/model/package_ref.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/model/pkg_type.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/model/profile.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/model/recipe_ref.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/model/requires.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/model/rest_routes.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/model/settings.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/model/version.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/model/version_range.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/requirements.txt +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/requirements_dev.txt +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/requirements_runner.txt +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/requirements_server.txt +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/util/__init__.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/util/config_parser.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/util/dates.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/util/files.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/util/locks.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/util/runners.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/conans/util/thread.py +0 -0
- {conan-2.10.3 → conan-2.11.0}/pyproject.toml +0 -0
- {conan-2.10.3 → conan-2.11.0}/setup.cfg +0 -0
- {conan-2.10.3 → conan-2.11.0}/setup.py +0 -0
|
@@ -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
|
|
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 =
|
|
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 =
|
|
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
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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.
|
|
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.
|
|
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 =
|
|
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
|
-
|
|
72
|
-
return editable_packages.remove(path, requires)
|
|
67
|
+
return self.editable_packages.remove(path, requires)
|
|
73
68
|
|
|
74
69
|
def editable_list(self):
|
|
75
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
146
|
+
localdb = LocalDB(self._home_folder)
|
|
146
147
|
for remote in removed:
|
|
147
|
-
remove_local_recipes_index_remote(self.
|
|
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.
|
|
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.
|
|
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.
|
|
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, _ =
|
|
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, _ =
|
|
253
|
+
user, token, _ = localdb.get_login(remote.url)
|
|
252
254
|
return user
|
|
253
255
|
|
|
254
256
|
|
|
@@ -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
|
-
|
|
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
|
|
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
|
-
|
|
53
|
-
auth_manager = ConanApiAuthManager(self.requester, cache_folder,
|
|
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
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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.
|
|
461
|
+
save(self.paths.settings_path, "os: [Linux, Windows]")
|
|
460
462
|
else:
|
|
461
463
|
text = default_profiles[platform.system()]
|
|
462
|
-
save(self.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
499
|
+
remotes.append(Remote(name, server.repo_api_url))
|
|
513
500
|
elif isinstance(server, TestServer):
|
|
514
|
-
|
|
501
|
+
remotes.append(Remote(name, server.fake_url))
|
|
515
502
|
else:
|
|
516
|
-
|
|
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
|
-
|
|
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(
|
|
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.
|
|
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('
|
|
58
|
-
cmd = cmd.replace('"', "'
|
|
59
|
-
return '{} &&
|
|
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
|
-
|
|
67
|
-
|
|
68
|
-
cmd
|
|
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
|
|
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
|
-
|
|
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
|