diff --git a/lib/Basic/CMakeLists.txt b/lib/Basic/CMakeLists.txt index 69f8fb3cc9cf6..9815c79aa5ced 100644 --- a/lib/Basic/CMakeLists.txt +++ b/lib/Basic/CMakeLists.txt @@ -3,6 +3,9 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin") set(UUID_INCLUDE "") set(UUID_LIBRARIES "") +elseif(CMAKE_SYSTEM_NAME STREQUAL "Windows") + set(UUID_INCLUDE "") + set(UUID_LIBRARIES "ole32.lib") else() find_package(UUID REQUIRED) set(UUID_INCLUDE "-I${UUID_INCLUDE_DIRS}") diff --git a/lib/Basic/UUID.cpp b/lib/Basic/UUID.cpp index ebf024c6b8c3f..7662036e73927 100644 --- a/lib/Basic/UUID.cpp +++ b/lib/Basic/UUID.cpp @@ -20,7 +20,8 @@ // WIN32 doesn't natively support . Instead, we use Win32 APIs. #if defined(_WIN32) #define WIN32_LEAN_AND_MEAN -#include +#define NOMINMAX +#include #include #else #include @@ -31,7 +32,7 @@ using namespace swift; swift::UUID::UUID(FromRandom_t) { #if defined(_WIN32) ::UUID uuid; - UuidCreate(&uuid); + ::CoCreateGuid(&uuid); memcpy(Value, &uuid, Size); #else @@ -42,7 +43,7 @@ swift::UUID::UUID(FromRandom_t) { swift::UUID::UUID(FromTime_t) { #if defined(_WIN32) ::UUID uuid; - UuidCreate(&uuid); + ::CoCreateGuid(&uuid); memcpy(Value, &uuid, Size); #else