diff options
| author | ras0219 <533828+ras0219@users.noreply.github.com> | 2020-08-22 01:27:40 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-08-22 01:27:40 -0700 |
| commit | 5d331ed5538b36d040e90fdd96a70fa606fe597a (patch) | |
| tree | 8ae699edf55653801a888c50719c2d22d9c6917b /toolsrc/src | |
| parent | 78b66ad5b91fa69b698ac7e0506534cc63565614 (diff) | |
| download | vcpkg-5d331ed5538b36d040e90fdd96a70fa606fe597a.tar.gz vcpkg-5d331ed5538b36d040e90fdd96a70fa606fe597a.zip | |
[vcpkg] Fix editable bug (#12910)
Diffstat (limited to 'toolsrc/src')
| -rw-r--r-- | toolsrc/src/vcpkg/binarycaching.cpp | 2 | ||||
| -rw-r--r-- | toolsrc/src/vcpkg/build.cpp | 5 | ||||
| -rw-r--r-- | toolsrc/src/vcpkg/dependencies.cpp | 5 |
3 files changed, 9 insertions, 3 deletions
diff --git a/toolsrc/src/vcpkg/binarycaching.cpp b/toolsrc/src/vcpkg/binarycaching.cpp index 2cd9d1101..6b17461cc 100644 --- a/toolsrc/src/vcpkg/binarycaching.cpp +++ b/toolsrc/src/vcpkg/binarycaching.cpp @@ -207,7 +207,7 @@ namespace for (auto&& action : plan.install_actions) { - if (action.build_options.editable == Build::Editable::YES) continue; + if (!action.has_package_abi()) continue; auto& spec = action.spec; fs.remove_all(paths.package_dir(spec), VCPKG_LINE_INFO); diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp index 93a21f0cc..a0ff09327 100644 --- a/toolsrc/src/vcpkg/build.cpp +++ b/toolsrc/src/vcpkg/build.cpp @@ -871,6 +871,7 @@ namespace vcpkg::Build abi_tag_entries.emplace_back("features", Strings::join(";", sorted_feature_list)); if (action.build_options.use_head_version == UseHeadVersion::YES) abi_tag_entries.emplace_back("head", ""); + if (action.build_options.editable == Editable::YES) abi_tag_entries.emplace_back("editable", ""); Util::sort(abi_tag_entries); @@ -1019,7 +1020,7 @@ namespace vcpkg::Build std::error_code ec; const fs::path abi_package_dir = paths.package_dir(spec) / "share" / spec.name(); const fs::path abi_file_in_package = paths.package_dir(spec) / "share" / spec.name() / "vcpkg_abi_info.txt"; - if (action.build_options.editable == Build::Editable::NO) + if (action.has_package_abi()) { auto restore = binaries_provider.try_restore(paths, action); if (restore == RestoreResult::build_failed) @@ -1044,7 +1045,7 @@ namespace vcpkg::Build fs.copy_file(abi_file, abi_file_in_package, fs::copy_options::none, ec); Checks::check_exit(VCPKG_LINE_INFO, !ec, "Could not copy into file: %s", fs::u8string(abi_file_in_package)); - if (action.build_options.editable == Build::Editable::NO && result.code == BuildResult::SUCCEEDED) + if (action.has_package_abi() && result.code == BuildResult::SUCCEEDED) { binaries_provider.push_success(paths, action); } diff --git a/toolsrc/src/vcpkg/dependencies.cpp b/toolsrc/src/vcpkg/dependencies.cpp index 04b606028..4d03eb263 100644 --- a/toolsrc/src/vcpkg/dependencies.cpp +++ b/toolsrc/src/vcpkg/dependencies.cpp @@ -421,6 +421,11 @@ namespace vcpkg::Dependencies default: Checks::unreachable(VCPKG_LINE_INFO); } } + bool InstallPlanAction::has_package_abi() const + { + if (!abi_info) return false; + return !abi_info.get()->package_abi.empty(); + } const Build::PreBuildInfo& InstallPlanAction::pre_build_info(LineInfo linfo) const { return *abi_info.value_or_exit(linfo).pre_build_info.get(); |
