mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-14 01:19:02 +08:00
2fda34be1f
This PR includes the following changes that are required to get gRPC to build for ARM/ARM64 on Windows 1) Updated to v1.20.1 2) Disables Codegen Build for ARM/ARM64 builds 3) Rebased the "Fix UWP" patch so that it will apply properly 4) Fixed the "Static Linking in Linux" patch because it specified an invalid option on Windows builds 5) Added patch to "#undef" a macro name collision 6) Added GDI32.lib to the list of standard libraries linked to Windows
149 lines
4.3 KiB
Diff
149 lines
4.3 KiB
Diff
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
index 8ba68c4a13..258a1609f6 100644
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -90,6 +90,9 @@ if(UNIX)
|
|
endif()
|
|
if(WIN32)
|
|
set(_gRPC_PLATFORM_WINDOWS ON)
|
|
+ if(CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
|
|
+ set(_gRPC_PLATFORM_UWP ON)
|
|
+ endif()
|
|
endif()
|
|
|
|
set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
|
|
@@ -107,6 +110,9 @@ if (MSVC)
|
|
add_definitions(/wd4267)
|
|
# TODO(jtattermusch): needed to build boringssl with VS2017, revisit later
|
|
add_definitions(/wd4987 /wd4774 /wd4819 /wd4996 /wd4619)
|
|
+ if(_gRPC_PLATFORM_UWP)
|
|
+ add_definitions(-DGRPC_ARES=0)
|
|
+ endif()
|
|
endif()
|
|
|
|
if (gRPC_USE_PROTO_LITE)
|
|
@@ -177,6 +183,10 @@ file(MAKE_DIRECTORY ${_gRPC_PROTO_GENS_DIR})
|
|
# ``.proto`` files
|
|
#
|
|
function(protobuf_generate_grpc_cpp)
|
|
+ if(_gRPC_PLATFORM_UWP)
|
|
+ return()
|
|
+ endif()
|
|
+
|
|
if(NOT ARGN)
|
|
message(SEND_ERROR "Error: PROTOBUF_GENERATE_GRPC_CPP() called without any proto files")
|
|
return()
|
|
@@ -218,6 +228,7 @@ function(protobuf_generate_grpc_cpp)
|
|
endforeach()
|
|
endfunction()
|
|
|
|
+if(NOT _gRPC_PLATFORM_UWP)
|
|
add_custom_target(plugins
|
|
DEPENDS
|
|
grpc_cpp_plugin
|
|
@@ -247,6 +258,8 @@ add_custom_target(tools_cxx
|
|
add_custom_target(tools
|
|
DEPENDS tools_c tools_cxx)
|
|
|
|
+endif()
|
|
+
|
|
if (gRPC_BUILD_TESTS)
|
|
add_custom_target(buildtests_c)
|
|
add_dependencies(buildtests_c algorithm_test)
|
|
@@ -4029,7 +4042,6 @@ foreach(_hdr
|
|
DESTINATION "${gRPC_INSTALL_INCLUDEDIR}/${_path}"
|
|
)
|
|
endforeach()
|
|
-endif (gRPC_BUILD_CODEGEN)
|
|
|
|
if (gRPC_BUILD_CODEGEN)
|
|
|
|
@@ -4040,6 +4052,7 @@ if (gRPC_INSTALL)
|
|
ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
|
|
)
|
|
endif()
|
|
+endif (gRPC_BUILD_CODEGEN)
|
|
|
|
endif (gRPC_BUILD_CODEGEN)
|
|
if (gRPC_BUILD_TESTS)
|
|
@@ -4163,7 +4176,7 @@ foreach(_hdr
|
|
DESTINATION "${gRPC_INSTALL_INCLUDEDIR}/${_path}"
|
|
)
|
|
endforeach()
|
|
-endif (gRPC_BUILD_CODEGEN)
|
|
+
|
|
|
|
if (gRPC_BUILD_CODEGEN)
|
|
|
|
@@ -4174,6 +4187,7 @@ if (gRPC_INSTALL)
|
|
ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
|
|
)
|
|
endif()
|
|
+endif (gRPC_BUILD_CODEGEN)
|
|
|
|
endif (gRPC_BUILD_CODEGEN)
|
|
if (gRPC_BUILD_TESTS)
|
|
@@ -5196,7 +5210,6 @@ foreach(_hdr
|
|
DESTINATION "${gRPC_INSTALL_INCLUDEDIR}/${_path}"
|
|
)
|
|
endforeach()
|
|
-endif (gRPC_BUILD_CODEGEN)
|
|
|
|
if (gRPC_BUILD_CODEGEN)
|
|
|
|
@@ -5207,6 +5220,7 @@ if (gRPC_INSTALL)
|
|
ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
|
|
)
|
|
endif()
|
|
+endif (gRPC_BUILD_CODEGEN)
|
|
|
|
endif (gRPC_BUILD_CODEGEN)
|
|
if (gRPC_BUILD_TESTS)
|
|
diff --git a/src/core/lib/iomgr/resource_quota.cc b/src/core/lib/iomgr/resource_quota.cc
|
|
index dffac348c5..a59becb046 100644
|
|
--- a/src/core/lib/iomgr/resource_quota.cc
|
|
+++ b/src/core/lib/iomgr/resource_quota.cc
|
|
@@ -940,7 +940,7 @@ void grpc_resource_user_alloc(grpc_resource_user* resource_user, size_t size,
|
|
void grpc_resource_user_free(grpc_resource_user* resource_user, size_t size) {
|
|
gpr_mu_lock(&resource_user->mu);
|
|
grpc_resource_quota* resource_quota = resource_user->resource_quota;
|
|
- gpr_atm prior = gpr_atm_no_barrier_fetch_add(&resource_quota->used, -size);
|
|
+ gpr_atm prior = gpr_atm_no_barrier_fetch_add(&resource_quota->used, -static_cast<gpr_atm>(size));
|
|
GPR_ASSERT(prior >= static_cast<long>(size));
|
|
bool was_zero_or_negative = resource_user->free_pool <= 0;
|
|
resource_user->free_pool += static_cast<int64_t>(size);
|
|
diff --git a/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc b/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc
|
|
index 55efe0e9dd..f538f26edf 100644
|
|
--- a/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc
|
|
+++ b/src/core/lib/security/credentials/alts/check_gcp_environment_windows.cc
|
|
@@ -60,6 +60,8 @@ bool check_bios_data(const char* bios_data_file) {
|
|
|
|
static void init_mu(void) { gpr_mu_init(&g_mu); }
|
|
|
|
+#if !defined(WINAPI_FAMILY) || WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP
|
|
+
|
|
static bool run_powershell() {
|
|
SECURITY_ATTRIBUTES sa;
|
|
sa.nLength = sizeof(sa);
|
|
@@ -97,8 +99,12 @@ static bool run_powershell() {
|
|
CloseHandle(h);
|
|
return true;
|
|
}
|
|
+#endif
|
|
|
|
bool grpc_alts_is_running_on_gcp() {
|
|
+#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY != WINAPI_FAMILY_DESKTOP_APP)
|
|
+ g_is_on_compute_engine = false;
|
|
+#else
|
|
gpr_once_init(&g_once, init_mu);
|
|
gpr_mu_lock(&g_mu);
|
|
if (!g_compute_engine_detection_done) {
|
|
@@ -108,6 +114,7 @@ bool grpc_alts_is_running_on_gcp() {
|
|
g_compute_engine_detection_done = true;
|
|
}
|
|
gpr_mu_unlock(&g_mu);
|
|
+#endif
|
|
return g_is_on_compute_engine;
|
|
}
|
|
|