mirror of
https://github.com/Kitware/CMake.git
synced 2025-12-31 10:50:16 -06:00
cmScanDepFormat: support the MSVC 17.3 toolchain temporarily
At least until 17.4 is out.
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
|
||||
#include <cctype>
|
||||
#include <cstdio>
|
||||
#include <iostream>
|
||||
#include <utility>
|
||||
|
||||
#include <cm/optional>
|
||||
@@ -280,6 +281,27 @@ bool cmScanDepFormat_P1689_Parse(std::string const& arg_pp,
|
||||
info->Requires.push_back(require_info);
|
||||
}
|
||||
}
|
||||
|
||||
// MSVC 17.3 toolchain bug. Remove when 17.4 is available.
|
||||
if (rule.isMember("is-interface")) {
|
||||
std::cerr
|
||||
<< "warning: acknowledging an VS 17.3 toolchain bug; accepting "
|
||||
"until a new release which fixes it is available"
|
||||
<< std::endl;
|
||||
|
||||
Json::Value const& is_interface_json = rule["is-interface"];
|
||||
if (!is_interface_json.isBool()) {
|
||||
cmSystemTools::Error(
|
||||
cmStrCat("-E cmake_ninja_dyndep failed to parse ", arg_pp,
|
||||
": is-interface is not a boolean"));
|
||||
return false;
|
||||
}
|
||||
bool is_interface = is_interface_json.asBool();
|
||||
|
||||
for (auto& provide : info->Provides) {
|
||||
provide.IsInterface = is_interface;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user