aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/include
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2016-11-10 17:52:27 -0800
committerRobert Schumacher <roschuma@microsoft.com>2016-11-10 17:52:27 -0800
commita2b8d5870a8f1f97268cd413d877d79567e2521a (patch)
tree23ca4c456aba53b41f64a6a0273128efb82556db /toolsrc/include
parentbb0fc030d5ea0c0d872b0446e43e28ae927d6885 (diff)
parentd852d3b6f230a55878d7be26fba210cfc67689d1 (diff)
downloadvcpkg-a2b8d5870a8f1f97268cd413d877d79567e2521a.tar.gz
vcpkg-a2b8d5870a8f1f97268cd413d877d79567e2521a.zip
Merge branch 'master' of https://github.com/microsoft/vcpkg
Diffstat (limited to 'toolsrc/include')
-rw-r--r--toolsrc/include/BuildInfo.h75
1 files changed, 71 insertions, 4 deletions
diff --git a/toolsrc/include/BuildInfo.h b/toolsrc/include/BuildInfo.h
index 870001474..22b4bed7d 100644
--- a/toolsrc/include/BuildInfo.h
+++ b/toolsrc/include/BuildInfo.h
@@ -2,6 +2,7 @@
#include <unordered_map>
#include "Paragraphs.h"
+#include <regex>
namespace fs = std::tr2::sys;
@@ -35,23 +36,89 @@ namespace vcpkg
static const BuildType RELEASE_STATIC;
static const BuildType RELEASE_DYNAMIC;
- const ConfigurationType config;
- const LinkageType linkage;
+ static const std::vector<BuildType>& values()
+ {
+ static const std::vector<BuildType> v = {DEBUG_STATIC, DEBUG_DYNAMIC, RELEASE_STATIC, RELEASE_DYNAMIC};
+ return v;
+ }
BuildType() = delete;
- std::string toString() const;
+ const ConfigurationType& config() const;
+ const LinkageType& linkage() const;
+ const std::regex& crt_regex() const;
+ const std::string& toString() const;
private:
- BuildType(const ConfigurationType& config, const LinkageType& linkage) : config(config), linkage(linkage)
+ BuildType(const ConfigurationType& config, const LinkageType& linkage, const std::string& crt_regex_as_string)
+ : m_config(config), m_linkage(linkage), m_crt_regex_as_string(crt_regex_as_string)
{
}
+
+ ConfigurationType m_config;
+ LinkageType m_linkage;
+ std::string m_crt_regex_as_string;
};
bool operator ==(const BuildType& lhs, const BuildType& rhs);
bool operator !=(const BuildType& lhs, const BuildType& rhs);
+ struct OutdatedDynamicCrt
+ {
+ // Old CPP
+ static const OutdatedDynamicCrt MSVCP100_DLL;
+ static const OutdatedDynamicCrt MSVCP100D_DLL;
+ static const OutdatedDynamicCrt MSVCP110_DLL;
+ static const OutdatedDynamicCrt MSVCP110_WIN_DLL;
+ static const OutdatedDynamicCrt MSVCP120_DLL;
+ static const OutdatedDynamicCrt MSVCP120_CLR0400_DLL;
+ static const OutdatedDynamicCrt MSVCP60_DLL;
+ static const OutdatedDynamicCrt MSVCP_WIN_DLL;
+
+ // Old C
+ static const OutdatedDynamicCrt MSVCR100_DLL;
+ static const OutdatedDynamicCrt MSVCR100D_DLL;
+ static const OutdatedDynamicCrt MSVCR100_CLR0400_DLL;
+ static const OutdatedDynamicCrt MSVCR110_DLL;
+ static const OutdatedDynamicCrt MSVCR120_DLL;
+ static const OutdatedDynamicCrt MSVCR120_CLR0400_DLL;
+ static const OutdatedDynamicCrt MSVCRT_DLL;
+ static const OutdatedDynamicCrt MSVCRT20_DLL;
+ static const OutdatedDynamicCrt MSVCRT40_DLL;
+
+ static const std::vector<OutdatedDynamicCrt>& values()
+ {
+ static const std::vector<OutdatedDynamicCrt> v = {
+ MSVCP100_DLL, MSVCP100D_DLL,
+ MSVCP110_DLL,MSVCP110_WIN_DLL,
+ MSVCP120_DLL, MSVCP120_CLR0400_DLL,
+ MSVCP60_DLL,
+ MSVCP_WIN_DLL,
+
+ MSVCR100_DLL, MSVCR100D_DLL, MSVCR100_CLR0400_DLL,
+ MSVCR110_DLL,
+ MSVCR120_DLL, MSVCR120_CLR0400_DLL,
+ MSVCRT_DLL, MSVCRT20_DLL,MSVCRT40_DLL
+ };
+ return v;
+ }
+
+ OutdatedDynamicCrt() = delete;
+
+ const std::regex& crt_regex() const;
+ const std::string& toString() const;
+
+ private:
+ explicit OutdatedDynamicCrt(const std::string& dll_name, const std::string& crt_regex_as_string)
+ : m_dll_name(dll_name), m_crt_regex_as_string(crt_regex_as_string)
+ {
+ }
+
+ std::string m_dll_name;
+ std::string m_crt_regex_as_string;
+ };
+
struct BuildInfo
{
static BuildInfo create(const std::unordered_map<std::string, std::string>& pgh);