Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions scripts/ports.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,9 @@ if(CMD MATCHES "^BUILD$")
if (DEFINED VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS)
file(APPEND ${BUILD_INFO_FILE_PATH} "PolicyAllowRestrictedHeaders: ${VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS}\n")
endif()
if (DEFINED VCPKG_POLICY_SKIP_DUMPBIN_CHECKS)
file(APPEND ${BUILD_INFO_FILE_PATH} "PolicySkipDumpbinChecks: ${VCPKG_POLICY_SKIP_DUMPBIN_CHECKS}\n")
endif()
if (DEFINED VCPKG_HEAD_VERSION)
file(APPEND ${BUILD_INFO_FILE_PATH} "Version: ${VCPKG_HEAD_VERSION}\n")
endif()
Expand Down
2 changes: 2 additions & 0 deletions toolsrc/include/vcpkg/build.h
Original file line number Diff line number Diff line change
Expand Up @@ -240,6 +240,7 @@ namespace vcpkg::Build
EMPTY_INCLUDE_FOLDER,
ALLOW_OBSOLETE_MSVCRT,
ALLOW_RESTRICTED_HEADERS,
SKIP_DUMPBIN_CHECKS,
// Must be last
COUNT,
};
Expand All @@ -252,6 +253,7 @@ namespace vcpkg::Build
BuildPolicy::EMPTY_INCLUDE_FOLDER,
BuildPolicy::ALLOW_OBSOLETE_MSVCRT,
BuildPolicy::ALLOW_RESTRICTED_HEADERS,
BuildPolicy::SKIP_DUMPBIN_CHECKS
};

const std::string& to_string(BuildPolicy policy);
Expand Down
3 changes: 3 additions & 0 deletions toolsrc/src/vcpkg/build.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -173,6 +173,7 @@ namespace vcpkg::Build
static const std::string NAME_EMPTY_INCLUDE_FOLDER = "PolicyEmptyIncludeFolder";
static const std::string NAME_ALLOW_OBSOLETE_MSVCRT = "PolicyAllowObsoleteMsvcrt";
static const std::string NAME_ALLOW_RESTRICTED_HEADERS = "PolicyAllowRestrictedHeaders";
static const std::string NAME_SKIP_DUMPBIN_CHECKS = "PolicySkipDumpbinChecks";

const std::string& to_string(BuildPolicy policy)
{
Expand All @@ -185,6 +186,7 @@ namespace vcpkg::Build
case BuildPolicy::EMPTY_INCLUDE_FOLDER: return NAME_EMPTY_INCLUDE_FOLDER;
case BuildPolicy::ALLOW_OBSOLETE_MSVCRT: return NAME_ALLOW_OBSOLETE_MSVCRT;
case BuildPolicy::ALLOW_RESTRICTED_HEADERS: return NAME_ALLOW_RESTRICTED_HEADERS;
case BuildPolicy::SKIP_DUMPBIN_CHECKS: return NAME_SKIP_DUMPBIN_CHECKS;
default: Checks::unreachable(VCPKG_LINE_INFO);
}
}
Expand All @@ -200,6 +202,7 @@ namespace vcpkg::Build
case BuildPolicy::EMPTY_INCLUDE_FOLDER: return "VCPKG_POLICY_EMPTY_INCLUDE_FOLDER";
case BuildPolicy::ALLOW_OBSOLETE_MSVCRT: return "VCPKG_POLICY_ALLOW_OBSOLETE_MSVCRT";
case BuildPolicy::ALLOW_RESTRICTED_HEADERS: return "VCPKG_POLICY_ALLOW_RESTRICTED_HEADERS";
case BuildPolicy::SKIP_DUMPBIN_CHECKS: return "VCPKG_POLICY_SKIP_DUMPBIN_CHECKS";
default: Checks::unreachable(VCPKG_LINE_INFO);
}
}
Expand Down
17 changes: 7 additions & 10 deletions toolsrc/src/vcpkg/postbuildlint.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ namespace vcpkg::PostBuildLint
System::print2(System::Color::warning,
"Include files should not be duplicated into the /debug/include directory. If this cannot "
"be disabled in the project cmake, use\n"
" file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)\n");
" file(REMOVE_RECURSE \"${CURRENT_PACKAGES_DIR}/debug/include\")\n");
return LintStatus::ERROR_DETECTED;
}

Expand All @@ -215,7 +215,7 @@ namespace vcpkg::PostBuildLint
{
System::print2(System::Color::warning,
"/debug/share should not exist. Please reorganize any important files, then use\n"
" file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share)\n");
" file(REMOVE_RECURSE \"${CURRENT_PACKAGES_DIR}/debug/share\")\n");
return LintStatus::ERROR_DETECTED;
}

Expand Down Expand Up @@ -349,11 +349,8 @@ namespace vcpkg::PostBuildLint
const fs::path relative_path = found_file.string().erase(
0, current_buildtrees_dir.string().size() + 1); // The +1 is needed to remove the "/"
System::printf(
"\n file(COPY ${CURRENT_BUILDTREES_DIR}/%s DESTINATION ${CURRENT_PACKAGES_DIR}/share/%s)\n"
" file(RENAME ${CURRENT_PACKAGES_DIR}/share/%s/%s ${CURRENT_PACKAGES_DIR}/share/%s/copyright)\n",
"\n configure_file(\"${CURRENT_BUILDTREES_DIR}/%s/%s\" \"${CURRENT_PACKAGES_DIR}/share/%s/copyright\" COPYONLY)\n",
relative_path.generic_string(),
spec.name(),
spec.name(),
found_file.filename().generic_string(),
spec.name());
}
Expand Down Expand Up @@ -662,7 +659,7 @@ namespace vcpkg::PostBuildLint
"\n"
R"###( if(VCPKG_LIBRARY_LINKAGE STREQUAL "static"))###"
"\n"
R"###( file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin))###"
R"###( file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin"))###"
"\n"
R"###( endif())###"
"\n\n");
Expand All @@ -689,7 +686,7 @@ namespace vcpkg::PostBuildLint
"If the directories are not needed and their creation cannot be disabled, use something like this in "
"the portfile to remove them:\n"
"\n"
R"###( file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/a/dir ${CURRENT_PACKAGES_DIR}/some/other/dir))###"
R"###( file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/a/dir" "${CURRENT_PACKAGES_DIR}/some/other/dir"))###"
"\n"
"\n"
"\n");
Expand Down Expand Up @@ -903,7 +900,7 @@ namespace vcpkg::PostBuildLint
dlls.insert(dlls.cend(), debug_dlls.cbegin(), debug_dlls.cend());
dlls.insert(dlls.cend(), release_dlls.cbegin(), release_dlls.cend());

if (!toolset.dumpbin.empty())
if (!toolset.dumpbin.empty() && !build_info.policies.is_enabled(BuildPolicy::SKIP_DUMPBIN_CHECKS))
{
error_count += check_exports_of_dlls(build_info.policies, dlls, toolset.dumpbin);
error_count += check_uwp_bit_of_dlls(pre_build_info.cmake_system_name, dlls, toolset.dumpbin);
Expand All @@ -924,7 +921,7 @@ namespace vcpkg::PostBuildLint

error_count += check_bin_folders_are_not_present_in_static_build(fs, package_dir);

if (!toolset.dumpbin.empty())
if (!toolset.dumpbin.empty() && !build_info.policies.is_enabled(BuildPolicy::SKIP_DUMPBIN_CHECKS))
{
if (!build_info.policies.is_enabled(BuildPolicy::ONLY_RELEASE_CRT))
{
Expand Down