diff options
Diffstat (limited to 'toolsrc/include')
| -rw-r--r-- | toolsrc/include/pch.h | 21 | ||||
| -rw-r--r-- | toolsrc/include/vcpkg-test/util.h | 2 | ||||
| -rw-r--r-- | toolsrc/include/vcpkg/base/system_headers.h | 35 |
3 files changed, 41 insertions, 17 deletions
diff --git a/toolsrc/include/pch.h b/toolsrc/include/pch.h index 03e3f59f7..e23230f6e 100644 --- a/toolsrc/include/pch.h +++ b/toolsrc/include/pch.h @@ -1,22 +1,12 @@ #pragma once #include <vcpkg/base/pragmas.h> +#include <vcpkg/base/system_headers.h> #if defined(_WIN32) -#define NOMINMAX -#define WIN32_LEAN_AND_MEAN - -#pragma warning(suppress : 4768) -#include <windows.h> - -#pragma warning(suppress : 4768) -#include <Shlobj.h> - #include <process.h> #include <shellapi.h> #include <winhttp.h> -#else -#include <unistd.h> #endif #include <algorithm> @@ -29,13 +19,15 @@ #include <cstdarg> #include <cstddef> #include <cstdint> -#define _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING #include <cstring> + #if VCPKG_USE_STD_FILESYSTEM #include <filesystem> #else +#define _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING #include <experimental/filesystem> #endif + #include <fstream> #include <functional> #include <iomanip> @@ -55,11 +47,6 @@ #include <sys/time.h> #endif -#include <sys/types.h> -// glibc defines major and minor in sys/types.h, and should not -#undef major -#undef minor - #include <system_error> #include <thread> #include <time.h> diff --git a/toolsrc/include/vcpkg-test/util.h b/toolsrc/include/vcpkg-test/util.h index b6ea4b01d..9321f3fd2 100644 --- a/toolsrc/include/vcpkg-test/util.h +++ b/toolsrc/include/vcpkg-test/util.h @@ -1,3 +1,5 @@ +#include <vcpkg/base/system_headers.h> + #include <catch2/catch.hpp> #include <vcpkg/base/pragmas.h> diff --git a/toolsrc/include/vcpkg/base/system_headers.h b/toolsrc/include/vcpkg/base/system_headers.h new file mode 100644 index 000000000..9af5bfd92 --- /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 <windows.h> + +#pragma warning(suppress : 4768) +#include <Shlobj.h> + +#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 <unistd.h> + +#if __APPLE__ +} +#endif + +#endif + +#include <sys/types.h> +// glibc defines major and minor in sys/types.h, and should not +#undef major +#undef minor + |
