conan 2.18.0__tar.gz → 2.19.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.18.0/conan.egg-info → conan-2.19.0}/PKG-INFO +1 -1
- {conan-2.18.0 → conan-2.19.0}/conan/__init__.py +1 -1
- {conan-2.18.0 → conan-2.19.0}/conan/api/conan_api.py +21 -9
- {conan-2.18.0 → conan-2.19.0}/conan/api/input.py +3 -3
- {conan-2.18.0 → conan-2.19.0}/conan/api/output.py +15 -10
- {conan-2.18.0 → conan-2.19.0}/conan/api/subapi/config.py +0 -2
- {conan-2.18.0 → conan-2.19.0}/conan/api/subapi/export.py +4 -3
- {conan-2.18.0 → conan-2.19.0}/conan/api/subapi/graph.py +4 -2
- {conan-2.18.0 → conan-2.19.0}/conan/api/subapi/install.py +6 -5
- {conan-2.18.0 → conan-2.19.0}/conan/api/subapi/local.py +4 -3
- {conan-2.18.0 → conan-2.19.0}/conan/api/subapi/report.py +6 -4
- {conan-2.18.0 → conan-2.19.0}/conan/cli/commands/export_pkg.py +3 -1
- {conan-2.18.0 → conan-2.19.0}/conan/cli/commands/new.py +1 -1
- {conan-2.18.0 → conan-2.19.0}/conan/cli/formatters/graph/info_graph_html.py +26 -3
- {conan-2.18.0 → conan-2.19.0}/conan/cli/formatters/report/diff_html.py +41 -25
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/detect/detect_api.py +13 -14
- {conan-2.18.0 → conan-2.19.0}/conan/internal/cache/home_paths.py +0 -2
- {conan-2.18.0 → conan-2.19.0}/conan/internal/default_settings.py +1 -1
- {conan-2.18.0 → conan-2.19.0}/conan/internal/graph/graph_binaries.py +7 -3
- {conan-2.18.0 → conan-2.19.0}/conan/internal/hook_manager.py +4 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/loader.py +3 -2
- {conan-2.18.0 → conan-2.19.0}/conan/internal/model/conan_file.py +3 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/model/profile.py +6 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/rest/download_cache.py +11 -3
- {conan-2.18.0 → conan-2.19.0}/conan/internal/rest/remote_manager.py +12 -4
- {conan-2.18.0 → conan-2.19.0}/conan/internal/runner/ssh.py +8 -2
- conan-2.19.0/conan/test/assets/premake.py +44 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/apple/apple.py +10 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/apple/xcodebuild.py +10 -3
- {conan-2.18.0 → conan-2.19.0}/conan/tools/apple/xcodetoolchain.py +3 -9
- {conan-2.18.0 → conan-2.19.0}/conan/tools/cmake/cmakedeps2/target_configuration.py +40 -3
- {conan-2.18.0 → conan-2.19.0}/conan/tools/files/files.py +7 -1
- {conan-2.18.0 → conan-2.19.0}/conan/tools/gnu/autotools.py +8 -4
- {conan-2.18.0 → conan-2.19.0}/conan/tools/meson/toolchain.py +29 -21
- {conan-2.18.0 → conan-2.19.0}/conan/tools/premake/premake.py +7 -3
- {conan-2.18.0 → conan-2.19.0}/conan/tools/premake/premakedeps.py +64 -23
- {conan-2.18.0 → conan-2.19.0}/conan/tools/sbom/cyclonedx.py +16 -11
- {conan-2.18.0 → conan-2.19.0/conan.egg-info}/PKG-INFO +1 -1
- {conan-2.18.0 → conan-2.19.0}/conan.egg-info/SOURCES.txt +1 -0
- {conan-2.18.0 → conan-2.19.0}/conans/conan.py +2 -1
- {conan-2.18.0 → conan-2.19.0}/LICENSE.md +0 -0
- {conan-2.18.0 → conan-2.19.0}/MANIFEST.in +0 -0
- {conan-2.18.0 → conan-2.19.0}/README.md +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/api/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/api/model/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/api/model/list.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/api/model/refs.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/api/model/remote.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/api/subapi/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/api/subapi/audit.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/api/subapi/cache.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/api/subapi/command.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/api/subapi/download.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/api/subapi/list.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/api/subapi/lockfile.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/api/subapi/new.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/api/subapi/profiles.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/api/subapi/remotes.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/api/subapi/remove.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/api/subapi/search.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/api/subapi/upload.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/api/subapi/workspace.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/args.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/cli.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/command.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/commands/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/commands/audit.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/commands/build.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/commands/cache.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/commands/config.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/commands/create.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/commands/download.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/commands/editable.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/commands/export.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/commands/graph.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/commands/inspect.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/commands/install.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/commands/list.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/commands/lock.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/commands/pkglist.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/commands/profile.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/commands/remote.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/commands/remove.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/commands/report.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/commands/search.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/commands/source.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/commands/test.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/commands/upload.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/commands/version.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/commands/workspace.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/exit_codes.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/formatters/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/formatters/audit/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/formatters/audit/vulnerabilities.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/formatters/graph/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/formatters/graph/build_order_html.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/formatters/graph/graph.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/formatters/graph/graph_info_text.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/formatters/graph/info_graph_dot.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/formatters/list/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/formatters/list/list.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/formatters/list/search_table_html.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/formatters/report/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/formatters/report/diff.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/printers/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cli/printers/graph.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cps/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/cps/cps.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/errors.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/audit/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/audit/providers.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/config/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/config/config_installer.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/detect/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/detect/detect_vs.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/export.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/install/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/install/generators.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/list/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/list/query_parse.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/local/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/local/editable.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/migrations.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/new/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/new/alias_new.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/new/autoools_exe.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/new/autotools_lib.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/new/basic.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/new/bazel_7_exe.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/new/bazel_7_lib.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/new/bazel_exe.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/new/bazel_lib.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/new/cmake_exe.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/new/cmake_lib.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/new/header_lib.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/new/local_recipes_index.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/new/meson_exe.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/new/meson_lib.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/new/msbuild_exe.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/new/msbuild_lib.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/new/premake_exe.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/new/premake_lib.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/new/qbs_lib.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/new/workspace.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/profile/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/profile/detect.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/profile/profile_loader.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/remotes/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/remotes/encrypt.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/remotes/localdb.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/upload.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/api/uploader.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/cache/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/cache/cache.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/cache/conan_reference_layout.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/cache/db/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/cache/db/cache_database.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/cache/db/packages_table.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/cache/db/recipes_table.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/cache/db/table.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/cache/integrity_check.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/conan_app.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/deploy.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/errors.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/graph/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/graph/build_mode.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/graph/compatibility.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/graph/compute_pid.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/graph/graph.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/graph/graph_builder.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/graph/graph_error.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/graph/install_graph.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/graph/installer.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/graph/profile_node_definer.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/graph/provides.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/graph/proxy.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/graph/python_requires.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/graph/range_resolver.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/internal_tools.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/methods.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/model/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/model/conanfile_interface.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/model/conf.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/model/cpp_info.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/model/dependencies.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/model/info.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/model/layout.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/model/lockfile.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/model/manifest.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/model/options.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/model/pkg_type.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/model/recipe_ref.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/model/requires.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/model/settings.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/model/version.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/model/version_range.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/model/workspace.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/paths.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/rest/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/rest/auth_manager.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/rest/caching_file_downloader.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/rest/client_routes.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/rest/conan_requester.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/rest/file_downloader.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/rest/file_uploader.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/rest/pkg_sign.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/rest/remote_credentials.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/rest/rest_client.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/rest/rest_client_local_recipe_index.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/rest/rest_client_v2.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/rest/rest_routes.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/runner/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/runner/docker.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/runner/output.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/runner/wsl.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/source.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/subsystems.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/util/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/util/config_parser.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/util/dates.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/util/files.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/internal/util/runners.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/test/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/test/assets/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/test/assets/autotools.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/test/assets/cmake.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/test/assets/genconanfile.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/test/assets/sources.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/test/assets/visual_project_files.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/test/utils/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/test/utils/artifactory.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/test/utils/env.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/test/utils/file_server.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/test/utils/mocks.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/test/utils/profiles.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/test/utils/scm.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/test/utils/server_launcher.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/test/utils/test_files.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/test/utils/tools.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/android/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/android/utils.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/apple/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/apple/xcodedeps.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/build/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/build/cppstd.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/build/cpu.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/build/cross_building.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/build/cstd.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/build/flags.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/build/stdcpp_library.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/cmake/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/cmake/cmake.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/cmake/cmakedeps/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/cmake/cmakedeps/cmakedeps.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/cmake/cmakedeps/templates/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/cmake/cmakedeps/templates/config.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/cmake/cmakedeps/templates/config_version.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/cmake/cmakedeps/templates/macros.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/cmake/cmakedeps/templates/target_configuration.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/cmake/cmakedeps/templates/target_data.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/cmake/cmakedeps/templates/targets.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/cmake/cmakedeps2/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/cmake/cmakedeps2/cmakedeps.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/cmake/cmakedeps2/config.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/cmake/cmakedeps2/config_version.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/cmake/cmakedeps2/targets.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/cmake/layout.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/cmake/presets.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/cmake/toolchain/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/cmake/toolchain/blocks.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/cmake/toolchain/toolchain.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/cmake/utils.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/cps/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/cps/cps_deps.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/env/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/env/environment.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/env/virtualbuildenv.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/env/virtualrunenv.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/files/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/files/conandata.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/files/copy_pattern.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/files/packager.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/files/patches.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/files/symlinks/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/files/symlinks/symlinks.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/gnu/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/gnu/autotoolsdeps.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/gnu/autotoolstoolchain.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/gnu/get_gnu_triplet.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/gnu/gnudeps_flags.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/gnu/gnutoolchain.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/gnu/makedeps.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/gnu/pkgconfig.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/gnu/pkgconfigdeps.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/google/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/google/bazel.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/google/bazeldeps.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/google/layout.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/google/toolchain.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/intel/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/intel/intel_cc.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/layout/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/meson/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/meson/helpers.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/meson/meson.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/microsoft/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/microsoft/layout.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/microsoft/msbuild.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/microsoft/msbuilddeps.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/microsoft/nmakedeps.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/microsoft/nmaketoolchain.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/microsoft/subsystems.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/microsoft/toolchain.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/microsoft/visual.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/premake/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/premake/constants.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/premake/toolchain.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/qbs/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/qbs/common.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/qbs/qbs.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/qbs/qbsdeps.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/qbs/qbsprofile.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/ros/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/ros/rosenv.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/sbom/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/sbom/spdx_licenses.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/scm/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/scm/git.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/scons/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/scons/sconsdeps.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/system/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan/tools/system/package_manager.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan.egg-info/dependency_links.txt +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan.egg-info/entry_points.txt +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan.egg-info/requires.txt +0 -0
- {conan-2.18.0 → conan-2.19.0}/conan.egg-info/top_level.txt +0 -0
- {conan-2.18.0 → conan-2.19.0}/conans/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conans/conan_server.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conans/migrations.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conans/model/__init__.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conans/model/package_ref.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conans/model/recipe_ref.py +0 -0
- {conan-2.18.0 → conan-2.19.0}/conans/requirements.txt +0 -0
- {conan-2.18.0 → conan-2.19.0}/conans/requirements_dev.txt +0 -0
- {conan-2.18.0 → conan-2.19.0}/conans/requirements_runner.txt +0 -0
- {conan-2.18.0 → conan-2.19.0}/conans/requirements_server.txt +0 -0
- {conan-2.18.0 → conan-2.19.0}/pyproject.toml +0 -0
- {conan-2.18.0 → conan-2.19.0}/setup.cfg +0 -0
- {conan-2.18.0 → conan-2.19.0}/setup.py +0 -0
|
@@ -22,6 +22,8 @@ from conan.api.subapi.remove import RemoveAPI
|
|
|
22
22
|
from conan.api.subapi.search import SearchAPI
|
|
23
23
|
from conan.api.subapi.upload import UploadAPI
|
|
24
24
|
from conan.errors import ConanException
|
|
25
|
+
from conan.internal.cache.home_paths import HomePaths
|
|
26
|
+
from conan.internal.hook_manager import HookManager
|
|
25
27
|
from conan.internal.paths import get_conan_user_home
|
|
26
28
|
from conan.internal.api.migrations import ClientMigrator
|
|
27
29
|
from conan.internal.model.version_range import validate_conan_version
|
|
@@ -48,10 +50,12 @@ class ConanAPI:
|
|
|
48
50
|
init_colorama(sys.stderr)
|
|
49
51
|
self.cache_folder = cache_folder or get_conan_user_home()
|
|
50
52
|
self.home_folder = self.cache_folder # Lets call it home, deprecate "cache"
|
|
51
|
-
self.migrate()
|
|
52
|
-
|
|
53
53
|
# This API is depended upon by the subsequent ones, it should be initialized first
|
|
54
54
|
self.config = ConfigAPI(self)
|
|
55
|
+
_check_conan_version(self)
|
|
56
|
+
|
|
57
|
+
self._api_helpers = self._ApiHelpers(self)
|
|
58
|
+
self.migrate()
|
|
55
59
|
|
|
56
60
|
self.remotes = RemotesAPI(self)
|
|
57
61
|
self.command = CommandAPI(self)
|
|
@@ -60,27 +64,27 @@ class ConanAPI:
|
|
|
60
64
|
# Get latest refs and list refs of recipes and packages
|
|
61
65
|
self.list = ListAPI(self)
|
|
62
66
|
self.profiles = ProfilesAPI(self)
|
|
63
|
-
self.install = InstallAPI(self)
|
|
64
|
-
self.graph = GraphAPI(self)
|
|
65
|
-
self.export = ExportAPI(self)
|
|
67
|
+
self.install = InstallAPI(self, self._api_helpers)
|
|
68
|
+
self.graph = GraphAPI(self, self._api_helpers)
|
|
69
|
+
self.export = ExportAPI(self, self._api_helpers)
|
|
66
70
|
self.remove = RemoveAPI(self)
|
|
67
71
|
self.new = NewAPI(self)
|
|
68
72
|
self.upload = UploadAPI(self)
|
|
69
73
|
self.download = DownloadAPI(self)
|
|
70
74
|
self.cache = CacheAPI(self)
|
|
71
75
|
self.lockfile = LockfileAPI(self)
|
|
72
|
-
self.local = LocalAPI(self)
|
|
76
|
+
self.local = LocalAPI(self, self._api_helpers)
|
|
73
77
|
self.audit = AuditAPI(self)
|
|
74
78
|
# Now, lazy loading of editables
|
|
75
79
|
self.workspace = WorkspaceAPI(self)
|
|
76
|
-
self.report = ReportAPI(self)
|
|
77
|
-
|
|
78
|
-
_check_conan_version(self)
|
|
80
|
+
self.report = ReportAPI(self, self._api_helpers)
|
|
79
81
|
|
|
80
82
|
def reinit(self):
|
|
81
83
|
"""
|
|
82
84
|
Reinitialize the Conan API. This is useful when the configuration changes.
|
|
83
85
|
"""
|
|
86
|
+
# TODO: Think order of reinitialization for helpers
|
|
87
|
+
self._api_helpers.reinit()
|
|
84
88
|
self.config.reinit()
|
|
85
89
|
self.remotes.reinit()
|
|
86
90
|
self.local.reinit()
|
|
@@ -94,6 +98,14 @@ class ConanAPI:
|
|
|
94
98
|
migrator = ClientMigrator(self.cache_folder, conan_version)
|
|
95
99
|
migrator.migrate()
|
|
96
100
|
|
|
101
|
+
class _ApiHelpers:
|
|
102
|
+
def __init__(self, conan_api):
|
|
103
|
+
self._conan_api = conan_api
|
|
104
|
+
self.hook_manager = HookManager(HomePaths(self._conan_api.home_folder).hooks_path)
|
|
105
|
+
|
|
106
|
+
def reinit(self):
|
|
107
|
+
self.hook_manager.reinit()
|
|
108
|
+
|
|
97
109
|
|
|
98
110
|
def _check_conan_version(conan_api):
|
|
99
111
|
required_range_new = conan_api.config.global_conf.get("core:required_conan_version")
|
|
@@ -33,11 +33,11 @@ class UserInput:
|
|
|
33
33
|
:param username If username is specified it only request password"""
|
|
34
34
|
self._raise_if_non_interactive()
|
|
35
35
|
if not username:
|
|
36
|
-
self._out.
|
|
36
|
+
self._out.login_msg(f"Remote '{remote_name}' username: ")
|
|
37
37
|
username = self.get_username()
|
|
38
38
|
|
|
39
|
-
self._out.
|
|
40
|
-
|
|
39
|
+
self._out.login_msg("Please enter a password for "
|
|
40
|
+
f"user '{username}' on remote '{remote_name}': ")
|
|
41
41
|
try:
|
|
42
42
|
pwd = self.get_password()
|
|
43
43
|
except ConanException:
|
|
@@ -19,7 +19,7 @@ LEVEL_DEBUG = 20 # -vv Closely related to internal implementation details
|
|
|
19
19
|
LEVEL_TRACE = 10 # -vvv Fine-grained messages with very low-level implementation details
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
class Color
|
|
22
|
+
class Color:
|
|
23
23
|
""" Wrapper around colorama colors that are undefined in importing
|
|
24
24
|
"""
|
|
25
25
|
RED = Fore.RED # @UndefinedVariable
|
|
@@ -181,6 +181,11 @@ class ConanOutput:
|
|
|
181
181
|
self.writeln(f'*{msg: ^48}*', fg=color)
|
|
182
182
|
self.writeln(f"**************************************************\n", fg=color)
|
|
183
183
|
|
|
184
|
+
def login_msg(self, msg, newline=False):
|
|
185
|
+
# unconditional to the error level, this has to show always
|
|
186
|
+
self._write_message(msg, newline=newline)
|
|
187
|
+
return self
|
|
188
|
+
|
|
184
189
|
def _write_message(self, msg, fg=None, bg=None, newline=True):
|
|
185
190
|
if isinstance(msg, dict):
|
|
186
191
|
# For traces we can receive a dict already, we try to transform then into more natural
|
|
@@ -189,20 +194,19 @@ class ConanOutput:
|
|
|
189
194
|
msg = "=> {}".format(msg)
|
|
190
195
|
# msg = json.dumps(msg, sort_keys=True, default=json_encoder)
|
|
191
196
|
|
|
192
|
-
ret = ""
|
|
193
197
|
if self._scope:
|
|
194
198
|
if self._color:
|
|
195
|
-
ret = "{
|
|
199
|
+
ret = f"{fg or ''}{bg or ''}{self._scope}: {msg}{Style.RESET_ALL}"
|
|
196
200
|
else:
|
|
197
|
-
ret = "{}: "
|
|
198
|
-
|
|
199
|
-
if self._color:
|
|
200
|
-
ret += "{}{}{}{}".format(fg or '', bg or '', msg, Style.RESET_ALL)
|
|
201
|
+
ret = f"{self._scope}: {msg}"
|
|
201
202
|
else:
|
|
202
|
-
|
|
203
|
+
if self._color:
|
|
204
|
+
ret = f"{fg or ''}{bg or ''}{msg}{Style.RESET_ALL}"
|
|
205
|
+
else:
|
|
206
|
+
ret = msg
|
|
203
207
|
|
|
204
208
|
if newline:
|
|
205
|
-
ret
|
|
209
|
+
ret += "\n"
|
|
206
210
|
|
|
207
211
|
with self.lock:
|
|
208
212
|
self.stream.write(ret)
|
|
@@ -260,7 +264,8 @@ class ConanOutput:
|
|
|
260
264
|
|
|
261
265
|
def warning(self, msg, warn_tag=None):
|
|
262
266
|
_treat_as_error = self._warn_tag_matches(warn_tag, self._warnings_as_errors)
|
|
263
|
-
if self._conan_output_level <= LEVEL_WARNING or
|
|
267
|
+
if (self._conan_output_level <= LEVEL_WARNING or
|
|
268
|
+
(_treat_as_error and self._conan_output_level <= LEVEL_ERROR)):
|
|
264
269
|
if self._warn_tag_matches(warn_tag, self._silent_warn_tags):
|
|
265
270
|
return self
|
|
266
271
|
warn_tag_msg = "" if warn_tag is None else f"{warn_tag}: "
|
|
@@ -30,7 +30,6 @@ class ConfigAPI:
|
|
|
30
30
|
self.conan_api = conan_api
|
|
31
31
|
self._new_config = None
|
|
32
32
|
self._cli_core_confs = None
|
|
33
|
-
self.hook_manager = HookManager(HomePaths(conan_api.home_folder).hooks_path)
|
|
34
33
|
|
|
35
34
|
def home(self):
|
|
36
35
|
return self.conan_api.cache_folder
|
|
@@ -236,4 +235,3 @@ class ConfigAPI:
|
|
|
236
235
|
if self._new_config is not None:
|
|
237
236
|
self._new_config.clear()
|
|
238
237
|
self._populate_global_conf()
|
|
239
|
-
self.hook_manager = HookManager(HomePaths(self.conan_api.home_folder).hooks_path)
|
|
@@ -10,19 +10,20 @@ from conan.internal.util.files import mkdir
|
|
|
10
10
|
|
|
11
11
|
class ExportAPI:
|
|
12
12
|
|
|
13
|
-
def __init__(self, conan_api):
|
|
13
|
+
def __init__(self, conan_api, helpers):
|
|
14
14
|
self.conan_api = conan_api
|
|
15
|
+
self._helpers = helpers
|
|
15
16
|
|
|
16
17
|
def export(self, path, name, version, user, channel, lockfile=None, remotes=None):
|
|
17
18
|
ConanOutput().title("Exporting recipe to the cache")
|
|
18
19
|
app = ConanApp(self.conan_api)
|
|
19
|
-
hook_manager = self.
|
|
20
|
+
hook_manager = self._helpers.hook_manager
|
|
20
21
|
return cmd_export(app, hook_manager, self.conan_api.config.global_conf, path, name, version,
|
|
21
22
|
user, channel, graph_lock=lockfile, remotes=remotes)
|
|
22
23
|
|
|
23
24
|
def export_pkg(self, deps_graph, source_folder, output_folder):
|
|
24
25
|
cache = PkgCache(self.conan_api.cache_folder, self.conan_api.config.global_conf)
|
|
25
|
-
hook_manager = self.
|
|
26
|
+
hook_manager = self._helpers.hook_manager
|
|
26
27
|
|
|
27
28
|
# The graph has to be loaded with build_mode=[ref.name], so that node is not tried
|
|
28
29
|
# to be downloaded from remotes
|
|
@@ -13,8 +13,9 @@ from conan.api.model import RecipeReference
|
|
|
13
13
|
|
|
14
14
|
class GraphAPI:
|
|
15
15
|
|
|
16
|
-
def __init__(self, conan_api):
|
|
16
|
+
def __init__(self, conan_api, helpers):
|
|
17
17
|
self.conan_api = conan_api
|
|
18
|
+
self._helpers = helpers
|
|
18
19
|
|
|
19
20
|
def _load_root_consumer_conanfile(self, path, profile_host, profile_build,
|
|
20
21
|
name=None, version=None, user=None, channel=None,
|
|
@@ -205,7 +206,8 @@ class GraphAPI:
|
|
|
205
206
|
"""
|
|
206
207
|
ConanOutput().title("Computing necessary packages")
|
|
207
208
|
conan_app = ConanBasicApp(self.conan_api)
|
|
208
|
-
binaries_analyzer = GraphBinariesAnalyzer(conan_app, self.conan_api.config.global_conf
|
|
209
|
+
binaries_analyzer = GraphBinariesAnalyzer(conan_app, self.conan_api.config.global_conf,
|
|
210
|
+
self._helpers.hook_manager)
|
|
209
211
|
binaries_analyzer.evaluate_graph(graph, build_mode, lockfile, remotes, update,
|
|
210
212
|
build_modes_test, tested_graph)
|
|
211
213
|
|
|
@@ -11,8 +11,9 @@ from conan.errors import ConanInvalidConfiguration
|
|
|
11
11
|
|
|
12
12
|
class InstallAPI:
|
|
13
13
|
|
|
14
|
-
def __init__(self, conan_api):
|
|
14
|
+
def __init__(self, conan_api, helpers):
|
|
15
15
|
self.conan_api = conan_api
|
|
16
|
+
self._helpers = helpers
|
|
16
17
|
|
|
17
18
|
def install_binaries(self, deps_graph, remotes=None):
|
|
18
19
|
""" Install binaries for dependency graph
|
|
@@ -21,7 +22,7 @@ class InstallAPI:
|
|
|
21
22
|
"""
|
|
22
23
|
app = ConanBasicApp(self.conan_api)
|
|
23
24
|
installer = BinaryInstaller(app, self.conan_api.config.global_conf, app.editable_packages,
|
|
24
|
-
self.
|
|
25
|
+
self._helpers.hook_manager)
|
|
25
26
|
install_graph = InstallGraph(deps_graph)
|
|
26
27
|
install_graph.raise_errors()
|
|
27
28
|
install_order = install_graph.install_order()
|
|
@@ -35,7 +36,7 @@ class InstallAPI:
|
|
|
35
36
|
"""
|
|
36
37
|
app = ConanBasicApp(self.conan_api)
|
|
37
38
|
installer = BinaryInstaller(app, self.conan_api.config.global_conf, app.editable_packages,
|
|
38
|
-
self.
|
|
39
|
+
self._helpers.hook_manager)
|
|
39
40
|
installer.install_system_requires(graph, only_info)
|
|
40
41
|
|
|
41
42
|
def install_sources(self, graph, remotes):
|
|
@@ -46,7 +47,7 @@ class InstallAPI:
|
|
|
46
47
|
"""
|
|
47
48
|
app = ConanBasicApp(self.conan_api)
|
|
48
49
|
installer = BinaryInstaller(app, self.conan_api.config.global_conf, app.editable_packages,
|
|
49
|
-
self.
|
|
50
|
+
self._helpers.hook_manager)
|
|
50
51
|
installer.install_sources(graph, remotes)
|
|
51
52
|
|
|
52
53
|
# TODO: Look for a better name
|
|
@@ -87,7 +88,7 @@ class InstallAPI:
|
|
|
87
88
|
if gen not in final_generators:
|
|
88
89
|
final_generators.append(gen)
|
|
89
90
|
conanfile.generators = final_generators
|
|
90
|
-
hook_manager = self.
|
|
91
|
+
hook_manager = self._helpers.hook_manager
|
|
91
92
|
write_generators(conanfile, hook_manager, self.conan_api.home_folder,
|
|
92
93
|
envs_generation=envs_generation)
|
|
93
94
|
|
|
@@ -14,8 +14,9 @@ from conan.internal.util.files import chdir
|
|
|
14
14
|
|
|
15
15
|
class LocalAPI:
|
|
16
16
|
|
|
17
|
-
def __init__(self, conan_api):
|
|
17
|
+
def __init__(self, conan_api, helpers):
|
|
18
18
|
self._conan_api = conan_api
|
|
19
|
+
self._helpers = helpers
|
|
19
20
|
self.editable_packages = EditablePackages(conan_api.home_folder)
|
|
20
21
|
|
|
21
22
|
@staticmethod
|
|
@@ -93,13 +94,13 @@ class LocalAPI:
|
|
|
93
94
|
conanfile.folders.set_base_build(None)
|
|
94
95
|
conanfile.folders.set_base_package(None)
|
|
95
96
|
|
|
96
|
-
hook_manager = self.
|
|
97
|
+
hook_manager = self._helpers.hook_manager
|
|
97
98
|
run_source_method(conanfile, hook_manager)
|
|
98
99
|
|
|
99
100
|
def build(self, conanfile):
|
|
100
101
|
""" calls the 'build()' method of the current (user folder) conanfile.py
|
|
101
102
|
"""
|
|
102
|
-
hook_manager = self.
|
|
103
|
+
hook_manager = self._helpers.hook_manager
|
|
103
104
|
conanfile.folders.set_base_package(conanfile.folders.base_build)
|
|
104
105
|
conanfile.folders.set_base_pkg_metadata(os.path.join(conanfile.build_folder, "metadata"))
|
|
105
106
|
run_build_method(conanfile, hook_manager)
|
|
@@ -14,8 +14,9 @@ from conan.internal.util.runners import conan_run
|
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
class ReportAPI:
|
|
17
|
-
def __init__(self, conan_api):
|
|
17
|
+
def __init__(self, conan_api, helpers):
|
|
18
18
|
self.conan_api = conan_api
|
|
19
|
+
self._helpers = helpers
|
|
19
20
|
|
|
20
21
|
def diff(self, old_reference, new_reference, remotes, old_path=None, new_path=None, cwd=None):
|
|
21
22
|
"""
|
|
@@ -36,7 +37,8 @@ class ReportAPI:
|
|
|
36
37
|
export_ref, cache_path = _export_recipe_from_path(self.conan_api, path_to_conanfile,
|
|
37
38
|
reference, remotes, cwd)
|
|
38
39
|
exported_path = self.conan_api.local.get_conanfile_path(cache_path, cwd, py=True)
|
|
39
|
-
_configure_source(self.conan_api, exported_path, export_ref,
|
|
40
|
+
_configure_source(self.conan_api, self._helpers.hook_manager, exported_path, export_ref,
|
|
41
|
+
remotes)
|
|
40
42
|
return export_ref, cache_path
|
|
41
43
|
|
|
42
44
|
|
|
@@ -77,7 +79,7 @@ class ReportAPI:
|
|
|
77
79
|
"dst_prefix": dst_prefix,
|
|
78
80
|
}
|
|
79
81
|
|
|
80
|
-
def _configure_source(conan_api, conanfile_path, ref, remotes):
|
|
82
|
+
def _configure_source(conan_api, hook_manager, conanfile_path, ref, remotes):
|
|
81
83
|
app = ConanApp(conan_api)
|
|
82
84
|
conanfile = app.loader.load_consumer(conanfile_path, name=ref.name, version=str(ref.version),
|
|
83
85
|
user=ref.user, channel=ref.channel, graph_lock=None,
|
|
@@ -97,7 +99,7 @@ def _configure_source(conan_api, conanfile_path, ref, remotes):
|
|
|
97
99
|
conanfile.folders.set_base_source(source_folder)
|
|
98
100
|
conanfile.folders.set_base_export_sources(export_source_folder)
|
|
99
101
|
conanfile.folders.set_base_recipe_metadata(recipe_layout.metadata())
|
|
100
|
-
config_source(export_source_folder, conanfile,
|
|
102
|
+
config_source(export_source_folder, conanfile, hook_manager)
|
|
101
103
|
|
|
102
104
|
def _get_ref_from_cache_or_remote(conan_api, reference, enabled_remotes):
|
|
103
105
|
ref = RecipeReference.loads(reference)
|
|
@@ -38,7 +38,6 @@ def export_pkg(conan_api, parser, *args):
|
|
|
38
38
|
|
|
39
39
|
cwd = os.getcwd()
|
|
40
40
|
path = conan_api.local.get_conanfile_path(args.path, cwd, py=True)
|
|
41
|
-
test_conanfile_path = _get_test_conanfile_path(args.test_folder, path)
|
|
42
41
|
overrides = eval(args.lockfile_overrides) if args.lockfile_overrides else None
|
|
43
42
|
lockfile = conan_api.lockfile.get_lockfile(lockfile=args.lockfile, conanfile_path=path,
|
|
44
43
|
cwd=cwd, partial=args.lockfile_partial,
|
|
@@ -92,6 +91,9 @@ def export_pkg(conan_api, parser, *args):
|
|
|
92
91
|
lockfile = conan_api.lockfile.update_lockfile(lockfile, deps_graph, args.lockfile_packages,
|
|
93
92
|
clean=args.lockfile_clean)
|
|
94
93
|
|
|
94
|
+
test_package_folder = getattr(conanfile, "test_package_folder", None) \
|
|
95
|
+
if args.test_folder is None else args.test_folder
|
|
96
|
+
test_conanfile_path = _get_test_conanfile_path(test_package_folder, path)
|
|
95
97
|
if test_conanfile_path:
|
|
96
98
|
from conan.cli.commands.test import run_test
|
|
97
99
|
# same as ``conan create`` the lockfile, and deps graph is the one of the exported-pkg
|
|
@@ -12,7 +12,7 @@ def new(conan_api, parser, *args):
|
|
|
12
12
|
"either a predefined built-in or a user-provided one. "
|
|
13
13
|
"Available built-in templates: basic, cmake_lib, cmake_exe, header_lib, "
|
|
14
14
|
"meson_lib, meson_exe, msbuild_lib, msbuild_exe, bazel_lib, bazel_exe, "
|
|
15
|
-
"autotools_lib, autotools_exe, local_recipes_index, workspace. "
|
|
15
|
+
"autotools_lib, autotools_exe, premake_lib, premake_exe, local_recipes_index, workspace. "
|
|
16
16
|
"E.g. 'conan new cmake_lib -d name=hello -d version=0.1'. "
|
|
17
17
|
"You can define your own templates too by inputting an absolute path "
|
|
18
18
|
"as your template, or a path relative to your conan home folder."
|
|
@@ -44,7 +44,7 @@ graph_info_html = r"""
|
|
|
44
44
|
<label for="show_package_type">Show package type</label>
|
|
45
45
|
</div>
|
|
46
46
|
<div>
|
|
47
|
-
<input type="search" placeholder="Search packages..." oninput="searchPackages(this)">
|
|
47
|
+
<input type="search" placeholder="Search packages..." oninput="searchPackages(this)" onkeydown="onSearchKeyDown(event)">
|
|
48
48
|
</div>
|
|
49
49
|
<div>
|
|
50
50
|
<input type="search" placeholder="Exclude packages..." title="Add a comma to exclude an additional package" oninput="excludePackages(this)">
|
|
@@ -64,6 +64,7 @@ graph_info_html = r"""
|
|
|
64
64
|
let hide_build = false;
|
|
65
65
|
let hide_test = false;
|
|
66
66
|
let search_pkgs = null;
|
|
67
|
+
let focus_search = false;
|
|
67
68
|
let excluded_pkgs = null;
|
|
68
69
|
let collapse_packages = false;
|
|
69
70
|
let show_package_type = false;
|
|
@@ -135,6 +136,9 @@ graph_info_html = r"""
|
|
|
135
136
|
if (patterns.some(pattern => label.match(pattern))) {
|
|
136
137
|
borderWidth = 3;
|
|
137
138
|
borderColor = "Magenta";
|
|
139
|
+
if (focus_search) {
|
|
140
|
+
focus_search = node_id;
|
|
141
|
+
}
|
|
138
142
|
}
|
|
139
143
|
}
|
|
140
144
|
if (node.test) {
|
|
@@ -312,6 +316,10 @@ graph_info_html = r"""
|
|
|
312
316
|
network.setData(data);
|
|
313
317
|
network.redraw();
|
|
314
318
|
network.moveTo({position: viewPos, scale: scale});
|
|
319
|
+
// If we have found a package to focus, we need to move the view
|
|
320
|
+
if (typeof focus_search === "string") {
|
|
321
|
+
network.focus(focus_search, {animation: true, locked: false});
|
|
322
|
+
}
|
|
315
323
|
}
|
|
316
324
|
function switchBuild() {
|
|
317
325
|
hide_build = !hide_build;
|
|
@@ -325,13 +333,28 @@ graph_info_html = r"""
|
|
|
325
333
|
collapse_packages = !collapse_packages;
|
|
326
334
|
draw();
|
|
327
335
|
}
|
|
336
|
+
const debounce = (func, delay) => {
|
|
337
|
+
let timeout;
|
|
338
|
+
return function(...args) {
|
|
339
|
+
clearTimeout(timeout);
|
|
340
|
+
timeout = setTimeout(() => func.apply(this, args), delay);
|
|
341
|
+
};
|
|
342
|
+
};
|
|
343
|
+
const debouncedDraw = debounce(draw, 300);
|
|
328
344
|
function searchPackages(e) {
|
|
329
345
|
search_pkgs = e.value;
|
|
330
|
-
|
|
346
|
+
debouncedDraw();
|
|
347
|
+
}
|
|
348
|
+
function onSearchKeyDown(event) {
|
|
349
|
+
if (event.key === "Enter") {
|
|
350
|
+
focus_search = true;
|
|
351
|
+
draw();
|
|
352
|
+
focus_search = false;
|
|
353
|
+
}
|
|
331
354
|
}
|
|
332
355
|
function excludePackages(e) {
|
|
333
356
|
excluded_pkgs = e.value;
|
|
334
|
-
|
|
357
|
+
debouncedDraw();
|
|
335
358
|
}
|
|
336
359
|
function showPackageType(e) {
|
|
337
360
|
show_package_type = !show_package_type;
|
|
@@ -32,56 +32,70 @@ diff_html = r"""
|
|
|
32
32
|
}
|
|
33
33
|
</style>
|
|
34
34
|
<script>
|
|
35
|
+
function debounce(func, delay) {
|
|
36
|
+
let timeout;
|
|
37
|
+
return function(...args) {
|
|
38
|
+
const context = this;
|
|
39
|
+
clearTimeout(timeout);
|
|
40
|
+
timeout = setTimeout(() => {
|
|
41
|
+
func.apply(context, args);
|
|
42
|
+
}, delay);
|
|
43
|
+
};
|
|
44
|
+
}
|
|
35
45
|
let includeSearchQuery = "";
|
|
36
46
|
let excludeSearchQuery = "";
|
|
37
47
|
|
|
38
|
-
async function onExcludeSearchInput(event) {
|
|
39
|
-
excludeSearchQuery = event.currentTarget.value.toLowerCase();
|
|
40
|
-
onSearchInput(event);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
async function onIncludeSearchInput(event) {
|
|
44
|
-
includeSearchQuery = event.currentTarget.value.toLowerCase();
|
|
45
|
-
onSearchInput(event);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
48
|
async function onSearchInput(event) {
|
|
49
49
|
const sidebar = document.querySelectorAll(".sidebar li");
|
|
50
50
|
const content = document.querySelectorAll(".content .diff-content");
|
|
51
|
+
const searchingIcon = document.getElementById("searching_icon");
|
|
52
|
+
|
|
53
|
+
searchingIcon.style.display = "inline-block";
|
|
54
|
+
|
|
55
|
+
let emptySearch = true;
|
|
51
56
|
|
|
52
57
|
sidebar.forEach(async function(item) {
|
|
53
58
|
const text = item.textContent.toLowerCase();
|
|
54
59
|
const shouldInclude = includeSearchQuery === "" || text.includes(includeSearchQuery);
|
|
55
60
|
const shouldExclude = excludeSearchQuery !== "" && text.includes(excludeSearchQuery);
|
|
61
|
+
const associatedId = item.querySelector("a").getAttribute("href").substring(1)
|
|
62
|
+
const contentItem = document.getElementById(associatedId);
|
|
56
63
|
|
|
57
64
|
if (shouldInclude) {
|
|
58
65
|
if (shouldExclude) {
|
|
59
66
|
item.style.display = "none";
|
|
67
|
+
contentItem.style.display = "none";
|
|
60
68
|
} else {
|
|
61
69
|
item.style.display = "list-item";
|
|
70
|
+
contentItem.style.display = "block";
|
|
71
|
+
emptySearch = false;
|
|
62
72
|
}
|
|
63
73
|
} else {
|
|
64
74
|
item.style.display = "none";
|
|
75
|
+
contentItem.style.display = "none";
|
|
65
76
|
}
|
|
66
77
|
|
|
67
78
|
});
|
|
68
79
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
80
|
+
searchingIcon.style.display = "none";
|
|
81
|
+
const emptySearchTag = document.getElementById("empty_search");
|
|
82
|
+
if (emptySearch) {
|
|
83
|
+
emptySearchTag.style.display = "block";
|
|
84
|
+
} else {
|
|
85
|
+
emptySearchTag.style.display = "none";
|
|
86
|
+
}
|
|
87
|
+
}
|
|
74
88
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
89
|
+
const debouncedOnSearchInput = debounce(onSearchInput, 500);
|
|
90
|
+
|
|
91
|
+
async function onExcludeSearchInput(event) {
|
|
92
|
+
excludeSearchQuery = event.currentTarget.value.toLowerCase();
|
|
93
|
+
debouncedOnSearchInput(event);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
async function onIncludeSearchInput(event) {
|
|
97
|
+
includeSearchQuery = event.currentTarget.value.toLowerCase();
|
|
98
|
+
debouncedOnSearchInput(event);
|
|
85
99
|
}
|
|
86
100
|
</script>
|
|
87
101
|
</head>
|
|
@@ -96,10 +110,12 @@ diff_html = r"""
|
|
|
96
110
|
<h2>File list:</h2>
|
|
97
111
|
<input type="text" id="search-include" placeholder="Include search..." oninput="onIncludeSearchInput(event)" />
|
|
98
112
|
<input type="text" id="search-exclude" placeholder="Exclude search..." oninput="onExcludeSearchInput(event)" />
|
|
113
|
+
<span id="searching_icon" style="display:none">...</span>
|
|
99
114
|
<ul>
|
|
100
115
|
{%- for filename in content.keys() %}
|
|
101
116
|
<li><a href="#diff_{{- safe_filename(filename) -}}" class="side-link">{{ replace_cache_paths(filename) }}</a></li>
|
|
102
117
|
{%- endfor %}
|
|
118
|
+
<span id="empty_search" style="display:none">No results found</span>
|
|
103
119
|
</ul>
|
|
104
120
|
</div>
|
|
105
121
|
<div class='content'>
|
|
@@ -233,7 +233,7 @@ def detect_libcxx(compiler, version, compiler_exe=None):
|
|
|
233
233
|
old_path = os.getcwd()
|
|
234
234
|
os.chdir(t)
|
|
235
235
|
try:
|
|
236
|
-
error, out_str = detect_runner("
|
|
236
|
+
error, out_str = detect_runner(f'"{executable}" main.cpp -std=c++11')
|
|
237
237
|
if error:
|
|
238
238
|
if "using libstdc++" in out_str:
|
|
239
239
|
output.info("gcc C++ standard library: libstdc++")
|
|
@@ -482,17 +482,16 @@ def _detect_vs_ide_version():
|
|
|
482
482
|
def _cc_compiler(compiler_exe="cc"):
|
|
483
483
|
# Try to detect the "cc" linux system "alternative". It could point to gcc or clang
|
|
484
484
|
try:
|
|
485
|
-
ret, out = detect_runner('
|
|
485
|
+
ret, out = detect_runner(f'"{compiler_exe}" --version')
|
|
486
486
|
if ret != 0:
|
|
487
487
|
return None, None, None
|
|
488
488
|
compiler = "clang" if "clang" in out else "gcc"
|
|
489
489
|
# clang and gcc have version after a space, first try to find that to skip extra numbers
|
|
490
490
|
# that might appear in the first line of the output before the version
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
installed_version = installed_version or re.search(r" ([0-9]+(\.[0-9]+)?)", out)
|
|
491
|
+
# There might also be a leading parenthesis that contains build information, so we try to skip it
|
|
492
|
+
installed_version = re.search(r"(?:\(.*\))? ([0-9]+(\.[0-9]+)*)", out)
|
|
494
493
|
# Fallback to the first number we find optionally followed by other version fields
|
|
495
|
-
installed_version = installed_version or re.search(r"([0-9]+(\.[0-9]+)
|
|
494
|
+
installed_version = installed_version or re.search(r"([0-9]+(\.[0-9]+)*)", out)
|
|
496
495
|
if installed_version and installed_version.group(1):
|
|
497
496
|
installed_version = installed_version.group(1)
|
|
498
497
|
ConanOutput(scope="detect_api").info("Found cc=%s-%s" % (compiler, installed_version))
|
|
@@ -505,13 +504,12 @@ def detect_gcc_compiler(compiler_exe="gcc"):
|
|
|
505
504
|
try:
|
|
506
505
|
if platform.system() == "Darwin":
|
|
507
506
|
# In Mac OS X check if gcc is a fronted using apple-clang
|
|
508
|
-
_, out = detect_runner("
|
|
507
|
+
_, out = detect_runner(f'"{compiler_exe}" --version')
|
|
509
508
|
out = out.lower()
|
|
510
509
|
if "clang" in out:
|
|
511
510
|
return None, None, None
|
|
512
511
|
|
|
513
|
-
|
|
514
|
-
ret, out = detect_runner('%s -dumpversion' % compiler_exe)
|
|
512
|
+
ret, out = detect_runner(f'"{compiler_exe}" -dumpversion')
|
|
515
513
|
if ret != 0:
|
|
516
514
|
return None, None, None
|
|
517
515
|
compiler = "gcc"
|
|
@@ -524,14 +522,15 @@ def detect_gcc_compiler(compiler_exe="gcc"):
|
|
|
524
522
|
|
|
525
523
|
|
|
526
524
|
def detect_compiler():
|
|
527
|
-
ConanOutput(scope="detect_api").warning("detect_compiler() is deprecated,
|
|
525
|
+
ConanOutput(scope="detect_api").warning("detect_compiler() is deprecated, "
|
|
526
|
+
"use detect_default_compiler()", warn_tag="deprecated")
|
|
528
527
|
compiler, version, _ = detect_default_compiler()
|
|
529
528
|
return compiler, version
|
|
530
529
|
|
|
531
530
|
|
|
532
531
|
def detect_intel_compiler(compiler_exe="icx"):
|
|
533
532
|
try:
|
|
534
|
-
ret, out = detect_runner("
|
|
533
|
+
ret, out = detect_runner(f'"{compiler_exe}" --version')
|
|
535
534
|
if ret != 0:
|
|
536
535
|
return None, None
|
|
537
536
|
compiler = "intel-cc"
|
|
@@ -545,7 +544,7 @@ def detect_intel_compiler(compiler_exe="icx"):
|
|
|
545
544
|
|
|
546
545
|
def detect_suncc_compiler(compiler_exe="cc"):
|
|
547
546
|
try:
|
|
548
|
-
_, out = detect_runner('
|
|
547
|
+
_, out = detect_runner(f'"{compiler_exe}" -V')
|
|
549
548
|
compiler = "sun-cc"
|
|
550
549
|
installed_version = re.search(r"Sun C.*([0-9]+\.[0-9]+)", out)
|
|
551
550
|
if installed_version:
|
|
@@ -561,7 +560,7 @@ def detect_suncc_compiler(compiler_exe="cc"):
|
|
|
561
560
|
|
|
562
561
|
def detect_clang_compiler(compiler_exe="clang"):
|
|
563
562
|
try:
|
|
564
|
-
ret, out = detect_runner('
|
|
563
|
+
ret, out = detect_runner(f'"{compiler_exe}" --version')
|
|
565
564
|
if ret != 0:
|
|
566
565
|
return None, None, None
|
|
567
566
|
if "Apple" in out:
|
|
@@ -651,6 +650,6 @@ def detect_sdk_version(sdk):
|
|
|
651
650
|
if platform.system() != "Darwin":
|
|
652
651
|
return
|
|
653
652
|
cmd = f'xcrun -sdk {sdk} --show-sdk-version'
|
|
654
|
-
result =
|
|
653
|
+
_, result = detect_runner(cmd)
|
|
655
654
|
result = result.strip()
|
|
656
655
|
return result
|
|
@@ -20,8 +20,6 @@ class HomePaths:
|
|
|
20
20
|
def global_conf_path(self):
|
|
21
21
|
return os.path.join(self._home, "global.conf")
|
|
22
22
|
|
|
23
|
-
new_config_path = global_conf_path # for not breaking tests, TODO to remove
|
|
24
|
-
|
|
25
23
|
@property
|
|
26
24
|
def deployers_path(self):
|
|
27
25
|
deploy = os.path.join(self._home, _EXTENSIONS_FOLDER, "deploy")
|