aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/include/PostBuildLint_BuildType.h
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-02-08 15:12:28 -0800
committerGitHub <noreply@github.com>2017-02-08 15:12:28 -0800
commit7ddae17e2f520e83d25f78c078bf8b8a58fff447 (patch)
tree87e2fc5c57a685367ec051b1efbdeb5d3ab43f4d /toolsrc/include/PostBuildLint_BuildType.h
parent5e588ddb5be9e6e27cebcc3be2e1a27f3ca83a50 (diff)
parenta9f7fc6e90feaad50c1221ef9bd56e2620302215 (diff)
downloadvcpkg-7ddae17e2f520e83d25f78c078bf8b8a58fff447.tar.gz
vcpkg-7ddae17e2f520e83d25f78c078bf8b8a58fff447.zip
Merge branch 'master' into master
Diffstat (limited to 'toolsrc/include/PostBuildLint_BuildType.h')
-rw-r--r--toolsrc/include/PostBuildLint_BuildType.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/toolsrc/include/PostBuildLint_BuildType.h b/toolsrc/include/PostBuildLint_BuildType.h
new file mode 100644
index 000000000..a5cb24f49
--- /dev/null
+++ b/toolsrc/include/PostBuildLint_BuildType.h
@@ -0,0 +1,45 @@
+#pragma once
+#include "PostBuildLint_ConfigurationType.h"
+#include "PostBuildLint_LinkageType.h"
+#include <vector>
+#include <regex>
+
+namespace vcpkg::PostBuildLint
+{
+ struct BuildType
+ {
+ static BuildType value_of(const ConfigurationType& config, const LinkageType& linkage);
+
+ static const BuildType DEBUG_STATIC;
+ static const BuildType DEBUG_DYNAMIC;
+ static const BuildType RELEASE_STATIC;
+ static const BuildType RELEASE_DYNAMIC;
+
+ static const std::vector<BuildType>& values()
+ {
+ static const std::vector<BuildType> v = { DEBUG_STATIC, DEBUG_DYNAMIC, RELEASE_STATIC, RELEASE_DYNAMIC };
+ return v;
+ }
+
+ BuildType() = delete;
+
+ const ConfigurationType& config() const;
+ const LinkageType& linkage() const;
+ std::regex crt_regex() const;
+ std::string toString() const;
+
+ private:
+ 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);
+}