aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-11-25 15:25:18 -0800
committerRobert Schumacher <roschuma@microsoft.com>2017-11-25 15:25:18 -0800
commit5335d17f53d491d83d98e80ab0e750ec0f6f430b (patch)
treef1d366671aa5fe7e1a10c6f0b93b52ff72f49666 /toolsrc/src
parent6b64a9adb606ad442e71ba562efd17d42baee3a0 (diff)
downloadvcpkg-5335d17f53d491d83d98e80ab0e750ec0f6f430b.tar.gz
vcpkg-5335d17f53d491d83d98e80ab0e750ec0f6f430b.zip
[vcpkg] Initial experimental support for VCPKG_BUILD_TYPE release
Diffstat (limited to 'toolsrc/src')
-rw-r--r--toolsrc/src/vcpkg/build.cpp14
-rw-r--r--toolsrc/src/vcpkg/postbuildlint.buildtype.cpp2
-rw-r--r--toolsrc/src/vcpkg/postbuildlint.cpp22
3 files changed, 28 insertions, 10 deletions
diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp
index fd605ac08..6ef72b639 100644
--- a/toolsrc/src/vcpkg/build.cpp
+++ b/toolsrc/src/vcpkg/build.cpp
@@ -565,6 +565,20 @@ namespace vcpkg::Build
continue;
}
+ if (variable_name == "VCPKG_BUILD_TYPE")
+ {
+ if (variable_value.empty())
+ pre_build_info.build_type = nullopt;
+ else if (Strings::case_insensitive_ascii_equals(variable_value, "debug"))
+ pre_build_info.build_type = ConfigurationType::DEBUG;
+ else if (Strings::case_insensitive_ascii_equals(variable_value, "release"))
+ pre_build_info.build_type = ConfigurationType::RELEASE;
+ else
+ Checks::exit_with_message(
+ VCPKG_LINE_INFO, "Unknown setting for VCPKG_BUILD_TYPE: %s", variable_value);
+ continue;
+ }
+
Checks::exit_with_message(VCPKG_LINE_INFO, "Unknown variable name %s", line);
}
diff --git a/toolsrc/src/vcpkg/postbuildlint.buildtype.cpp b/toolsrc/src/vcpkg/postbuildlint.buildtype.cpp
index 2baaddb5e..e966ce78a 100644
--- a/toolsrc/src/vcpkg/postbuildlint.buildtype.cpp
+++ b/toolsrc/src/vcpkg/postbuildlint.buildtype.cpp
@@ -3,6 +3,8 @@
#include <vcpkg/base/checks.h>
#include <vcpkg/postbuildlint.buildtype.h>
+using vcpkg::Build::ConfigurationType;
+
namespace vcpkg::PostBuildLint
{
BuildType BuildType::value_of(const ConfigurationType& config, const Build::LinkageType& linkage)
diff --git a/toolsrc/src/vcpkg/postbuildlint.cpp b/toolsrc/src/vcpkg/postbuildlint.cpp
index 10af41bb0..0532bce58 100644
--- a/toolsrc/src/vcpkg/postbuildlint.cpp
+++ b/toolsrc/src/vcpkg/postbuildlint.cpp
@@ -758,7 +758,8 @@ namespace vcpkg::PostBuildLint
std::vector<fs::path> release_libs = fs.get_files_recursive(release_lib_dir);
Util::unstable_keep_if(release_libs, has_extension_pred(fs, ".lib"));
- error_count += check_matching_debug_and_release_binaries(debug_libs, release_libs);
+ if (!pre_build_info.build_type)
+ error_count += check_matching_debug_and_release_binaries(debug_libs, release_libs);
{
std::vector<fs::path> libs;
@@ -777,7 +778,8 @@ namespace vcpkg::PostBuildLint
{
case Build::LinkageType::DYNAMIC:
{
- error_count += check_matching_debug_and_release_binaries(debug_dlls, release_dlls);
+ if (!pre_build_info.build_type)
+ error_count += check_matching_debug_and_release_binaries(debug_dlls, release_dlls);
error_count += check_lib_files_are_available_if_dlls_are_available(
build_info.policies, debug_libs.size(), debug_dlls.size(), debug_lib_dir);
@@ -805,15 +807,15 @@ namespace vcpkg::PostBuildLint
if (!build_info.policies.is_enabled(BuildPolicy::ONLY_RELEASE_CRT))
{
- error_count +=
- check_crt_linkage_of_libs(BuildType::value_of(ConfigurationType::DEBUG, build_info.crt_linkage),
- debug_libs,
- toolset.dumpbin);
+ error_count += check_crt_linkage_of_libs(
+ BuildType::value_of(Build::ConfigurationType::DEBUG, build_info.crt_linkage),
+ debug_libs,
+ toolset.dumpbin);
}
- error_count +=
- check_crt_linkage_of_libs(BuildType::value_of(ConfigurationType::RELEASE, build_info.crt_linkage),
- release_libs,
- toolset.dumpbin);
+ error_count += check_crt_linkage_of_libs(
+ BuildType::value_of(Build::ConfigurationType::RELEASE, build_info.crt_linkage),
+ release_libs,
+ toolset.dumpbin);
break;
}
default: Checks::unreachable(VCPKG_LINE_INFO);