aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornicole mazzuca <mazzucan@outlook.com>2020-08-10 12:32:34 -0700
committerGitHub <noreply@github.com>2020-08-10 12:32:34 -0700
commit895678db8f8bfc3c1988a118b3bb5a13ea4d5248 (patch)
treef341f05574a16589e7e0ee15446a907e142e679c
parent481738beaeb77bca19ff7fa01b4c02be7fc9deb2 (diff)
downloadvcpkg-895678db8f8bfc3c1988a118b3bb5a13ea4d5248.tar.gz
vcpkg-895678db8f8bfc3c1988a118b3bb5a13ea4d5248.zip
[vcpkg] Rewrite CMake build system to be more target-based (#12698)
* Change to using more target-focused cmake * Add vcpkg_target_add_warning_options * targetify the rest * move the globs together * Force-include pch.h on non-windows * Rename VCPKGLIB_NON_PCH_* to VCPKGLIB_* in globs * Remove `include "pch.h"`s * missed a few lines * fix build * fix CMAKE_CURRENT_SOURCE_DIR * try to fix VCPKG_REQUIRE_LINK_CXXFS * change msvc-stl logic * fix build * CR * clang-format * Apply suggestions from code review Thanks @ras0219! Co-authored-by: JackBoosY <yuzaiyang@beyondsoft.com> Co-authored-by: ras0219 <533828+ras0219@users.noreply.github.com>
-rw-r--r--toolsrc/CMakeLists.txt333
-rw-r--r--toolsrc/cmake/utilities.cmake70
-rw-r--r--toolsrc/src/pch.cpp3
-rw-r--r--toolsrc/src/vcpkg/archives.cpp2
-rw-r--r--toolsrc/src/vcpkg/base/checks.cpp2
-rw-r--r--toolsrc/src/vcpkg/base/chrono.cpp2
-rw-r--r--toolsrc/src/vcpkg/base/cofffilereader.cpp2
-rw-r--r--toolsrc/src/vcpkg/base/downloads.cpp2
-rw-r--r--toolsrc/src/vcpkg/base/enums.cpp2
-rw-r--r--toolsrc/src/vcpkg/base/files.cpp2
-rw-r--r--toolsrc/src/vcpkg/base/hash.cpp2
-rw-r--r--toolsrc/src/vcpkg/base/json.cpp2
-rw-r--r--toolsrc/src/vcpkg/base/machinetype.cpp2
-rw-r--r--toolsrc/src/vcpkg/base/parse.cpp2
-rw-r--r--toolsrc/src/vcpkg/base/strings.cpp2
-rw-r--r--toolsrc/src/vcpkg/base/stringview.cpp2
-rw-r--r--toolsrc/src/vcpkg/base/system.cpp2
-rw-r--r--toolsrc/src/vcpkg/base/system.print.cpp2
-rw-r--r--toolsrc/src/vcpkg/base/system.process.cpp2
-rw-r--r--toolsrc/src/vcpkg/base/unicode.cpp2
-rw-r--r--toolsrc/src/vcpkg/binarycaching.cpp2
-rw-r--r--toolsrc/src/vcpkg/binaryparagraph.cpp2
-rw-r--r--toolsrc/src/vcpkg/build.cpp2
-rw-r--r--toolsrc/src/vcpkg/buildenvironment.cpp2
-rw-r--r--toolsrc/src/vcpkg/cmakevars.cpp2
-rw-r--r--toolsrc/src/vcpkg/commands.autocomplete.cpp2
-rw-r--r--toolsrc/src/vcpkg/commands.buildexternal.cpp2
-rw-r--r--toolsrc/src/vcpkg/commands.cache.cpp2
-rw-r--r--toolsrc/src/vcpkg/commands.ci.cpp2
-rw-r--r--toolsrc/src/vcpkg/commands.ciclean.cpp2
-rw-r--r--toolsrc/src/vcpkg/commands.contact.cpp2
-rw-r--r--toolsrc/src/vcpkg/commands.cpp2
-rw-r--r--toolsrc/src/vcpkg/commands.create.cpp2
-rw-r--r--toolsrc/src/vcpkg/commands.dependinfo.cpp2
-rw-r--r--toolsrc/src/vcpkg/commands.edit.cpp2
-rw-r--r--toolsrc/src/vcpkg/commands.env.cpp2
-rw-r--r--toolsrc/src/vcpkg/commands.fetch.cpp2
-rw-r--r--toolsrc/src/vcpkg/commands.format-manifest.cpp2
-rw-r--r--toolsrc/src/vcpkg/commands.hash.cpp2
-rw-r--r--toolsrc/src/vcpkg/commands.integrate.cpp2
-rw-r--r--toolsrc/src/vcpkg/commands.list.cpp2
-rw-r--r--toolsrc/src/vcpkg/commands.owns.cpp2
-rw-r--r--toolsrc/src/vcpkg/commands.porthistory.cpp2
-rw-r--r--toolsrc/src/vcpkg/commands.portsdiff.cpp2
-rw-r--r--toolsrc/src/vcpkg/commands.search.cpp2
-rw-r--r--toolsrc/src/vcpkg/commands.setinstalled.cpp2
-rw-r--r--toolsrc/src/vcpkg/commands.upgrade.cpp2
-rw-r--r--toolsrc/src/vcpkg/commands.version.cpp2
-rw-r--r--toolsrc/src/vcpkg/commands.xvsinstances.cpp2
-rw-r--r--toolsrc/src/vcpkg/dependencies.cpp2
-rw-r--r--toolsrc/src/vcpkg/export.chocolatey.cpp150
-rw-r--r--toolsrc/src/vcpkg/export.cpp2
-rw-r--r--toolsrc/src/vcpkg/export.ifw.cpp2
-rw-r--r--toolsrc/src/vcpkg/export.prefab.cpp2
-rw-r--r--toolsrc/src/vcpkg/globalstate.cpp2
-rw-r--r--toolsrc/src/vcpkg/help.cpp2
-rw-r--r--toolsrc/src/vcpkg/input.cpp2
-rw-r--r--toolsrc/src/vcpkg/install.cpp2
-rw-r--r--toolsrc/src/vcpkg/metrics.cpp2
-rw-r--r--toolsrc/src/vcpkg/packagespec.cpp2
-rw-r--r--toolsrc/src/vcpkg/paragraphparseresult.cpp2
-rw-r--r--toolsrc/src/vcpkg/paragraphs.cpp2
-rw-r--r--toolsrc/src/vcpkg/platform-expression.cpp2
-rw-r--r--toolsrc/src/vcpkg/portfileprovider.cpp2
-rw-r--r--toolsrc/src/vcpkg/postbuildlint.buildtype.cpp2
-rw-r--r--toolsrc/src/vcpkg/postbuildlint.cpp2
-rw-r--r--toolsrc/src/vcpkg/remove.cpp2
-rw-r--r--toolsrc/src/vcpkg/sourceparagraph.cpp2
-rw-r--r--toolsrc/src/vcpkg/statusparagraph.cpp2
-rw-r--r--toolsrc/src/vcpkg/statusparagraphs.cpp2
-rw-r--r--toolsrc/src/vcpkg/tools.cpp2
-rw-r--r--toolsrc/src/vcpkg/triplet.cpp2
-rw-r--r--toolsrc/src/vcpkg/update.cpp2
-rw-r--r--toolsrc/src/vcpkg/userconfig.cpp2
-rw-r--r--toolsrc/src/vcpkg/vcpkgcmdarguments.cpp2
-rw-r--r--toolsrc/src/vcpkg/vcpkglib.cpp2
-rw-r--r--toolsrc/src/vcpkg/vcpkgpaths.cpp2
-rw-r--r--toolsrc/src/vcpkg/versiont.cpp2
-rw-r--r--toolsrc/src/vcpkg/visualstudio.cpp2
-rw-r--r--toolsrc/windows-bootstrap/vcpkglib/vcpkglib.vcxproj4
80 files changed, 313 insertions, 397 deletions
diff --git a/toolsrc/CMakeLists.txt b/toolsrc/CMakeLists.txt
index 10a280faa..62cb3740d 100644
--- a/toolsrc/CMakeLists.txt
+++ b/toolsrc/CMakeLists.txt
@@ -1,161 +1,172 @@
-cmake_minimum_required(VERSION 3.14)
-
-project(vcpkg CXX)
-include(cmake/utilities.cmake)
-
-# ===============
-# === Options ===
-# ===============
-
-include(CMakeDependentOption)
-
-option(BUILD_TESTING "Option for enabling testing" ON)
-option(VCPKG_DISABLE_METRICS "Option for disabling metrics" OFF)
-option(VCPKG_ALLOW_APPLE_CLANG "Option for allowing apple clang, even versions that we don't know will work" OFF)
-option(VCPKG_DEVELOPMENT_WARNINGS "Option for turning on all warnings" ON)
-option(VCPKG_WARNINGS_AS_ERRORS "Set warnings to be errors" ${VCPKG_DEVELOPMENT_WARNINGS})
-option(VCPKG_BUILD_FUZZING "Option for enabling vcpkg-fuzz support" OFF)
-
-CMAKE_DEPENDENT_OPTION(VCPKG_BUILD_BENCHMARKING "Option for enabling benchmarking" OFF
- "BUILD_TESTING" OFF)
-
-if(WERROR)
- message(DEPRECATION "-DWERROR is no longer a supported flag. It doesn't do anything.")
-endif()
-if(DEFINE_DISABLE_METRICS)
- message(DEPRECATION "DEFINE_DISABLE_METRICS is now called VCPKG_DISABLE_METRICS.")
- set(VCPKG_DISABLE_METRICS ${DEFINE_DISABLE_METRICS} CACHE BOOL "Option for disabling metrics" FORCE)
-endif()
-
-vcpkg_detect_compiler()
-vcpkg_detect_standard_library()
-vcpkg_detect_std_filesystem()
-
-# ======================
-# === Compiler Flags ===
-# ======================
-
-set(CMAKE_CXX_EXTENSIONS OFF)
-set(CMAKE_CXX_STANDARD_REQUIRED ON)
-set(CMAKE_CXX_STANDARD 17)
-
-if(MSVC)
- # either MSVC, or clang-cl
- add_compile_options(-FC)
-
- if (MSVC_VERSION GREATER 1900)
- # Visual Studio 2017 or later
- add_compile_options(-permissive- -utf-8)
- endif()
-
- if(VCPKG_DEVELOPMENT_WARNINGS)
- string(REGEX REPLACE "[-/]W[0-4]" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
-
- add_compile_options(-W4)
- if(VCPKG_COMPILER STREQUAL "clang")
- add_compile_options(-Wmissing-prototypes -Wno-missing-field-initializers)
- else()
- add_compile_options(-analyze)
- endif()
- endif()
-
- if(VCPKG_WARNINGS_AS_ERRORS)
- add_compile_options(-WX)
- endif()
-else()
- if(VCPKG_DEVELOPMENT_WARNINGS)
- add_compile_options(-Wall -Wextra -Wpedantic -Wno-unknown-pragmas -Wno-missing-field-initializers -Wno-redundant-move)
-
- # GCC and clang have different names for the same warning
- if(VCPKG_COMPILER STREQUAL "gcc")
- add_compile_options(-Wmissing-declarations)
- elseif(VCPKG_COMPILER STREQUAL "clang")
- add_compile_options(-Wmissing-prototypes)
- endif()
- endif()
-
- if(VCPKG_WARNINGS_AS_ERRORS)
- add_compile_options(-Werror)
- endif()
-endif()
-
-# ========================
-# === System Libraries ===
-# ========================
-
-set(THREADS_PREFER_PTHREAD_FLAG ON)
-find_package(Threads REQUIRED)
-link_libraries(Threads::Threads)
-
-add_compile_definitions(VCPKG_USE_STD_FILESYSTEM=$<BOOL:${VCPKG_USE_STD_FILESYSTEM}>)
-if(VCPKG_REQUIRE_LINK_CXXFS)
- if(VCPKG_STANDARD_LIBRARY STREQUAL "libstdc++")
- link_libraries(stdc++fs)
- elseif(VCPKG_STANDARD_LIBRARY STREQUAL "libc++")
- link_libraries(c++fs)
- endif()
-endif()
-
-if (MINGW)
- add_compile_definitions(
- UNICODE
- _WIN32_WINNT=0x0601
- WINHTTP_ACCESS_TYPE_AUTOMATIC_PROXY=4
- __fastfail=exit)
- link_libraries(winhttp bcrypt version ole32 uuid)
-endif()
-
-
-# ===============
-# === Targets ===
-# ===============
-
-add_compile_definitions(VCPKG_DISABLE_METRICS=$<BOOL:${VCPKG_DISABLE_METRICS}>)
-include_directories(include)
-file(GLOB_RECURSE VCPKGLIB_SOURCES CONFIGURE_DEPENDS src/vcpkg/*.cpp)
-add_library(vcpkglib OBJECT ${VCPKGLIB_SOURCES})
-
-add_executable(vcpkg src/vcpkg.cpp $<TARGET_OBJECTS:vcpkglib>)
-if(WIN32 AND NOT VCPKG_DISABLE_METRICS)
- add_executable(vcpkgmetricsuploader WIN32 src/vcpkgmetricsuploader.cpp $<TARGET_OBJECTS:vcpkglib>)
-endif()
-
-if (BUILD_TESTING)
- file(GLOB_RECURSE VCPKGTEST_SOURCES CONFIGURE_DEPENDS src/vcpkg-test/*.cpp)
-
- enable_testing()
- add_executable(vcpkg-test ${VCPKGTEST_SOURCES} $<TARGET_OBJECTS:vcpkglib>)
- add_test(NAME default COMMAND vcpkg-test --order rand --rng-seed time)
-
- if (VCPKG_BUILD_BENCHMARKING)
- target_compile_options(vcpkg-test PRIVATE -DCATCH_CONFIG_ENABLE_BENCHMARKING)
- endif()
-endif()
-
-if(VCPKG_BUILD_FUZZING)
- file(GLOB_RECURSE VCPKGFUZZ_SOURCES src/vcpkg-fuzz/*.cpp)
- add_executable(vcpkg-fuzz ${VCPKGFUZZ_SOURCES} $<TARGET_OBJECTS:vcpkglib>)
-endif()
-
-find_program(CLANG_FORMAT clang-format)
-if(CLANG_FORMAT)
- file(GLOB_RECURSE VCPKG_FORMAT_SOURCES CONFIGURE_DEPENDS src/*.cpp include/pch.h include/vcpkg/*.h include/vcpkg-test/*.h)
- add_custom_target(format COMMAND ${CLANG_FORMAT} -i -verbose ${VCPKG_FORMAT_SOURCES})
-endif()
-
-# ===========
-# === PCH ===
-# ===========
-
-if(MSVC)
- get_target_property(_srcs vcpkglib SOURCES)
-
- if(NOT CMAKE_GENERATOR MATCHES "Visual Studio .*")
- set_property(SOURCE src/pch.cpp APPEND PROPERTY OBJECT_OUTPUTS "${CMAKE_CURRENT_BINARY_DIR}/pch.pch")
- set_property(SOURCE ${_srcs} APPEND PROPERTY OBJECT_DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/pch.pch")
- endif()
-
- set_source_files_properties(src/pch.cpp PROPERTIES COMPILE_FLAGS "/Ycpch.h")
- target_sources(vcpkglib PRIVATE src/pch.cpp)
- target_compile_options(vcpkglib PRIVATE /Yupch.h /FIpch.h /Zm200)
-endif()
+cmake_minimum_required(VERSION 3.14)
+
+project(vcpkg CXX)
+include(cmake/utilities.cmake)
+
+# ===============
+# === Options ===
+# ===============
+
+include(CMakeDependentOption)
+
+option(BUILD_TESTING "Option for enabling testing" ON)
+option(VCPKG_DISABLE_METRICS "Option for disabling metrics" OFF)
+option(VCPKG_ALLOW_APPLE_CLANG "Option for allowing apple clang, even versions that we don't know will work" OFF)
+option(VCPKG_DEVELOPMENT_WARNINGS "Option for turning on all warnings" ON)
+option(VCPKG_WARNINGS_AS_ERRORS "Set warnings to be errors" ${VCPKG_DEVELOPMENT_WARNINGS})
+option(VCPKG_BUILD_FUZZING "Option for enabling vcpkg-fuzz support" OFF)
+
+CMAKE_DEPENDENT_OPTION(VCPKG_BUILD_BENCHMARKING "Option for enabling benchmarking" OFF
+ "BUILD_TESTING" OFF)
+
+if(WERROR)
+ message(DEPRECATION "-DWERROR is no longer a supported flag. It doesn't do anything.")
+endif()
+if(DEFINE_DISABLE_METRICS)
+ message(DEPRECATION "DEFINE_DISABLE_METRICS is now called VCPKG_DISABLE_METRICS.")
+ set(VCPKG_DISABLE_METRICS ${DEFINE_DISABLE_METRICS} CACHE BOOL "Option for disabling metrics" FORCE)
+endif()
+
+# =============
+# === Files ===
+# =============
+
+file(GLOB VCPKGLIB_SOURCES CONFIGURE_DEPENDS src/vcpkg/*.cpp)
+file(GLOB VCPKGLIB_BASE_SOURCES CONFIGURE_DEPENDS src/vcpkg/base/*.cpp)
+file(GLOB VCPKGLIB_INCLUDES CONFIGURE_DEPENDS include/vcpkg/*.h)
+file(GLOB VCPKGLIB_BASE_INCLUDES CONFIGURE_DEPENDS include/vcpkg/base/*.h)
+
+set(VCPKG_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/vcpkg.cpp)
+
+set(VCPKGMETRICSUPLOADER_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/src/vcpkgmetricsuploader.cpp)
+
+file(GLOB VCPKG_TEST_SOURCES CONFIGURE_DEPENDS src/vcpkg-test/*.cpp)
+file(GLOB VCPKG_TEST_INCLUDES CONFIGURE_DEPENDS include/vcpkg-test/*.h)
+
+file(GLOB VCPKG_FUZZ_SOURCES CONFIGURE_DEPENDS src/vcpkg-fuzz/*.cpp)
+
+# ========================
+# === System detection ===
+# ========================
+
+vcpkg_detect_compiler()
+vcpkg_detect_standard_library()
+vcpkg_detect_std_filesystem()
+
+set(CMAKE_CXX_EXTENSIONS OFF)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+set(CMAKE_CXX_STANDARD 17)
+if(MSVC)
+ string(REGEX REPLACE "[-/]W[0-4]" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+endif()
+
+# ===============
+# === Targets ===
+# ===============
+
+# === Target: vcpkglib ===
+
+add_library(vcpkglib
+ ${VCPKGLIB_BASE_SOURCES}
+ ${VCPKGLIB_SOURCES}
+ ${VCPKGLIB_BASE_INCLUDES}
+ ${VCPKGLIB_INCLUDES})
+target_include_directories(vcpkglib PUBLIC include)
+
+vcpkg_target_add_warning_options(vcpkglib)
+target_compile_definitions(vcpkglib PUBLIC
+ VCPKG_USE_STD_FILESYSTEM=$<BOOL:${VCPKG_USE_STD_FILESYSTEM}>)
+
+set(THREADS_PREFER_PTHREAD_FLAG ON)
+find_package(Threads REQUIRED)
+target_link_libraries(vcpkglib PRIVATE Threads::Threads)
+
+if(VCPKG_CXXFS_LIBRARY)
+ target_link_libraries(vcpkglib PRIVATE ${VCPKG_CXXFS_LIBRARY})
+endif()
+
+if(MSVC)
+ get_target_property(_srcs vcpkglib SOURCES)
+
+ if(NOT CMAKE_GENERATOR MATCHES "Visual Studio .*")
+ set_property(SOURCE src/pch.cpp APPEND PROPERTY OBJECT_OUTPUTS "${CMAKE_CURRENT_BINARY_DIR}/pch.pch")
+ set_property(SOURCE ${_srcs} APPEND PROPERTY OBJECT_DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/pch.pch")
+ endif()
+
+ set_source_files_properties(src/pch.cpp PROPERTIES COMPILE_FLAGS "/Ycpch.h")
+ target_sources(vcpkglib PRIVATE src/pch.cpp)
+ target_compile_options(vcpkglib PRIVATE /Yupch.h /FIpch.h /Zm200)
+else()
+ target_compile_options(vcpkglib PRIVATE -include "${CMAKE_CURRENT_SOURCE_DIR}/include/pch.h")
+endif()
+
+if (MINGW)
+ target_compile_definitions(vcpkglib
+ PUBLIC
+ UNICODE
+ _WIN32_WINNT=0x0601
+ WINHTTP_ACCESS_TYPE_AUTOMATIC_PROXY=4
+ __fastfail=exit)
+ target_link_libraries(vcpkglib PUBLIC winhttp bcrypt version ole32 uuid)
+endif()
+
+# === Target: vcpkg ===
+
+add_executable(vcpkg ${VCPKG_SOURCES})
+target_link_libraries(vcpkg PRIVATE vcpkglib)
+vcpkg_target_add_warning_options(vcpkg)
+
+# === Target: vcpkgmetricsuploader ===
+
+if(WIN32 AND NOT VCPKG_DISABLE_METRICS)
+ add_executable(vcpkgmetricsuploader WIN32 ${VCPKGMETRICSUPLOADER_SOURCES})
+ target_link_libraries(vcpkgmetricsuploader PRIVATE vcpkglib)
+ vcpkg_target_add_warning_options(vcpkgmetricsuploader)
+endif()
+
+# === Target: vcpkg-test ===
+
+if (BUILD_TESTING)
+ enable_testing()
+
+ add_executable(vcpkg-test
+ ${VCPKG_TEST_SOURCES}
+ ${VCPKG_TEST_INCLUDES})
+ target_link_libraries(vcpkg-test PRIVATE vcpkglib)
+ vcpkg_target_add_warning_options(vcpkg-test)
+
+ add_test(NAME default COMMAND vcpkg-test --order rand --rng-seed time)
+
+ if (VCPKG_BUILD_BENCHMARKING)
+ target_compile_options(vcpkg-test PRIVATE -DCATCH_CONFIG_ENABLE_BENCHMARKING)
+ endif()
+endif()
+
+# === Target: vcpkg-fuzz ===
+
+if(VCPKG_BUILD_FUZZING)
+ add_executable(vcpkg-fuzz ${VCPKG_FUZZ_SOURCES})
+ target_link_libraries(vcpkg-fuzz PRIVATE vcpkglib)
+ vcpkg_target_add_warning_options(vcpkg-fuzz)
+endif()
+
+# === Target: format ===
+
+find_program(CLANG_FORMAT clang-format)
+if(CLANG_FORMAT)
+ add_custom_target(format COMMAND ${CLANG_FORMAT} -i -verbose
+ ${CMAKE_CURRENT_SOURCE_DIR}/src/pch.cpp
+ ${VCPKGLIB_BASE_SOURCES}
+ ${VCPKGLIB_NON_PCH_SOURCES}
+ ${CMAKE_CURRENT_SOURCE_DIR}/include/pch.h
+ ${VCPKGLIB_BASE_INCLUDES}
+ ${VCPKGLIB_NON_PCH_INCLUDES}
+
+ ${VCPKG_SOURCES}
+ ${VCPKGMETRICSUPLOADER_SOURCES}
+
+ ${VCPKG_TEST_SOURCES}
+ ${VCPKG_TEST_INCLUDES}
+
+ ${VCPKG_FUZZ_SOURCES})
+endif()
diff --git a/toolsrc/cmake/utilities.cmake b/toolsrc/cmake/utilities.cmake
index b99063a65..f04c1ddbb 100644
--- a/toolsrc/cmake/utilities.cmake
+++ b/toolsrc/cmake/utilities.cmake
@@ -77,7 +77,7 @@ int main() {}
_VCPKG_STANDARD_LIBRARY_LIBCXX)
check_cxx_source_compiles([[
#include <ciso646>
-#if !defined(_MSVC_STL_VERSION)
+#if !defined(_MSVC_STL_VERSION) && !(defined(_MSC_VER) && _MSC_VER <= 1900)
#error "not MSVC stl"
#endif
int main() {}
@@ -101,7 +101,7 @@ int main() {}
endif()
endfunction()
-# Outputs to Cache: VCPKG_USE_STD_FILESYSTEM, VCPKG_REQUIRE_LINK_CXXFS
+# Outputs to Cache: VCPKG_USE_STD_FILESYSTEM, VCPKG_CXXFS_LIBRARY
function(vcpkg_detect_std_filesystem)
vcpkg_detect_standard_library()
@@ -129,10 +129,14 @@ int main() {}
int main() {}
]]
_VCPKG_USE_STD_FILESYSTEM)
+
+ if(_VCPKG_REQUIRE_LINK_CXXFS)
+ set(_VCPKG_CXXFS_LIBRARY "stdc++fs")
+ endif()
elseif(VCPKG_STANDARD_LIBRARY STREQUAL "libc++")
if(CMAKE_CXX_COMPILER_ID MATCHES "AppleClang")
# AppleClang never requires (or allows) -lc++fs, even with libc++ version 8.0.0
- set(_VCPKG_REQUIRE_LINK_CXXFS OFF)
+ set(_VCPKG_CXXFS_LIBRARY OFF)
else()
check_cxx_source_compiles([[
#include <ciso646>
@@ -142,6 +146,10 @@ int main() {}
int main() {}
]]
_VCPKG_REQUIRE_LINK_CXXFS)
+
+ if(_VCPKG_REQUIRE_LINK_CXXFS)
+ set(_VCPKG_CXXFS_LIBRARY "c++fs")
+ endif()
endif()
# We don't support versions of libc++ < 7.0.0, and libc++ 7.0.0 has <filesystem>
@@ -155,16 +163,16 @@ int main() {}
int main() {}"
_VCPKG_USE_STD_FILESYSTEM)
- set(_VCPKG_REQUIRE_LINK_CXXFS OFF)
+ set(_VCPKG_CXXFS_LIBRARY OFF)
endif()
set(VCPKG_USE_STD_FILESYSTEM ${_VCPKG_USE_STD_FILESYSTEM}
CACHE BOOL
"Whether to use <filesystem>, as opposed to <experimental/filesystem>"
FORCE)
- set(VCPKG_REQUIRE_LINK_CXXFS ${_VCPKG_REQUIRE_LINK_CXXFS}
- CACHE BOOL
- "Whether it's required to pass -l[std]c++fs in order to use <filesystem>"
+ set(VCPKG_CXXFS_LIBRARY ${_VCPKG_CXXFS_LIBRARY}
+ CACHE STRING
+ "Library to link (if any) in order to use <filesystem>"
FORCE)
if(VCPKG_USE_STD_FILESYSTEM)
@@ -172,10 +180,54 @@ int main() {}
else()
set(msg "<experimental/filesystem>")
endif()
- if(VCPKG_REQUIRE_LINK_CXXFS)
- set(msg "${msg} with -l[std]c++fs")
+ if(VCPKG_CXXFS_LIBRARY)
+ set(msg "${msg} with -l${VCPKG_CXXFS_LIBRARY}")
endif()
message(STATUS "Detecting how to use the C++ filesystem library - ${msg}")
endif()
endfunction()
+
+function(vcpkg_target_add_warning_options TARGET)
+ if(MSVC)
+ # either MSVC, or clang-cl
+ target_compile_options(${TARGET} PRIVATE -FC)
+
+ if (MSVC_VERSION GREATER 1900)
+ # Visual Studio 2017 or later
+ target_compile_options(${TARGET} PRIVATE -permissive- -utf-8)
+ endif()
+
+ if(VCPKG_DEVELOPMENT_WARNINGS)
+ target_compile_options(${TARGET} PRIVATE -W4)
+ if(VCPKG_COMPILER STREQUAL "clang")
+ target_compile_options(${TARGET} PRIVATE -Wmissing-prototypes -Wno-missing-field-initializers)
+ else()
+ target_compile_options(${TARGET} PRIVATE -analyze)
+ endif()
+ else()
+ target_compile_options(${TARGET} PRIVATE -W3)
+ endif()
+
+ if(VCPKG_WARNINGS_AS_ERRORS)
+ target_compile_options(${TARGET} PRIVATE -WX)
+ endif()
+ else()
+ if(VCPKG_DEVELOPMENT_WARNINGS)
+ target_compile_options(${TARGET} PRIVATE
+ -Wall -Wextra -Wpedantic
+ -Wno-unknown-pragmas -Wno-missing-field-initializers -Wno-redundant-move)
+
+ # GCC and clang have different names for the same warning
+ if(VCPKG_COMPILER STREQUAL "gcc")
+ target_compile_options(${TARGET} PRIVATE -Wmissing-declarations)
+ elseif(VCPKG_COMPILER STREQUAL "clang")
+ target_compile_options(${TARGET} PRIVATE -Wmissing-prototypes)
+ endif()
+ endif()
+
+ if(VCPKG_WARNINGS_AS_ERRORS)
+ target_compile_options(${TARGET} PRIVATE -Werror)
+ endif()
+ endif()
+endfunction()
diff --git a/toolsrc/src/pch.cpp b/toolsrc/src/pch.cpp
index 17305716a..ebc3d8904 100644
--- a/toolsrc/src/pch.cpp
+++ b/toolsrc/src/pch.cpp
@@ -1 +1,2 @@
-#include "pch.h" \ No newline at end of file
+// This file intentionally left blank. It exists to be a target for pch compilation,
+// but `#include "pch.h"` is already injected by the compiler. \ No newline at end of file
diff --git a/toolsrc/src/vcpkg/archives.cpp b/toolsrc/src/vcpkg/archives.cpp
index ca82b3100..35e6427be 100644
--- a/toolsrc/src/vcpkg/archives.cpp
+++ b/toolsrc/src/vcpkg/archives.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/system.process.h>
#include <vcpkg/archives.h>
diff --git a/toolsrc/src/vcpkg/base/checks.cpp b/toolsrc/src/vcpkg/base/checks.cpp
index 42e0835c6..c0075e33f 100644
--- a/toolsrc/src/vcpkg/base/checks.cpp
+++ b/toolsrc/src/vcpkg/base/checks.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/checks.h>
#include <vcpkg/base/stringview.h>
#include <vcpkg/base/system.debug.h>
diff --git a/toolsrc/src/vcpkg/base/chrono.cpp b/toolsrc/src/vcpkg/base/chrono.cpp
index 86dc590f8..971d5f37e 100644
--- a/toolsrc/src/vcpkg/base/chrono.cpp
+++ b/toolsrc/src/vcpkg/base/chrono.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/checks.h>
#include <vcpkg/base/chrono.h>
diff --git a/toolsrc/src/vcpkg/base/cofffilereader.cpp b/toolsrc/src/vcpkg/base/cofffilereader.cpp
index cb75e0847..30e0f8588 100644
--- a/toolsrc/src/vcpkg/base/cofffilereader.cpp
+++ b/toolsrc/src/vcpkg/base/cofffilereader.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/checks.h>
#include <vcpkg/base/cofffilereader.h>
#include <vcpkg/base/stringliteral.h>
diff --git a/toolsrc/src/vcpkg/base/downloads.cpp b/toolsrc/src/vcpkg/base/downloads.cpp
index 051e8306f..596697499 100644
--- a/toolsrc/src/vcpkg/base/downloads.cpp
+++ b/toolsrc/src/vcpkg/base/downloads.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/downloads.h>
#include <vcpkg/base/hash.h>
#include <vcpkg/base/system.h>
diff --git a/toolsrc/src/vcpkg/base/enums.cpp b/toolsrc/src/vcpkg/base/enums.cpp
index aa124f3aa..8b99ddf7b 100644
--- a/toolsrc/src/vcpkg/base/enums.cpp
+++ b/toolsrc/src/vcpkg/base/enums.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/checks.h>
#include <vcpkg/base/enums.h>
diff --git a/toolsrc/src/vcpkg/base/files.cpp b/toolsrc/src/vcpkg/base/files.cpp
index 59931603b..e4c821eae 100644
--- a/toolsrc/src/vcpkg/base/files.cpp
+++ b/toolsrc/src/vcpkg/base/files.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/files.h>
#include <vcpkg/base/system.debug.h>
#include <vcpkg/base/system.h>
diff --git a/toolsrc/src/vcpkg/base/hash.cpp b/toolsrc/src/vcpkg/base/hash.cpp
index 58e17e1ad..0070a5f72 100644
--- a/toolsrc/src/vcpkg/base/hash.cpp
+++ b/toolsrc/src/vcpkg/base/hash.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/checks.h>
#include <vcpkg/base/hash.h>
#include <vcpkg/base/strings.h>
diff --git a/toolsrc/src/vcpkg/base/json.cpp b/toolsrc/src/vcpkg/base/json.cpp
index 440bc6745..7536e09df 100644
--- a/toolsrc/src/vcpkg/base/json.cpp
+++ b/toolsrc/src/vcpkg/base/json.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/files.h>
#include <vcpkg/base/json.h>
#include <vcpkg/base/system.debug.h>
diff --git a/toolsrc/src/vcpkg/base/machinetype.cpp b/toolsrc/src/vcpkg/base/machinetype.cpp
index 237e1eb8b..243fa7086 100644
--- a/toolsrc/src/vcpkg/base/machinetype.cpp
+++ b/toolsrc/src/vcpkg/base/machinetype.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/checks.h>
#include <vcpkg/base/machinetype.h>
diff --git a/toolsrc/src/vcpkg/base/parse.cpp b/toolsrc/src/vcpkg/base/parse.cpp
index 7d6576f41..cd82f3212 100644
--- a/toolsrc/src/vcpkg/base/parse.cpp
+++ b/toolsrc/src/vcpkg/base/parse.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/parse.h>
#include <vcpkg/base/system.print.h>
#include <vcpkg/base/util.h>
diff --git a/toolsrc/src/vcpkg/base/strings.cpp b/toolsrc/src/vcpkg/base/strings.cpp
index 19b9384e6..8e1bbdc22 100644
--- a/toolsrc/src/vcpkg/base/strings.cpp
+++ b/toolsrc/src/vcpkg/base/strings.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/checks.h>
#include <vcpkg/base/strings.h>
#include <vcpkg/base/util.h>
diff --git a/toolsrc/src/vcpkg/base/stringview.cpp b/toolsrc/src/vcpkg/base/stringview.cpp
index 8ab114a5e..6e03ba543 100644
--- a/toolsrc/src/vcpkg/base/stringview.cpp
+++ b/toolsrc/src/vcpkg/base/stringview.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/checks.h>
#include <vcpkg/base/lineinfo.h>
#include <vcpkg/base/stringview.h>
diff --git a/toolsrc/src/vcpkg/base/system.cpp b/toolsrc/src/vcpkg/base/system.cpp
index d06e338be..800a0a23b 100644
--- a/toolsrc/src/vcpkg/base/system.cpp
+++ b/toolsrc/src/vcpkg/base/system.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/checks.h>
#include <vcpkg/base/chrono.h>
#include <vcpkg/base/system.debug.h>
diff --git a/toolsrc/src/vcpkg/base/system.print.cpp b/toolsrc/src/vcpkg/base/system.print.cpp
index fc8e4184c..885269eef 100644
--- a/toolsrc/src/vcpkg/base/system.print.cpp
+++ b/toolsrc/src/vcpkg/base/system.print.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/system.print.h>
#include <vcpkg/base/util.h>
diff --git a/toolsrc/src/vcpkg/base/system.process.cpp b/toolsrc/src/vcpkg/base/system.process.cpp
index 300e318df..ee2dd1b3f 100644
--- a/toolsrc/src/vcpkg/base/system.process.cpp
+++ b/toolsrc/src/vcpkg/base/system.process.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/checks.h>
#include <vcpkg/base/chrono.h>
#include <vcpkg/base/system.debug.h>
diff --git a/toolsrc/src/vcpkg/base/unicode.cpp b/toolsrc/src/vcpkg/base/unicode.cpp
index 149bad20f..92b964ed8 100644
--- a/toolsrc/src/vcpkg/base/unicode.cpp
+++ b/toolsrc/src/vcpkg/base/unicode.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/checks.h>
#include <vcpkg/base/unicode.h>
diff --git a/toolsrc/src/vcpkg/binarycaching.cpp b/toolsrc/src/vcpkg/binarycaching.cpp
index 75701d7ee..743ce919a 100644
--- a/toolsrc/src/vcpkg/binarycaching.cpp
+++ b/toolsrc/src/vcpkg/binarycaching.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/checks.h>
#include <vcpkg/base/files.h>
#include <vcpkg/base/parse.h>
diff --git a/toolsrc/src/vcpkg/binaryparagraph.cpp b/toolsrc/src/vcpkg/binaryparagraph.cpp
index 0b0819fd7..4d3bcbc97 100644
--- a/toolsrc/src/vcpkg/binaryparagraph.cpp
+++ b/toolsrc/src/vcpkg/binaryparagraph.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/checks.h>
#include <vcpkg/base/system.print.h>
#include <vcpkg/base/util.h>
diff --git a/toolsrc/src/vcpkg/build.cpp b/toolsrc/src/vcpkg/build.cpp
index cfba94b9f..67015fba5 100644
--- a/toolsrc/src/vcpkg/build.cpp
+++ b/toolsrc/src/vcpkg/build.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/cache.h>
#include <vcpkg/base/checks.h>
#include <vcpkg/base/chrono.h>
diff --git a/toolsrc/src/vcpkg/buildenvironment.cpp b/toolsrc/src/vcpkg/buildenvironment.cpp
index 9ef330e66..cab2bf551 100644
--- a/toolsrc/src/vcpkg/buildenvironment.cpp
+++ b/toolsrc/src/vcpkg/buildenvironment.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/buildenvironment.h>
namespace vcpkg
diff --git a/toolsrc/src/vcpkg/cmakevars.cpp b/toolsrc/src/vcpkg/cmakevars.cpp
index ee718d408..7c5078d3b 100644
--- a/toolsrc/src/vcpkg/cmakevars.cpp
+++ b/toolsrc/src/vcpkg/cmakevars.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/hash.h>
#include <vcpkg/base/optional.h>
#include <vcpkg/base/span.h>
diff --git a/toolsrc/src/vcpkg/commands.autocomplete.cpp b/toolsrc/src/vcpkg/commands.autocomplete.cpp
index b035aa3dd..ae01302cb 100644
--- a/toolsrc/src/vcpkg/commands.autocomplete.cpp
+++ b/toolsrc/src/vcpkg/commands.autocomplete.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/system.print.h>
#include <vcpkg/commands.autocomplete.h>
diff --git a/toolsrc/src/vcpkg/commands.buildexternal.cpp b/toolsrc/src/vcpkg/commands.buildexternal.cpp
index 5f2e707c4..028619182 100644
--- a/toolsrc/src/vcpkg/commands.buildexternal.cpp
+++ b/toolsrc/src/vcpkg/commands.buildexternal.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/binarycaching.h>
#include <vcpkg/build.h>
#include <vcpkg/cmakevars.h>
diff --git a/toolsrc/src/vcpkg/commands.cache.cpp b/toolsrc/src/vcpkg/commands.cache.cpp
index 5c2de88b3..555b70859 100644
--- a/toolsrc/src/vcpkg/commands.cache.cpp
+++ b/toolsrc/src/vcpkg/commands.cache.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/files.h>
#include <vcpkg/base/system.print.h>
diff --git a/toolsrc/src/vcpkg/commands.ci.cpp b/toolsrc/src/vcpkg/commands.ci.cpp
index 04633903d..4dffcfd3c 100644
--- a/toolsrc/src/vcpkg/commands.ci.cpp
+++ b/toolsrc/src/vcpkg/commands.ci.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/cache.h>
#include <vcpkg/base/files.h>
#include <vcpkg/base/graphs.h>
diff --git a/toolsrc/src/vcpkg/commands.ciclean.cpp b/toolsrc/src/vcpkg/commands.ciclean.cpp
index 107c8119f..21ae756ed 100644
--- a/toolsrc/src/vcpkg/commands.ciclean.cpp
+++ b/toolsrc/src/vcpkg/commands.ciclean.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/checks.h>
#include <vcpkg/base/files.h>
#include <vcpkg/base/system.print.h>
diff --git a/toolsrc/src/vcpkg/commands.contact.cpp b/toolsrc/src/vcpkg/commands.contact.cpp
index b7ed9a941..2c8c7b1b2 100644
--- a/toolsrc/src/vcpkg/commands.contact.cpp
+++ b/toolsrc/src/vcpkg/commands.contact.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/chrono.h>
#include <vcpkg/base/system.print.h>
#include <vcpkg/base/system.process.h>
diff --git a/toolsrc/src/vcpkg/commands.cpp b/toolsrc/src/vcpkg/commands.cpp
index 9c8950a9b..a455867ed 100644
--- a/toolsrc/src/vcpkg/commands.cpp
+++ b/toolsrc/src/vcpkg/commands.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/system.print.h>
#include <vcpkg/build.h>
diff --git a/toolsrc/src/vcpkg/commands.create.cpp b/toolsrc/src/vcpkg/commands.create.cpp
index 8843a509d..a7cfbc931 100644
--- a/toolsrc/src/vcpkg/commands.create.cpp
+++ b/toolsrc/src/vcpkg/commands.create.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/checks.h>
#include <vcpkg/base/files.h>
diff --git a/toolsrc/src/vcpkg/commands.dependinfo.cpp b/toolsrc/src/vcpkg/commands.dependinfo.cpp
index 77a8c6c4e..0f1e431e5 100644
--- a/toolsrc/src/vcpkg/commands.dependinfo.cpp
+++ b/toolsrc/src/vcpkg/commands.dependinfo.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/strings.h>
#include <vcpkg/base/system.print.h>
#include <vcpkg/base/util.h>
diff --git a/toolsrc/src/vcpkg/commands.edit.cpp b/toolsrc/src/vcpkg/commands.edit.cpp
index fb3b66883..b66e8c680 100644
--- a/toolsrc/src/vcpkg/commands.edit.cpp
+++ b/toolsrc/src/vcpkg/commands.edit.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/strings.h>
#include <vcpkg/base/system.print.h>
#include <vcpkg/base/system.process.h>
diff --git a/toolsrc/src/vcpkg/commands.env.cpp b/toolsrc/src/vcpkg/commands.env.cpp
index f1d84571f..a82523060 100644
--- a/toolsrc/src/vcpkg/commands.env.cpp
+++ b/toolsrc/src/vcpkg/commands.env.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/strings.h>
#include <vcpkg/base/system.process.h>
diff --git a/toolsrc/src/vcpkg/commands.fetch.cpp b/toolsrc/src/vcpkg/commands.fetch.cpp
index 6de20c0b0..ee809bb13 100644
--- a/toolsrc/src/vcpkg/commands.fetch.cpp
+++ b/toolsrc/src/vcpkg/commands.fetch.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/commands.fetch.h>
namespace vcpkg::Commands::Fetch
diff --git a/toolsrc/src/vcpkg/commands.format-manifest.cpp b/toolsrc/src/vcpkg/commands.format-manifest.cpp
index d0eced7ea..656e17996 100644
--- a/toolsrc/src/vcpkg/commands.format-manifest.cpp
+++ b/toolsrc/src/vcpkg/commands.format-manifest.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/checks.h>
#include <vcpkg/base/files.h>
#include <vcpkg/base/json.h>
diff --git a/toolsrc/src/vcpkg/commands.hash.cpp b/toolsrc/src/vcpkg/commands.hash.cpp
index 12ad1554d..d18173335 100644
--- a/toolsrc/src/vcpkg/commands.hash.cpp
+++ b/toolsrc/src/vcpkg/commands.hash.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/hash.h>
#include <vcpkg/commands.hash.h>
diff --git a/toolsrc/src/vcpkg/commands.integrate.cpp b/toolsrc/src/vcpkg/commands.integrate.cpp
index 0bb30cb85..17f3aa350 100644
--- a/toolsrc/src/vcpkg/commands.integrate.cpp
+++ b/toolsrc/src/vcpkg/commands.integrate.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/checks.h>
#include <vcpkg/base/expected.h>
#include <vcpkg/base/files.h>
diff --git a/toolsrc/src/vcpkg/commands.list.cpp b/toolsrc/src/vcpkg/commands.list.cpp
index b271841f4..9385e4423 100644
--- a/toolsrc/src/vcpkg/commands.list.cpp
+++ b/toolsrc/src/vcpkg/commands.list.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/system.print.h>
#include <vcpkg/commands.list.h>
diff --git a/toolsrc/src/vcpkg/commands.owns.cpp b/toolsrc/src/vcpkg/commands.owns.cpp
index 0850b14c9..29cfe3a23 100644
--- a/toolsrc/src/vcpkg/commands.owns.cpp
+++ b/toolsrc/src/vcpkg/commands.owns.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/system.print.h>
#include <vcpkg/commands.owns.h>
diff --git a/toolsrc/src/vcpkg/commands.porthistory.cpp b/toolsrc/src/vcpkg/commands.porthistory.cpp
index c06517f3c..6b6217732 100644
--- a/toolsrc/src/vcpkg/commands.porthistory.cpp
+++ b/toolsrc/src/vcpkg/commands.porthistory.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/system.print.h>
#include <vcpkg/base/system.process.h>
#include <vcpkg/base/util.h>
diff --git a/toolsrc/src/vcpkg/commands.portsdiff.cpp b/toolsrc/src/vcpkg/commands.portsdiff.cpp
index c4d1d2b1e..97e903769 100644
--- a/toolsrc/src/vcpkg/commands.portsdiff.cpp
+++ b/toolsrc/src/vcpkg/commands.portsdiff.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/sortedvector.h>
#include <vcpkg/base/system.print.h>
#include <vcpkg/base/system.process.h>
diff --git a/toolsrc/src/vcpkg/commands.search.cpp b/toolsrc/src/vcpkg/commands.search.cpp
index 1a483a6e1..836acfffe 100644
--- a/toolsrc/src/vcpkg/commands.search.cpp
+++ b/toolsrc/src/vcpkg/commands.search.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/system.print.h>
#include <vcpkg/commands.search.h>
diff --git a/toolsrc/src/vcpkg/commands.setinstalled.cpp b/toolsrc/src/vcpkg/commands.setinstalled.cpp
index a99c3af4a..6ef5099dc 100644
--- a/toolsrc/src/vcpkg/commands.setinstalled.cpp
+++ b/toolsrc/src/vcpkg/commands.setinstalled.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/system.print.h>
#include <vcpkg/binarycaching.h>
diff --git a/toolsrc/src/vcpkg/commands.upgrade.cpp b/toolsrc/src/vcpkg/commands.upgrade.cpp
index f3324f961..391192038 100644
--- a/toolsrc/src/vcpkg/commands.upgrade.cpp
+++ b/toolsrc/src/vcpkg/commands.upgrade.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/system.print.h>
#include <vcpkg/base/util.h>
diff --git a/toolsrc/src/vcpkg/commands.version.cpp b/toolsrc/src/vcpkg/commands.version.cpp
index 2630a18dd..d366a42b8 100644
--- a/toolsrc/src/vcpkg/commands.version.cpp
+++ b/toolsrc/src/vcpkg/commands.version.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/system.print.h>
#include <vcpkg/commands.version.h>
diff --git a/toolsrc/src/vcpkg/commands.xvsinstances.cpp b/toolsrc/src/vcpkg/commands.xvsinstances.cpp
index 589ea73e7..4ad9744c9 100644
--- a/toolsrc/src/vcpkg/commands.xvsinstances.cpp
+++ b/toolsrc/src/vcpkg/commands.xvsinstances.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/system.print.h>
#include <vcpkg/commands.xvsinstances.h>
diff --git a/toolsrc/src/vcpkg/dependencies.cpp b/toolsrc/src/vcpkg/dependencies.cpp
index d4757cfcc..7774424de 100644
--- a/toolsrc/src/vcpkg/dependencies.cpp
+++ b/toolsrc/src/vcpkg/dependencies.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/files.h>
#include <vcpkg/base/graphs.h>
#include <vcpkg/base/strings.h>
diff --git a/toolsrc/src/vcpkg/export.chocolatey.cpp b/toolsrc/src/vcpkg/export.chocolatey.cpp
index 40564ae13..096c99d89 100644
--- a/toolsrc/src/vcpkg/export.chocolatey.cpp
+++ b/toolsrc/src/vcpkg/export.chocolatey.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/system.print.h>
#include <vcpkg/base/system.process.h>
@@ -39,24 +37,24 @@ namespace vcpkg::Export::Chocolatey
const std::map<std::string, std::string>& packages_version,
const Options& chocolatey_options)
{
- static constexpr auto CONTENT_TEMPLATE = R"(<?xml version="1.0" encoding="utf-8"?>
-<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
- <metadata>
- <id>@PACKAGE_ID@</id>
- <version>@PACKAGE_VERSION@</version>
- <authors>@PACKAGE_MAINTAINER@</authors>
- <description><![CDATA[
- @PACKAGE_DESCRIPTION@
- ]]></description>
- <dependencies>
- @PACKAGE_DEPENDENCIES@
- </dependencies>
- </metadata>
- <files>
- <file src="@EXPORTED_ROOT_DIR@\installed\**" target="installed" />
- <file src="@EXPORTED_ROOT_DIR@\tools\**" target="tools" />
- </files>
-</package>
+ static constexpr auto CONTENT_TEMPLATE = R"(<?xml version="1.0" encoding="utf-8"?>
+<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
+ <metadata>
+ <id>@PACKAGE_ID@</id>
+ <version>@PACKAGE_VERSION@</version>
+ <authors>@PACKAGE_MAINTAINER@</authors>
+ <description><![CDATA[
+ @PACKAGE_DESCRIPTION@
+ ]]></description>
+ <dependencies>
+ @PACKAGE_DEPENDENCIES@
+ </dependencies>
+ </metadata>
+ <files>
+ <file src="@EXPORTED_ROOT_DIR@\installed\**" target="installed" />
+ <file src="@EXPORTED_ROOT_DIR@\tools\**" target="tools" />
+ </files>
+</package>
)";
auto package_version = packages_version.find(binary_paragraph.spec.name());
if (package_version == packages_version.end())
@@ -81,68 +79,68 @@ namespace vcpkg::Export::Chocolatey
static std::string create_chocolatey_install_contents()
{
- static constexpr auto CONTENT_TEMPLATE = R"###(
-$ErrorActionPreference = 'Stop';
-
-$packageName= $env:ChocolateyPackageName
-$toolsDir = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
-$rootDir = "$(Split-Path -parent $toolsDir)"
-$installedDir = Join-Path $rootDir 'installed'
-
-$whereToInstall = (pwd).path
-$whereToInstallCache = Join-Path $rootDir 'install.txt'
-Set-Content -Path $whereToInstallCache -Value $whereToInstall
-Copy-Item $installedDir -destination $whereToInstall -recurse -force
+ static constexpr auto CONTENT_TEMPLATE = R"###(
+$ErrorActionPreference = 'Stop';
+
+$packageName= $env:ChocolateyPackageName
+$toolsDir = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
+$rootDir = "$(Split-Path -parent $toolsDir)"
+$installedDir = Join-Path $rootDir 'installed'
+
+$whereToInstall = (pwd).path
+$whereToInstallCache = Join-Path $rootDir 'install.txt'
+Set-Content -Path $whereToInstallCache -Value $whereToInstall
+Copy-Item $installedDir -destination $whereToInstall -recurse -force
)###";
return CONTENT_TEMPLATE;
}
static std::string create_chocolatey_uninstall_contents(const BinaryParagraph& binary_paragraph)
{
- static constexpr auto CONTENT_TEMPLATE = R"###(
-$ErrorActionPreference = 'Stop';
-
-$packageName= $env:ChocolateyPackageName
-$toolsDir = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
-$rootDir = "$(Split-Path -parent $toolsDir)"
-$listFile = Join-Path $rootDir 'installed\vcpkg\info\@PACKAGE_FULLSTEM@.list'
-
-$whereToInstall = $null
-$whereToInstallCache = Join-Path $rootDir 'install.txt'
-Get-Content $whereToInstallCache | Foreach-Object {
- $whereToInstall = $_
-}
-
-$installedDir = Join-Path $whereToInstall 'installed'
-Get-Content $listFile | Foreach-Object {
- $fileToRemove = Join-Path $installedDir $_
- if (Test-Path $fileToRemove -PathType Leaf) {
- Remove-Item $fileToRemove
- }
-}
-
-Get-Content $listFile | Foreach-Object {
- $fileToRemove = Join-Path $installedDir $_
- if (Test-Path $fileToRemove -PathType Container) {
- $folderToDelete = Join-Path $fileToRemove *
- if (-Not (Test-Path $folderToDelete))
- {
- Remove-Item $fileToRemove
- }
- }
-}
-
-$listFileToRemove = Join-Path $whereToInstall 'installed\vcpkg\info\@PACKAGE_FULLSTEM@.list'
-Remove-Item $listFileToRemove
-
-if (Test-Path $installedDir)
-{
- while (
- $empties = Get-ChildItem $installedDir -recurse -Directory | Where-Object {
- $_.GetFiles().Count -eq 0 -and $_.GetDirectories().Count -eq 0
- }
- ) { $empties | Remove-Item }
-}
+ static constexpr auto CONTENT_TEMPLATE = R"###(
+$ErrorActionPreference = 'Stop';
+
+$packageName= $env:ChocolateyPackageName
+$toolsDir = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
+$rootDir = "$(Split-Path -parent $toolsDir)"
+$listFile = Join-Path $rootDir 'installed\vcpkg\info\@PACKAGE_FULLSTEM@.list'
+
+$whereToInstall = $null
+$whereToInstallCache = Join-Path $rootDir 'install.txt'
+Get-Content $whereToInstallCache | Foreach-Object {
+ $whereToInstall = $_
+}
+
+$installedDir = Join-Path $whereToInstall 'installed'
+Get-Content $listFile | Foreach-Object {
+ $fileToRemove = Join-Path $installedDir $_
+ if (Test-Path $fileToRemove -PathType Leaf) {
+ Remove-Item $fileToRemove
+ }
+}
+
+Get-Content $listFile | Foreach-Object {
+ $fileToRemove = Join-Path $installedDir $_
+ if (Test-Path $fileToRemove -PathType Container) {
+ $folderToDelete = Join-Path $fileToRemove *
+ if (-Not (Test-Path $folderToDelete))
+ {
+ Remove-Item $fileToRemove
+ }
+ }
+}
+
+$listFileToRemove = Join-Path $whereToInstall 'installed\vcpkg\info\@PACKAGE_FULLSTEM@.list'
+Remove-Item $listFileToRemove
+
+if (Test-Path $installedDir)
+{
+ while (
+ $empties = Get-ChildItem $installedDir -recurse -Directory | Where-Object {
+ $_.GetFiles().Count -eq 0 -and $_.GetDirectories().Count -eq 0
+ }
+ ) { $empties | Remove-Item }
+}
)###";
std::string chocolatey_uninstall_content =
Strings::replace_all(CONTENT_TEMPLATE, "@PACKAGE_FULLSTEM@", binary_paragraph.fullstem());
diff --git a/toolsrc/src/vcpkg/export.cpp b/toolsrc/src/vcpkg/export.cpp
index a124345a7..39cb9328f 100644
--- a/toolsrc/src/vcpkg/export.cpp
+++ b/toolsrc/src/vcpkg/export.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/stringliteral.h>
#include <vcpkg/base/system.print.h>
#include <vcpkg/base/system.process.h>
diff --git a/toolsrc/src/vcpkg/export.ifw.cpp b/toolsrc/src/vcpkg/export.ifw.cpp
index 8356313cf..512e119b0 100644
--- a/toolsrc/src/vcpkg/export.ifw.cpp
+++ b/toolsrc/src/vcpkg/export.ifw.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/system.print.h>
#include <vcpkg/base/system.process.h>
diff --git a/toolsrc/src/vcpkg/export.prefab.cpp b/toolsrc/src/vcpkg/export.prefab.cpp
index 7dd516ac5..630e20f72 100644
--- a/toolsrc/src/vcpkg/export.prefab.cpp
+++ b/toolsrc/src/vcpkg/export.prefab.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/checks.h>
#include <vcpkg/base/files.h>
#include <vcpkg/base/system.print.h>
diff --git a/toolsrc/src/vcpkg/globalstate.cpp b/toolsrc/src/vcpkg/globalstate.cpp
index 037232f11..b07690bbd 100644
--- a/toolsrc/src/vcpkg/globalstate.cpp
+++ b/toolsrc/src/vcpkg/globalstate.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/globalstate.h>
namespace vcpkg
diff --git a/toolsrc/src/vcpkg/help.cpp b/toolsrc/src/vcpkg/help.cpp
index 856ea5623..1719e5f6c 100644
--- a/toolsrc/src/vcpkg/help.cpp
+++ b/toolsrc/src/vcpkg/help.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/system.print.h>
#include <vcpkg/binarycaching.h>
diff --git a/toolsrc/src/vcpkg/input.cpp b/toolsrc/src/vcpkg/input.cpp
index f9184983c..b82dc44fb 100644
--- a/toolsrc/src/vcpkg/input.cpp
+++ b/toolsrc/src/vcpkg/input.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/system.print.h>
#include <vcpkg/commands.h>
diff --git a/toolsrc/src/vcpkg/install.cpp b/toolsrc/src/vcpkg/install.cpp
index 5cadbd786..ba0285e20 100644
--- a/toolsrc/src/vcpkg/install.cpp
+++ b/toolsrc/src/vcpkg/install.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/files.h>
#include <vcpkg/base/hash.h>
#include <vcpkg/base/system.print.h>
diff --git a/toolsrc/src/vcpkg/metrics.cpp b/toolsrc/src/vcpkg/metrics.cpp
index 49c4f0d0c..79a33a0d7 100644
--- a/toolsrc/src/vcpkg/metrics.cpp
+++ b/toolsrc/src/vcpkg/metrics.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/chrono.h>
#include <vcpkg/base/files.h>
#include <vcpkg/base/hash.h>
diff --git a/toolsrc/src/vcpkg/packagespec.cpp b/toolsrc/src/vcpkg/packagespec.cpp
index c9b6091b8..0feb8412a 100644
--- a/toolsrc/src/vcpkg/packagespec.cpp
+++ b/toolsrc/src/vcpkg/packagespec.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/checks.h>
#include <vcpkg/base/parse.h>
#include <vcpkg/base/util.h>
diff --git a/toolsrc/src/vcpkg/paragraphparseresult.cpp b/toolsrc/src/vcpkg/paragraphparseresult.cpp
index 8bd5c0d7a..1565cbe6a 100644
--- a/toolsrc/src/vcpkg/paragraphparseresult.cpp
+++ b/toolsrc/src/vcpkg/paragraphparseresult.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/checks.h>
#include <vcpkg/paragraphparseresult.h>
diff --git a/toolsrc/src/vcpkg/paragraphs.cpp b/toolsrc/src/vcpkg/paragraphs.cpp
index 20a82ee0c..414c464d0 100644
--- a/toolsrc/src/vcpkg/paragraphs.cpp
+++ b/toolsrc/src/vcpkg/paragraphs.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/files.h>
#include <vcpkg/base/parse.h>
#include <vcpkg/base/system.debug.h>
diff --git a/toolsrc/src/vcpkg/platform-expression.cpp b/toolsrc/src/vcpkg/platform-expression.cpp
index 03bc81367..3490dbbe2 100644
--- a/toolsrc/src/vcpkg/platform-expression.cpp
+++ b/toolsrc/src/vcpkg/platform-expression.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/parse.h>
#include <vcpkg/base/strings.h>
#include <vcpkg/base/system.print.h>
diff --git a/toolsrc/src/vcpkg/portfileprovider.cpp b/toolsrc/src/vcpkg/portfileprovider.cpp
index c0538fdb8..a5806eb83 100644
--- a/toolsrc/src/vcpkg/portfileprovider.cpp
+++ b/toolsrc/src/vcpkg/portfileprovider.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/system.debug.h>
#include <vcpkg/paragraphs.h>
diff --git a/toolsrc/src/vcpkg/postbuildlint.buildtype.cpp b/toolsrc/src/vcpkg/postbuildlint.buildtype.cpp
index e9215ed8c..182625b78 100644
--- a/toolsrc/src/vcpkg/postbuildlint.buildtype.cpp
+++ b/toolsrc/src/vcpkg/postbuildlint.buildtype.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/checks.h>
#include <vcpkg/postbuildlint.buildtype.h>
diff --git a/toolsrc/src/vcpkg/postbuildlint.cpp b/toolsrc/src/vcpkg/postbuildlint.cpp
index f70876c2e..a384cea0a 100644
--- a/toolsrc/src/vcpkg/postbuildlint.cpp
+++ b/toolsrc/src/vcpkg/postbuildlint.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/cofffilereader.h>
#include <vcpkg/base/files.h>
#include <vcpkg/base/system.print.h>
diff --git a/toolsrc/src/vcpkg/remove.cpp b/toolsrc/src/vcpkg/remove.cpp
index 8f6a99262..0d5b84280 100644
--- a/toolsrc/src/vcpkg/remove.cpp
+++ b/toolsrc/src/vcpkg/remove.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/system.print.h>
#include <vcpkg/base/util.h>
diff --git a/toolsrc/src/vcpkg/sourceparagraph.cpp b/toolsrc/src/vcpkg/sourceparagraph.cpp
index 7bd560c8a..a336db7d1 100644
--- a/toolsrc/src/vcpkg/sourceparagraph.cpp
+++ b/toolsrc/src/vcpkg/sourceparagraph.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/checks.h>
#include <vcpkg/base/expected.h>
#include <vcpkg/base/span.h>
diff --git a/toolsrc/src/vcpkg/statusparagraph.cpp b/toolsrc/src/vcpkg/statusparagraph.cpp
index 398129a04..ba4b6f9bd 100644
--- a/toolsrc/src/vcpkg/statusparagraph.cpp
+++ b/toolsrc/src/vcpkg/statusparagraph.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/util.h>
#include <vcpkg/statusparagraph.h>
diff --git a/toolsrc/src/vcpkg/statusparagraphs.cpp b/toolsrc/src/vcpkg/statusparagraphs.cpp
index d282a5ccb..d42174289 100644
--- a/toolsrc/src/vcpkg/statusparagraphs.cpp
+++ b/toolsrc/src/vcpkg/statusparagraphs.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/checks.h>
#include <vcpkg/statusparagraphs.h>
diff --git a/toolsrc/src/vcpkg/tools.cpp b/toolsrc/src/vcpkg/tools.cpp
index 0d3f61757..1d5a682c6 100644
--- a/toolsrc/src/vcpkg/tools.cpp
+++ b/toolsrc/src/vcpkg/tools.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/checks.h>
#include <vcpkg/base/downloads.h>
#include <vcpkg/base/files.h>
diff --git a/toolsrc/src/vcpkg/triplet.cpp b/toolsrc/src/vcpkg/triplet.cpp
index f9438c00a..789943237 100644
--- a/toolsrc/src/vcpkg/triplet.cpp
+++ b/toolsrc/src/vcpkg/triplet.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/strings.h>
#include <vcpkg/triplet.h>
diff --git a/toolsrc/src/vcpkg/update.cpp b/toolsrc/src/vcpkg/update.cpp
index 4c99c6f48..48471e26c 100644
--- a/toolsrc/src/vcpkg/update.cpp
+++ b/toolsrc/src/vcpkg/update.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/system.print.h>
#include <vcpkg/commands.h>
diff --git a/toolsrc/src/vcpkg/userconfig.cpp b/toolsrc/src/vcpkg/userconfig.cpp
index 32588b2bb..5236a3c3b 100644
--- a/toolsrc/src/vcpkg/userconfig.cpp
+++ b/toolsrc/src/vcpkg/userconfig.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/files.h>
#include <vcpkg/base/lazy.h>
#include <vcpkg/base/system.h>
diff --git a/toolsrc/src/vcpkg/vcpkgcmdarguments.cpp b/toolsrc/src/vcpkg/vcpkgcmdarguments.cpp
index e1cc3e741..7354dbae2 100644
--- a/toolsrc/src/vcpkg/vcpkgcmdarguments.cpp
+++ b/toolsrc/src/vcpkg/vcpkgcmdarguments.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/system.debug.h>
#include <vcpkg/base/system.print.h>
diff --git a/toolsrc/src/vcpkg/vcpkglib.cpp b/toolsrc/src/vcpkg/vcpkglib.cpp
index ce9c62734..801e39541 100644
--- a/toolsrc/src/vcpkg/vcpkglib.cpp
+++ b/toolsrc/src/vcpkg/vcpkglib.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/files.h>
#include <vcpkg/base/strings.h>
#include <vcpkg/base/util.h>
diff --git a/toolsrc/src/vcpkg/vcpkgpaths.cpp b/toolsrc/src/vcpkg/vcpkgpaths.cpp
index 4837c4b71..2448d525d 100644
--- a/toolsrc/src/vcpkg/vcpkgpaths.cpp
+++ b/toolsrc/src/vcpkg/vcpkgpaths.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/expected.h>
#include <vcpkg/base/files.h>
#include <vcpkg/base/hash.h>
diff --git a/toolsrc/src/vcpkg/versiont.cpp b/toolsrc/src/vcpkg/versiont.cpp
index b3e5b2590..c419745c2 100644
--- a/toolsrc/src/vcpkg/versiont.cpp
+++ b/toolsrc/src/vcpkg/versiont.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#include <vcpkg/base/strings.h>
#include <vcpkg/versiont.h>
diff --git a/toolsrc/src/vcpkg/visualstudio.cpp b/toolsrc/src/vcpkg/visualstudio.cpp
index a9a5d5565..023844d0b 100644
--- a/toolsrc/src/vcpkg/visualstudio.cpp
+++ b/toolsrc/src/vcpkg/visualstudio.cpp
@@ -1,5 +1,3 @@
-#include "pch.h"
-
#if defined(_WIN32)
#include <vcpkg/base/sortedvector.h>
diff --git a/toolsrc/windows-bootstrap/vcpkglib/vcpkglib.vcxproj b/toolsrc/windows-bootstrap/vcpkglib/vcpkglib.vcxproj
index cd98c2256..2c980039e 100644
--- a/toolsrc/windows-bootstrap/vcpkglib/vcpkglib.vcxproj
+++ b/toolsrc/windows-bootstrap/vcpkglib/vcpkglib.vcxproj
@@ -83,6 +83,7 @@
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+ <ForcedIncludeFiles>pch.h</ForcedIncludeFiles>
<MinimalRebuild>false</MinimalRebuild>
</ClCompile>
</ItemDefinitionGroup>
@@ -97,6 +98,7 @@
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+ <ForcedIncludeFiles>pch.h</ForcedIncludeFiles>
<MinimalRebuild>false</MinimalRebuild>
</ClCompile>
</ItemDefinitionGroup>
@@ -113,6 +115,7 @@
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+ <ForcedIncludeFiles>pch.h</ForcedIncludeFiles>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
@@ -132,6 +135,7 @@
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
+ <ForcedIncludeFiles>pch.h</ForcedIncludeFiles>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>