conan-server 2.3.0__tar.gz → 2.3.1__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-server-2.3.0/conan_server.egg-info → conan-server-2.3.1}/PKG-INFO +1 -1
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/api/subapi/local.py +4 -3
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/commands/export_pkg.py +2 -1
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/api/detect_api.py +9 -4
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/runner/docker.py +2 -2
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/cmake/presets.py +17 -13
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/cmake/toolchain/toolchain.py +2 -1
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/microsoft/visual.py +5 -2
- {conan-server-2.3.0 → conan-server-2.3.1/conan_server.egg-info}/PKG-INFO +1 -1
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/__init__.py +1 -1
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/conf/__init__.py +2 -2
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/conf/detect_vs.py +1 -1
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/graph/compatibility.py +29 -12
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/graph/graph.py +9 -2
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/graph/graph_binaries.py +1 -1
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/graph/graph_builder.py +9 -3
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/graph/install_graph.py +1 -1
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/model/conf.py +1 -1
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/model/graph_lock.py +13 -8
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/model/recipe_ref.py +5 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/model/requires.py +3 -10
- {conan-server-2.3.0 → conan-server-2.3.1}/LICENSE.md +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/MANIFEST.in +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/README.md +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/api/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/api/conan_api.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/api/model.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/api/output.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/api/subapi/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/api/subapi/cache.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/api/subapi/command.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/api/subapi/config.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/api/subapi/download.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/api/subapi/export.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/api/subapi/graph.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/api/subapi/install.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/api/subapi/list.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/api/subapi/lockfile.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/api/subapi/new.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/api/subapi/profiles.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/api/subapi/remotes.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/api/subapi/remove.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/api/subapi/search.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/api/subapi/upload.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/args.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/cli.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/command.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/commands/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/commands/build.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/commands/cache.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/commands/config.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/commands/create.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/commands/download.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/commands/editable.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/commands/export.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/commands/graph.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/commands/inspect.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/commands/install.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/commands/list.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/commands/lock.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/commands/new.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/commands/pkglist.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/commands/profile.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/commands/remote.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/commands/remove.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/commands/search.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/commands/source.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/commands/test.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/commands/upload.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/commands/version.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/exit_codes.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/formatters/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/formatters/graph/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/formatters/graph/graph.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/formatters/graph/graph_info_text.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/formatters/graph/info_graph_dot.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/formatters/graph/info_graph_html.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/formatters/list/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/formatters/list/binary_html_table.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/formatters/list/list.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/formatters/list/search_table_html.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/printers/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/cli/printers/graph.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/errors.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/api/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/api/new/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/api/new/alias_new.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/api/new/autoools_exe.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/api/new/autotools_lib.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/api/new/basic.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/api/new/bazel_exe.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/api/new/bazel_lib.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/api/new/cmake_exe.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/api/new/cmake_lib.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/api/new/local_recipes_index.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/api/new/meson_exe.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/api/new/meson_lib.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/api/new/msbuild_exe.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/api/new/msbuild_lib.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/cache/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/cache/cache.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/cache/conan_reference_layout.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/cache/db/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/cache/db/cache_database.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/cache/db/packages_table.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/cache/db/recipes_table.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/cache/db/table.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/cache/home_paths.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/conan_app.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/deploy.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/integrity_check.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/internal_tools.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/runner/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/runner/ssh.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/runner/wsl.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/internal/upload_metadata.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/android/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/android/utils.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/apple/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/apple/apple.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/apple/xcodebuild.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/apple/xcodedeps.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/apple/xcodetoolchain.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/build/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/build/cppstd.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/build/cpu.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/build/cross_building.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/build/flags.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/build/stdcpp_library.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/cmake/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/cmake/cmake.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/cmake/cmakedeps/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/cmake/cmakedeps/cmakedeps.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/cmake/cmakedeps/templates/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/cmake/cmakedeps/templates/config.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/cmake/cmakedeps/templates/config_version.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/cmake/cmakedeps/templates/macros.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/cmake/cmakedeps/templates/target_configuration.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/cmake/cmakedeps/templates/target_data.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/cmake/cmakedeps/templates/targets.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/cmake/layout.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/cmake/toolchain/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/cmake/toolchain/blocks.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/cmake/utils.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/env/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/env/environment.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/env/virtualbuildenv.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/env/virtualrunenv.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/files/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/files/conandata.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/files/copy_pattern.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/files/files.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/files/packager.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/files/patches.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/files/symlinks/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/files/symlinks/symlinks.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/gnu/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/gnu/autotools.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/gnu/autotoolsdeps.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/gnu/autotoolstoolchain.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/gnu/get_gnu_triplet.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/gnu/gnudeps_flags.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/gnu/gnutoolchain.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/gnu/makedeps.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/gnu/pkgconfig.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/gnu/pkgconfigdeps.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/google/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/google/bazel.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/google/bazeldeps.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/google/layout.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/google/toolchain.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/intel/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/intel/intel_cc.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/layout/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/meson/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/meson/helpers.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/meson/meson.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/meson/toolchain.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/microsoft/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/microsoft/layout.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/microsoft/msbuild.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/microsoft/msbuilddeps.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/microsoft/nmakedeps.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/microsoft/nmaketoolchain.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/microsoft/subsystems.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/microsoft/toolchain.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/premake/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/premake/premake.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/premake/premakedeps.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/qbs/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/qbs/qbs.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/qbs/qbsprofile.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/scm/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/scm/git.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/scons/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/scons/sconsdeps.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/system/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan/tools/system/package_manager.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan_server.egg-info/SOURCES.txt +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan_server.egg-info/dependency_links.txt +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan_server.egg-info/entry_points.txt +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan_server.egg-info/requires.txt +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conan_server.egg-info/top_level.txt +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/cache/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/cache/cache.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/cache/editable.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/cmd/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/cmd/export.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/cmd/uploader.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/conanfile/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/conanfile/build.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/conanfile/configure.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/conanfile/implementations.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/conanfile/package.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/conf/config_installer.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/conf/detect.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/conf/required_version.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/downloaders/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/downloaders/caching_file_downloader.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/downloaders/download_cache.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/downloaders/file_downloader.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/generators/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/graph/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/graph/build_mode.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/graph/compute_pid.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/graph/graph_error.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/graph/profile_node_definer.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/graph/provides.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/graph/proxy.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/graph/python_requires.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/graph/range_resolver.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/hook_manager.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/installer.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/loader.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/loader_txt.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/migrations.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/pkg_sign.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/profile_loader.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/remote_manager.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/rest/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/rest/auth_manager.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/rest/client_routes.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/rest/conan_requester.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/rest/file_uploader.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/rest/remote_credentials.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/rest/rest_client.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/rest/rest_client_common.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/rest/rest_client_v2.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/rest_client_local_recipe_index.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/source.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/store/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/store/localdb.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/subsystems.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/client/userio.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/conan.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/conan_server.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/errors.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/migrations.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/model/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/model/build_info.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/model/conan_file.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/model/conanfile_interface.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/model/dependencies.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/model/info.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/model/layout.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/model/manifest.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/model/options.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/model/package_ref.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/model/pkg_type.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/model/profile.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/model/rest_routes.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/model/settings.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/model/version.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/model/version_range.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/paths/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/requirements.txt +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/requirements_dev.txt +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/requirements_runner.txt +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/requirements_server.txt +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/search/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/search/query_parse.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/search/search.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/conf/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/conf/default_server_conf.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/crypto/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/crypto/jwt/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/crypto/jwt/jwt_credentials_manager.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/crypto/jwt/jwt_manager.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/launcher.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/migrate.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/migrations.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/plugin_loader.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/rest/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/rest/api_v2.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/rest/bottle_plugins/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/rest/bottle_plugins/authorization_header.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/rest/bottle_plugins/http_basic_authentication.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/rest/bottle_plugins/jwt_authentication.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/rest/bottle_plugins/return_handler.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/rest/bottle_routes.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/rest/controller/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/rest/controller/v2/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/rest/controller/v2/conan.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/rest/controller/v2/delete.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/rest/controller/v2/ping.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/rest/controller/v2/revisions.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/rest/controller/v2/search.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/rest/controller/v2/users.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/rest/server.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/revision_list.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/server_launcher.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/service/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/service/authorize.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/service/mime.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/service/user_service.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/service/v2/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/service/v2/search.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/service/v2/service_v2.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/store/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/store/disk_adapter.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/store/server_store.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/utils/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/server/utils/files.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/test/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/test/assets/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/test/assets/autotools.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/test/assets/cmake.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/test/assets/genconanfile.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/test/assets/pkg_cmake.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/test/assets/sources.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/test/assets/visual_project_files.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/test/conftest.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/test/utils/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/test/utils/artifactory.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/test/utils/file_server.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/test/utils/mocks.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/test/utils/profiles.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/test/utils/scm.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/test/utils/server_launcher.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/test/utils/test_files.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/test/utils/tools.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/util/__init__.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/util/config_parser.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/util/dates.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/util/encrypt.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/util/env.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/util/files.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/util/locks.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/util/runners.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/util/sha.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/util/thread.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/conans/util/windows.py +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/pyproject.toml +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/setup.cfg +0 -0
- {conan-server-2.3.0 → conan-server-2.3.1}/setup.py +0 -0
|
@@ -111,9 +111,10 @@ class LocalAPI:
|
|
|
111
111
|
with chdir(conanfile.build_folder):
|
|
112
112
|
conanfile.test()
|
|
113
113
|
|
|
114
|
-
def inspect(self, conanfile_path, remotes, lockfile
|
|
114
|
+
def inspect(self, conanfile_path, remotes, lockfile, name=None, version=None, user=None,
|
|
115
|
+
channel=None):
|
|
115
116
|
app = ConanApp(self._conan_api)
|
|
116
|
-
conanfile = app.loader.load_named(conanfile_path, name=
|
|
117
|
-
|
|
117
|
+
conanfile = app.loader.load_named(conanfile_path, name=name, version=version, user=user,
|
|
118
|
+
channel=channel, remotes=remotes, graph_lock=lockfile)
|
|
118
119
|
return conanfile
|
|
119
120
|
|
|
@@ -46,7 +46,8 @@ def export_pkg(conan_api, parser, *args):
|
|
|
46
46
|
profile_host, profile_build = conan_api.profiles.get_profiles_from_args(args)
|
|
47
47
|
remotes = conan_api.remotes.list(args.remote) if not args.no_remote else []
|
|
48
48
|
|
|
49
|
-
conanfile = conan_api.local.inspect(path, remotes, lockfile
|
|
49
|
+
conanfile = conan_api.local.inspect(path, remotes, lockfile, name=args.name,
|
|
50
|
+
version=args.version, user=args.user, channel=args.channel)
|
|
50
51
|
# The package_type is not fully processed at export
|
|
51
52
|
if conanfile.package_type == "python-require":
|
|
52
53
|
raise ConanException("export-pkg can only be used for binaries, not for 'python-require'")
|
|
@@ -384,9 +384,14 @@ def detect_default_compiler():
|
|
|
384
384
|
return None, None, None
|
|
385
385
|
|
|
386
386
|
if platform.system() == "Windows":
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
387
|
+
ide_version = _detect_vs_ide_version()
|
|
388
|
+
version = {"17": "193", "16": "192", "15": "191"}.get(str(ide_version)) # Map to compiler
|
|
389
|
+
if ide_version == "17":
|
|
390
|
+
update = detect_msvc_update(version) # FIXME weird passing here the 193 compiler version
|
|
391
|
+
if update and int(update) >= 10:
|
|
392
|
+
version = "194"
|
|
393
|
+
if version:
|
|
394
|
+
return 'msvc', Version(version), None
|
|
390
395
|
|
|
391
396
|
if platform.system() == "SunOS":
|
|
392
397
|
sun_cc, sun_cc_version, compiler_exe = detect_suncc_compiler()
|
|
@@ -409,7 +414,7 @@ def detect_default_compiler():
|
|
|
409
414
|
|
|
410
415
|
|
|
411
416
|
def default_msvc_ide_version(version):
|
|
412
|
-
version = {"193": "17", "192": "16", "191": "15"}.get(str(version))
|
|
417
|
+
version = {"194": "17", "193": "17", "192": "16", "191": "15"}.get(str(version))
|
|
413
418
|
if version:
|
|
414
419
|
return Version(version)
|
|
415
420
|
|
|
@@ -90,7 +90,7 @@ class DockerRunner:
|
|
|
90
90
|
profile_list = set(self.args.profile_build + self.args.profile_host)
|
|
91
91
|
else:
|
|
92
92
|
profile_list = self.args.profile_host or self.args.profile_build
|
|
93
|
-
|
|
93
|
+
|
|
94
94
|
# Update the profile paths
|
|
95
95
|
for i, raw_arg in enumerate(raw_args):
|
|
96
96
|
for i, raw_profile in enumerate(profile_list):
|
|
@@ -111,7 +111,7 @@ class DockerRunner:
|
|
|
111
111
|
if not (self.dockerfile or self.image):
|
|
112
112
|
raise ConanException("'dockerfile' or docker image name is needed")
|
|
113
113
|
self.image = self.image or 'conan-runner-default'
|
|
114
|
-
self.name = self.configfile.
|
|
114
|
+
self.name = self.configfile.run.name or f'conan-runner-{host_profile.runner.get("suffix", "docker")}'
|
|
115
115
|
self.remove = str(host_profile.runner.get('remove', 'false')).lower() == 'true'
|
|
116
116
|
self.cache = str(host_profile.runner.get('cache', 'clean'))
|
|
117
117
|
self.container = None
|
|
@@ -16,11 +16,12 @@ from conans.util.files import save, load
|
|
|
16
16
|
|
|
17
17
|
def write_cmake_presets(conanfile, toolchain_file, generator, cache_variables,
|
|
18
18
|
user_presets_path=None, preset_prefix=None, buildenv=None, runenv=None,
|
|
19
|
-
cmake_executable=None):
|
|
19
|
+
cmake_executable=None, absolute_paths=None):
|
|
20
20
|
preset_path, preset_data = _CMakePresets.generate(conanfile, toolchain_file, generator,
|
|
21
21
|
cache_variables, preset_prefix, buildenv, runenv,
|
|
22
|
-
cmake_executable)
|
|
23
|
-
_IncludingPresets.generate(conanfile, preset_path, user_presets_path, preset_prefix, preset_data
|
|
22
|
+
cmake_executable, absolute_paths)
|
|
23
|
+
_IncludingPresets.generate(conanfile, preset_path, user_presets_path, preset_prefix, preset_data,
|
|
24
|
+
absolute_paths)
|
|
24
25
|
|
|
25
26
|
|
|
26
27
|
class _CMakePresets:
|
|
@@ -28,12 +29,13 @@ class _CMakePresets:
|
|
|
28
29
|
"""
|
|
29
30
|
@staticmethod
|
|
30
31
|
def generate(conanfile, toolchain_file, generator, cache_variables, preset_prefix, buildenv, runenv,
|
|
31
|
-
cmake_executable):
|
|
32
|
+
cmake_executable, absolute_paths):
|
|
32
33
|
toolchain_file = os.path.abspath(os.path.join(conanfile.generators_folder, toolchain_file))
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
if not absolute_paths:
|
|
35
|
+
try: # Make it relative to the build dir if possible
|
|
36
|
+
toolchain_file = os.path.relpath(toolchain_file, conanfile.build_folder)
|
|
37
|
+
except ValueError:
|
|
38
|
+
pass
|
|
37
39
|
cache_variables = cache_variables or {}
|
|
38
40
|
if platform.system() == "Windows" and generator == "MinGW Makefiles":
|
|
39
41
|
if "CMAKE_SH" not in cache_variables:
|
|
@@ -249,7 +251,8 @@ class _IncludingPresets:
|
|
|
249
251
|
"""
|
|
250
252
|
|
|
251
253
|
@staticmethod
|
|
252
|
-
def generate(conanfile, preset_path, user_presets_path, preset_prefix, preset_data
|
|
254
|
+
def generate(conanfile, preset_path, user_presets_path, preset_prefix, preset_data,
|
|
255
|
+
absolute_paths):
|
|
253
256
|
if not user_presets_path:
|
|
254
257
|
return
|
|
255
258
|
|
|
@@ -288,10 +291,11 @@ class _IncludingPresets:
|
|
|
288
291
|
if inherited_user:
|
|
289
292
|
_IncludingPresets._clean_user_inherits(data, preset_data)
|
|
290
293
|
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
294
|
+
if not absolute_paths:
|
|
295
|
+
try: # Make it relative to the CMakeUserPresets.json if possible
|
|
296
|
+
preset_path = os.path.relpath(preset_path, output_dir)
|
|
297
|
+
except ValueError:
|
|
298
|
+
pass
|
|
295
299
|
data = _IncludingPresets._append_user_preset_path(data, preset_path, output_dir)
|
|
296
300
|
|
|
297
301
|
data = json.dumps(data, indent=4)
|
|
@@ -179,6 +179,7 @@ class CMakeToolchain(object):
|
|
|
179
179
|
self.presets_prefix = "conan"
|
|
180
180
|
self.presets_build_environment = None
|
|
181
181
|
self.presets_run_environment = None
|
|
182
|
+
self.absolute_paths = False # By default use relative paths to toolchain and presets
|
|
182
183
|
|
|
183
184
|
def _context(self):
|
|
184
185
|
""" Returns dict, the context for the template
|
|
@@ -268,7 +269,7 @@ class CMakeToolchain(object):
|
|
|
268
269
|
|
|
269
270
|
write_cmake_presets(self._conanfile, toolchain_file, self.generator, cache_variables,
|
|
270
271
|
self.user_presets_path, self.presets_prefix, buildenv, runenv,
|
|
271
|
-
cmake_executable)
|
|
272
|
+
cmake_executable, self.absolute_paths)
|
|
272
273
|
|
|
273
274
|
def _get_generator(self, recipe_generator):
|
|
274
275
|
# Returns the name of the generator to be used by CMake
|
|
@@ -59,7 +59,8 @@ def msvc_version_to_vs_ide_version(version):
|
|
|
59
59
|
'190': '14',
|
|
60
60
|
'191': '15',
|
|
61
61
|
'192': '16',
|
|
62
|
-
'193': '17'
|
|
62
|
+
'193': '17',
|
|
63
|
+
'194': '17'} # Note both 193 and 194 belong to VS 17 2022
|
|
63
64
|
return _visuals[str(version)]
|
|
64
65
|
|
|
65
66
|
|
|
@@ -75,7 +76,8 @@ def msvc_version_to_toolset_version(version):
|
|
|
75
76
|
'190': 'v140',
|
|
76
77
|
'191': 'v141',
|
|
77
78
|
'192': 'v142',
|
|
78
|
-
"193": 'v143'
|
|
79
|
+
"193": 'v143',
|
|
80
|
+
"194": 'v143'}
|
|
79
81
|
return toolsets.get(str(version))
|
|
80
82
|
|
|
81
83
|
|
|
@@ -140,6 +142,7 @@ class VCVars:
|
|
|
140
142
|
compiler_update = conanfile.settings.get_safe("compiler.update", "")
|
|
141
143
|
# The equivalent of compiler 19.26 is toolset 14.26
|
|
142
144
|
vcvars_ver = "14.{}{}".format(compiler_version[-1], compiler_update)
|
|
145
|
+
|
|
143
146
|
vcvarsarch = _vcvars_arch(conanfile)
|
|
144
147
|
|
|
145
148
|
winsdk_version = conanfile.conf.get("tools.microsoft:winsdk_version", check_type=str)
|
|
@@ -94,14 +94,14 @@ compiler:
|
|
|
94
94
|
"10", "10.1", "10.2", "10.3", "10.4", "10.5",
|
|
95
95
|
"11", "11.1", "11.2", "11.3", "11.4",
|
|
96
96
|
"12", "12.1", "12.2", "12.3",
|
|
97
|
-
"13", "13.1", "13.2",
|
|
97
|
+
"13", "13.1", "13.2", "13.3",
|
|
98
98
|
"14", "14.1"]
|
|
99
99
|
libcxx: [libstdc++, libstdc++11]
|
|
100
100
|
threads: [null, posix, win32] # Windows MinGW
|
|
101
101
|
exception: [null, dwarf2, sjlj, seh] # Windows MinGW
|
|
102
102
|
cppstd: [null, 98, gnu98, 11, gnu11, 14, gnu14, 17, gnu17, 20, gnu20, 23, gnu23]
|
|
103
103
|
msvc:
|
|
104
|
-
version: [170, 180, 190, 191, 192, 193]
|
|
104
|
+
version: [170, 180, 190, 191, 192, 193, 194]
|
|
105
105
|
update: [null, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
|
|
106
106
|
runtime: [static, dynamic]
|
|
107
107
|
runtime_type: [Debug, Release]
|
|
@@ -12,7 +12,7 @@ def vs_installation_path(version):
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
def vs_detect_update(version):
|
|
15
|
-
version = {"193": "17", "192": "16", "191": "15"}.get(str(version))
|
|
15
|
+
version = {"194": "17", "193": "17", "192": "16", "191": "15"}.get(str(version))
|
|
16
16
|
full_version = _vs_installation_path(version)[1]
|
|
17
17
|
components = full_version.split(".")
|
|
18
18
|
if len(components) > 1:
|
|
@@ -30,26 +30,43 @@ from conan.errors import ConanException
|
|
|
30
30
|
def cppstd_compat(conanfile):
|
|
31
31
|
# It will try to find packages with all the cppstd versions
|
|
32
32
|
extension_properties = getattr(conanfile, "extension_properties", {})
|
|
33
|
-
if extension_properties.get("compatibility_cppstd") is False:
|
|
34
|
-
return []
|
|
35
33
|
compiler = conanfile.settings.get_safe("compiler")
|
|
36
34
|
compiler_version = conanfile.settings.get_safe("compiler.version")
|
|
37
35
|
cppstd = conanfile.settings.get_safe("compiler.cppstd")
|
|
38
|
-
if not compiler or not compiler_version
|
|
36
|
+
if not compiler or not compiler_version:
|
|
39
37
|
return []
|
|
40
38
|
base = dict(conanfile.settings.values_list)
|
|
41
|
-
|
|
42
|
-
if
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
39
|
+
factors = [] # List of list, each sublist is a potential combination
|
|
40
|
+
if cppstd is not None and extension_properties.get("compatibility_cppstd") is not False:
|
|
41
|
+
cppstd_possible_values = supported_cppstd(conanfile)
|
|
42
|
+
if cppstd_possible_values is None:
|
|
43
|
+
conanfile.output.warning(f'No cppstd compatibility defined for compiler "{compiler}"')
|
|
44
|
+
else:
|
|
45
|
+
factors.append([{"compiler.cppstd": v} for v in cppstd_possible_values if v != cppstd])
|
|
46
|
+
|
|
47
|
+
if compiler == "msvc":
|
|
48
|
+
msvc_fallback = {"194": "193"}.get(compiler_version)
|
|
49
|
+
if msvc_fallback:
|
|
50
|
+
factors.append([{"compiler.version": msvc_fallback}])
|
|
51
|
+
|
|
52
|
+
combinations = []
|
|
53
|
+
for factor in factors:
|
|
54
|
+
if not combinations:
|
|
55
|
+
combinations = factor
|
|
48
56
|
continue
|
|
57
|
+
new_combinations = []
|
|
58
|
+
for comb in combinations:
|
|
59
|
+
for f in factor:
|
|
60
|
+
comb = comb.copy()
|
|
61
|
+
comb.update(f)
|
|
62
|
+
new_combinations.append(comb)
|
|
63
|
+
combinations = new_combinations
|
|
64
|
+
|
|
65
|
+
ret = []
|
|
66
|
+
for comb in combinations:
|
|
49
67
|
configuration = base.copy()
|
|
50
|
-
configuration
|
|
68
|
+
configuration.update(comb)
|
|
51
69
|
ret.append({"settings": [(k, v) for k, v in configuration.items()]})
|
|
52
|
-
|
|
53
70
|
return ret
|
|
54
71
|
"""
|
|
55
72
|
|
|
@@ -97,6 +97,11 @@ class Node(object):
|
|
|
97
97
|
# print(" +++++Runtime conflict!", require, "with", node.ref)
|
|
98
98
|
return True
|
|
99
99
|
require.aggregate(existing.require)
|
|
100
|
+
# An override can be overriden by a downstream force/override
|
|
101
|
+
if existing.require.override and existing.require.ref != require.ref:
|
|
102
|
+
# If it is an override, but other value, it has been overriden too
|
|
103
|
+
existing.require.overriden_ref = existing.require.ref
|
|
104
|
+
existing.require.override_ref = require.ref
|
|
100
105
|
|
|
101
106
|
assert not require.version_range # No ranges slip into transitive_deps definitions
|
|
102
107
|
# TODO: Might need to move to an update() for performance
|
|
@@ -118,6 +123,7 @@ class Node(object):
|
|
|
118
123
|
if down_require is None:
|
|
119
124
|
return
|
|
120
125
|
|
|
126
|
+
down_require.defining_require = require.defining_require
|
|
121
127
|
return d.src.propagate_downstream(down_require, node)
|
|
122
128
|
|
|
123
129
|
def check_downstream_exists(self, require):
|
|
@@ -161,6 +167,7 @@ class Node(object):
|
|
|
161
167
|
# print(" No need to check downstream more")
|
|
162
168
|
return result
|
|
163
169
|
|
|
170
|
+
down_require.defining_require = require.defining_require
|
|
164
171
|
source_node = dependant.src
|
|
165
172
|
return source_node.check_downstream_exists(down_require) or result
|
|
166
173
|
|
|
@@ -275,9 +282,9 @@ class Overrides:
|
|
|
275
282
|
overrides = {}
|
|
276
283
|
for n in nodes:
|
|
277
284
|
for r in n.conanfile.requires.values():
|
|
278
|
-
if r.override:
|
|
285
|
+
if r.override and not r.overriden_ref: # overrides are not real graph edges
|
|
279
286
|
continue
|
|
280
|
-
if r.overriden_ref
|
|
287
|
+
if r.overriden_ref:
|
|
281
288
|
overrides.setdefault(r.overriden_ref, set()).add(r.override_ref)
|
|
282
289
|
else:
|
|
283
290
|
overrides.setdefault(r.ref, set()).add(None)
|
|
@@ -150,7 +150,7 @@ class GraphBinariesAnalyzer(object):
|
|
|
150
150
|
if node.binary in (BINARY_CACHE, BINARY_UPDATE, BINARY_DOWNLOAD):
|
|
151
151
|
_compatible_found(package_id, compatible_package)
|
|
152
152
|
return
|
|
153
|
-
if not update:
|
|
153
|
+
if not should_update_reference(conanfile.ref, update):
|
|
154
154
|
conanfile.output.info(f"Compatible configurations not found in cache, checking servers")
|
|
155
155
|
for package_id, compatible_package in compatibles.items():
|
|
156
156
|
conanfile.output.info(f"'{package_id}': "
|
|
@@ -81,9 +81,13 @@ class DepsGraphBuilder(object):
|
|
|
81
81
|
|
|
82
82
|
prev_ref = prev_node.ref if prev_node else prev_require.ref
|
|
83
83
|
if prev_require.force or prev_require.override: # override
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
84
|
+
if prev_require.defining_require is not require:
|
|
85
|
+
require.overriden_ref = require.overriden_ref or require.ref.copy() # Old one
|
|
86
|
+
# require.override_ref can be !=None if lockfile-overrides defined
|
|
87
|
+
require.override_ref = (require.override_ref or prev_require.override_ref
|
|
88
|
+
or prev_require.ref.copy()) # New one
|
|
89
|
+
require.defining_require = prev_require.defining_require # The overrider
|
|
90
|
+
require.ref = prev_ref # New one, maybe resolved with revision
|
|
87
91
|
else:
|
|
88
92
|
self._conflicting_version(require, node, prev_require, prev_node,
|
|
89
93
|
prev_ref, base_previous, self._resolve_prereleases)
|
|
@@ -195,6 +199,8 @@ class DepsGraphBuilder(object):
|
|
|
195
199
|
if not resolved:
|
|
196
200
|
self._resolve_alias(node, require, alias, graph)
|
|
197
201
|
self._resolve_replace_requires(node, require, profile_build, profile_host, graph)
|
|
202
|
+
if graph_lock:
|
|
203
|
+
graph_lock.resolve_overrides(require)
|
|
198
204
|
node.transitive_deps[require] = TransitiveRequirement(require, node=None)
|
|
199
205
|
|
|
200
206
|
def _resolve_alias(self, node, require, alias, graph):
|
|
@@ -160,7 +160,7 @@ class _InstallRecipeReference:
|
|
|
160
160
|
if dep.dst.binary != BINARY_SKIP:
|
|
161
161
|
if dep.dst.ref == node.ref: # If the node is itself, then it is internal dep
|
|
162
162
|
install_pkg_ref.depends.append(dep.dst.pref.package_id)
|
|
163
|
-
|
|
163
|
+
elif dep.dst.ref not in self.depends:
|
|
164
164
|
self.depends.append(dep.dst.ref)
|
|
165
165
|
|
|
166
166
|
def _install_order(self):
|
|
@@ -116,7 +116,7 @@ BUILT_IN_CONFS = {
|
|
|
116
116
|
"tools.build:compiler_executables": "Defines a Python dict-like with the compilers path to be used. Allowed keys {'c', 'cpp', 'cuda', 'objc', 'objcxx', 'rc', 'fortran', 'asm', 'hip', 'ispc', 'ld', 'ar'}",
|
|
117
117
|
"tools.build:cxxflags": "List of extra CXX flags used by different toolchains like CMakeToolchain, AutotoolsToolchain and MesonToolchain",
|
|
118
118
|
"tools.build:cflags": "List of extra C flags used by different toolchains like CMakeToolchain, AutotoolsToolchain and MesonToolchain",
|
|
119
|
-
"tools.build:defines": "List of extra definition flags used by different toolchains like CMakeToolchain and
|
|
119
|
+
"tools.build:defines": "List of extra definition flags used by different toolchains like CMakeToolchain, AutotoolsToolchain and MesonToolchain",
|
|
120
120
|
"tools.build:sharedlinkflags": "List of extra flags used by CMakeToolchain for CMAKE_SHARED_LINKER_FLAGS_INIT variable",
|
|
121
121
|
"tools.build:exelinkflags": "List of extra flags used by CMakeToolchain for CMAKE_EXE_LINKER_FLAGS_INIT variable",
|
|
122
122
|
"tools.build:linker_scripts": "List of linker script files to pass to the linker used by different toolchains like CMakeToolchain, AutotoolsToolchain, and MesonToolchain",
|
|
@@ -261,7 +261,6 @@ class Lockfile(object):
|
|
|
261
261
|
locked_refs = self._conf_requires.refs()
|
|
262
262
|
else:
|
|
263
263
|
locked_refs = self._requires.refs()
|
|
264
|
-
self._resolve_overrides(require)
|
|
265
264
|
try:
|
|
266
265
|
self._resolve(require, locked_refs, resolve_prereleases)
|
|
267
266
|
except ConanException:
|
|
@@ -273,13 +272,19 @@ class Lockfile(object):
|
|
|
273
272
|
ConanOutput().error(msg, error_type="exception")
|
|
274
273
|
raise
|
|
275
274
|
|
|
276
|
-
def
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
275
|
+
def resolve_overrides(self, require):
|
|
276
|
+
""" The lockfile contains the overrides to be able to inject them when the lockfile is
|
|
277
|
+
applied to upstream dependencies, that have the overrides downstream
|
|
278
|
+
"""
|
|
279
|
+
if not self._overrides:
|
|
280
|
+
return
|
|
281
|
+
|
|
282
|
+
overriden = self._overrides.get(require.ref)
|
|
283
|
+
if overriden and len(overriden) == 1:
|
|
284
|
+
override_ref = next(iter(overriden))
|
|
285
|
+
require.overriden_ref = require.overriden_ref or require.ref.copy()
|
|
286
|
+
require.override_ref = override_ref
|
|
287
|
+
require.ref = override_ref
|
|
283
288
|
|
|
284
289
|
def resolve_prev(self, node):
|
|
285
290
|
if node.context == CONTEXT_BUILD:
|
|
@@ -26,6 +26,11 @@ class RecipeReference:
|
|
|
26
26
|
self.revision = revision
|
|
27
27
|
self.timestamp = timestamp
|
|
28
28
|
|
|
29
|
+
def copy(self):
|
|
30
|
+
# Used for creating copy in lockfile-overrides mechanism
|
|
31
|
+
return RecipeReference(self.name, self.version, self.user, self.channel, self.revision,
|
|
32
|
+
self.timestamp)
|
|
33
|
+
|
|
29
34
|
def __repr__(self):
|
|
30
35
|
""" long repr like pkg/0.1@user/channel#rrev%timestamp """
|
|
31
36
|
result = self.repr_notime()
|
|
@@ -29,6 +29,9 @@ class Requirement:
|
|
|
29
29
|
self._direct = direct
|
|
30
30
|
self.options = options
|
|
31
31
|
# Meta and auxiliary information
|
|
32
|
+
# The "defining_require" is the require that defines the current value. If this require is
|
|
33
|
+
# overriden/forced, this attribute will point to the overriding/forcing requirement.
|
|
34
|
+
self.defining_require = self # if not overriden, it points to itself
|
|
32
35
|
self.overriden_ref = None # to store if the requirement has been overriden (store old ref)
|
|
33
36
|
self.override_ref = None # to store if the requirement has been overriden (store new ref)
|
|
34
37
|
self.is_test = test # to store that it was a test, even if used as regular requires too
|
|
@@ -518,16 +521,6 @@ class Requirements:
|
|
|
518
521
|
raise ConanException("Duplicated requirement: {}".format(ref))
|
|
519
522
|
self._requires[req] = req
|
|
520
523
|
|
|
521
|
-
def override(self, ref):
|
|
522
|
-
req = Requirement(ref)
|
|
523
|
-
old_requirement = self._requires.get(req)
|
|
524
|
-
if old_requirement is not None:
|
|
525
|
-
req.force = True
|
|
526
|
-
self._requires[req] = req
|
|
527
|
-
else:
|
|
528
|
-
req.override = True
|
|
529
|
-
self._requires[req] = req
|
|
530
|
-
|
|
531
524
|
def test_require(self, ref, run=None, options=None, force=None):
|
|
532
525
|
"""
|
|
533
526
|
Represent a testing framework like gtest
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|