diff --git a/toolsrc/include/pch.h b/toolsrc/include/pch.h index 03e3f59f7a1..e23230f6e40 100644 --- a/toolsrc/include/pch.h +++ b/toolsrc/include/pch.h @@ -1,22 +1,12 @@ #pragma once #include +#include #if defined(_WIN32) -#define NOMINMAX -#define WIN32_LEAN_AND_MEAN - -#pragma warning(suppress : 4768) -#include - -#pragma warning(suppress : 4768) -#include - #include #include #include -#else -#include #endif #include @@ -29,13 +19,15 @@ #include #include #include -#define _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING #include + #if VCPKG_USE_STD_FILESYSTEM #include #else +#define _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING #include #endif + #include #include #include @@ -55,11 +47,6 @@ #include #endif -#include -// glibc defines major and minor in sys/types.h, and should not -#undef major -#undef minor - #include #include #include diff --git a/toolsrc/include/vcpkg-test/util.h b/toolsrc/include/vcpkg-test/util.h index b6ea4b01de2..9321f3fd2ec 100644 --- a/toolsrc/include/vcpkg-test/util.h +++ b/toolsrc/include/vcpkg-test/util.h @@ -1,3 +1,5 @@ +#include + #include #include diff --git a/toolsrc/include/vcpkg/base/system_headers.h b/toolsrc/include/vcpkg/base/system_headers.h new file mode 100644 index 00000000000..9af5bfd922d --- /dev/null +++ b/toolsrc/include/vcpkg/base/system_headers.h @@ -0,0 +1,35 @@ +#pragma once + +#if defined(_WIN32) + +#define NOMINMAX +#define WIN32_LEAN_AND_MEAN + +#pragma warning(suppress : 4768) +#include + +#pragma warning(suppress : 4768) +#include + +#else // ^^^^ Windows / Unix vvvv + +// 2020-05-19: workaround for a c standard library bug +// ctermid is not behind an `extern "C"` barrier, so it's linked incorrectly. +// This has been reported; remove it after 2023-05-19 +#if __APPLE__ +extern "C" { +#endif + +#include + +#if __APPLE__ +} +#endif + +#endif + +#include +// glibc defines major and minor in sys/types.h, and should not +#undef major +#undef minor + diff --git a/toolsrc/src/vcpkg-test/system.cpp b/toolsrc/src/vcpkg-test/system.cpp index 6b9dfaf953c..6e87f9b3e81 100644 --- a/toolsrc/src/vcpkg-test/system.cpp +++ b/toolsrc/src/vcpkg-test/system.cpp @@ -1,4 +1,4 @@ -#define _POSIX_C_SOURCE 200112L +#include #include #include @@ -8,14 +8,6 @@ #include #include -#if defined(_WIN32) -#define _NOMINMAX -#define WIN32_LEAN_AND_MEAN -#include -#else -#include -#endif - using vcpkg::Optional; using vcpkg::StringView; using vcpkg::ZStringView; diff --git a/toolsrc/src/vcpkg-test/util.cpp b/toolsrc/src/vcpkg-test/util.cpp index 8ead355f140..ce38e62e4ac 100644 --- a/toolsrc/src/vcpkg-test/util.cpp +++ b/toolsrc/src/vcpkg-test/util.cpp @@ -1,3 +1,5 @@ +#include + #include #include @@ -20,15 +22,13 @@ #define FILESYSTEM_SYMLINK_UNIX 1 #define FILESYSTEM_SYMLINK_NONE 2 -#if defined(__cpp_lib_filesystem) +#if VCPKG_USE_STD_FILESYSTEM #define FILESYSTEM_SYMLINK FILESYSTEM_SYMLINK_STD -#include // required for filesystem::create_{directory_}symlink #elif !defined(_MSC_VER) #define FILESYSTEM_SYMLINK FILESYSTEM_SYMLINK_UNIX -#include #else @@ -169,10 +169,10 @@ namespace vcpkg::Test #if FILESYSTEM_SYMLINK == FILESYSTEM_SYMLINK_STD if (can_create_symlinks()) { - std::filesystem::path targetp = target.native(); - std::filesystem::path filep = file.native(); + fs::path targetp = target.native(); + fs::path filep = file.native(); - std::filesystem::create_symlink(targetp, filep, ec); + fs::stdfs::create_symlink(targetp, filep, ec); } else { diff --git a/toolsrc/src/vcpkg.cpp b/toolsrc/src/vcpkg.cpp index 7f9decce1e5..e1a0a2a0b4c 100644 --- a/toolsrc/src/vcpkg.cpp +++ b/toolsrc/src/vcpkg.cpp @@ -1,17 +1,6 @@ #include -#if defined(_WIN32) -#define NOMINMAX -#define WIN32_LEAN_AND_MEAN -#include - -#pragma warning(push) -#pragma warning(disable : 4768) -#include -#pragma warning(pop) -#else -#include -#endif +#include #include #include diff --git a/toolsrc/src/vcpkg/base/files.cpp b/toolsrc/src/vcpkg/base/files.cpp index 7f4d186161a..0ef2fa99280 100644 --- a/toolsrc/src/vcpkg/base/files.cpp +++ b/toolsrc/src/vcpkg/base/files.cpp @@ -11,9 +11,8 @@ #if !defined(_WIN32) #include #include -#include -#include -#endif // ^^^ !defined(_WIN32) +#endif + #if defined(__linux__) #include #elif defined(__APPLE__) diff --git a/toolsrc/src/vcpkgmetricsuploader.cpp b/toolsrc/src/vcpkgmetricsuploader.cpp index 2239fe75062..95195b3be28 100644 --- a/toolsrc/src/vcpkgmetricsuploader.cpp +++ b/toolsrc/src/vcpkgmetricsuploader.cpp @@ -3,7 +3,8 @@ #include #include -#include +#include +#include using namespace vcpkg;