aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/PostBuildLint.cpp
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-05-22 20:49:15 -0700
committerRobert Schumacher <roschuma@microsoft.com>2017-05-22 20:49:15 -0700
commitf9d0ee313c815f7d2b322f0c68d20b539465ce38 (patch)
tree434974b968cebf791aa528e787c2307109e19d08 /toolsrc/src/PostBuildLint.cpp
parent3dd8bde9bdb46e3c501db5a123cb1431c701f2a1 (diff)
downloadvcpkg-f9d0ee313c815f7d2b322f0c68d20b539465ce38.tar.gz
vcpkg-f9d0ee313c815f7d2b322f0c68d20b539465ce38.zip
[vcpkg] Avoid modifying static globals after initialization
Diffstat (limited to 'toolsrc/src/PostBuildLint.cpp')
-rw-r--r--toolsrc/src/PostBuildLint.cpp43
1 files changed, 25 insertions, 18 deletions
diff --git a/toolsrc/src/PostBuildLint.cpp b/toolsrc/src/PostBuildLint.cpp
index a8365e109..4491f3f2e 100644
--- a/toolsrc/src/PostBuildLint.cpp
+++ b/toolsrc/src/PostBuildLint.cpp
@@ -48,27 +48,34 @@ namespace vcpkg::PostBuildLint
const std::vector<OutdatedDynamicCrt>& get_outdated_dynamic_crts(const std::map<BuildPolicies, bool>& policies)
{
- static std::vector<OutdatedDynamicCrt> v = {{"msvcp100.dll", R"(msvcp100\.dll)"},
- {"msvcp100d.dll", R"(msvcp100d\.dll)"},
- {"msvcp110.dll", R"(msvcp110\.dll)"},
- {"msvcp110_win.dll", R"(msvcp110_win\.dll)"},
- {"msvcp120.dll", R"(msvcp120\.dll)"},
- {"msvcp120_clr0400.dll", R"(msvcp120_clr0400\.dll)"},
- {"msvcp60.dll", R"(msvcp60\.dll)"},
- {"msvcp60.dll", R"(msvcp60\.dll)"},
-
- {"msvcr100.dll", R"(msvcr100\.dll)"},
- {"msvcr100d.dll", R"(msvcr100d\.dll)"},
- {"msvcr100_clr0400.dll", R"(msvcr100_clr0400\.dll)"},
- {"msvcr110.dll", R"(msvcr110\.dll)"},
- {"msvcr120.dll", R"(msvcr120\.dll)"},
- {"msvcr120_clr0400.dll", R"(msvcr120_clr0400\.dll)"},
- {"msvcrt20.dll", R"(msvcrt20\.dll)"},
- {"msvcrt40.dll", R"(msvcrt40\.dll)"}};
+ static const std::vector<OutdatedDynamicCrt> v_no_msvcrt = {
+ {"msvcp100.dll", R"(msvcp100\.dll)"},
+ {"msvcp100d.dll", R"(msvcp100d\.dll)"},
+ {"msvcp110.dll", R"(msvcp110\.dll)"},
+ {"msvcp110_win.dll", R"(msvcp110_win\.dll)"},
+ {"msvcp120.dll", R"(msvcp120\.dll)"},
+ {"msvcp120_clr0400.dll", R"(msvcp120_clr0400\.dll)"},
+ {"msvcp60.dll", R"(msvcp60\.dll)"},
+ {"msvcp60.dll", R"(msvcp60\.dll)"},
+
+ {"msvcr100.dll", R"(msvcr100\.dll)"},
+ {"msvcr100d.dll", R"(msvcr100d\.dll)"},
+ {"msvcr100_clr0400.dll", R"(msvcr100_clr0400\.dll)"},
+ {"msvcr110.dll", R"(msvcr110\.dll)"},
+ {"msvcr120.dll", R"(msvcr120\.dll)"},
+ {"msvcr120_clr0400.dll", R"(msvcr120_clr0400\.dll)"},
+ {"msvcrt20.dll", R"(msvcrt20\.dll)"},
+ {"msvcrt40.dll", R"(msvcrt40\.dll)"}};
+
+ static const std::vector<OutdatedDynamicCrt> v = [&]() {
+ auto ret = v_no_msvcrt;
+ ret.push_back(OutdatedDynamicCrt{"msvcrt.dll", R"(msvcrt\.dll)"});
+ return ret;
+ }();
if (contains_and_enabled(policies, BuildPoliciesC::ALLOW_OBSOLETE_MSVCRT))
{
- v.push_back(OutdatedDynamicCrt{"msvcrt.dll", R"(msvcrt\.dll)"});
+ return v_no_msvcrt;
}
return v;