@@ -31,38 +31,40 @@ set OPENSSL_DIR=%cd:\=/%/OpenSSL-Win32
3131
3232@ rem TODO(jtattermusch): add support for GRPC_CPP_DISTRIBTEST_BUILD_COMPILER_JOBS env variable
3333
34+ set VS_GENERATOR = " Visual Studio 15 2017"
35+
3436@ rem Install absl
3537mkdir third_party\abseil-cpp\cmake\build
3638pushd third_party\abseil-cpp\cmake\build
37- cmake -DCMAKE_INSTALL_PREFIX=%INSTALL_DIR% ..\..
39+ cmake -G %VS_GENERATOR% - DCMAKE_INSTALL_PREFIX=%INSTALL_DIR% ..\..
3840cmake --build . --config Release --target install || goto :error
3941popd
4042
4143@ rem Install c-ares
4244mkdir third_party\cares\cares\cmake\build
4345pushd third_party\cares\cares\cmake\build
44- cmake -DCMAKE_INSTALL_PREFIX=%INSTALL_DIR% ..\..
46+ cmake -G %VS_GENERATOR% - DCMAKE_INSTALL_PREFIX=%INSTALL_DIR% ..\..
4547cmake --build . --config Release --target install || goto :error
4648popd
4749
4850@ rem Install protobuf
4951mkdir third_party\protobuf\cmake\build
5052pushd third_party\protobuf\cmake\build
51- cmake -DCMAKE_INSTALL_PREFIX=%INSTALL_DIR% -DZLIB_ROOT=%INSTALL_DIR% -Dprotobuf_MSVC_STATIC_RUNTIME=OFF -Dprotobuf_BUILD_TESTS=OFF ..
53+ cmake -G %VS_GENERATOR% - DCMAKE_INSTALL_PREFIX=%INSTALL_DIR% -DZLIB_ROOT=%INSTALL_DIR% -Dprotobuf_MSVC_STATIC_RUNTIME=OFF -Dprotobuf_BUILD_TESTS=OFF ..
5254cmake --build . --config Release --target install || goto :error
5355popd
5456
5557@ rem Install re2
5658mkdir third_party\re2\cmake\build
5759pushd third_party\re2\cmake\build
58- cmake -DCMAKE_INSTALL_PREFIX=%INSTALL_DIR% ..\..
60+ cmake -G %VS_GENERATOR% - DCMAKE_INSTALL_PREFIX=%INSTALL_DIR% ..\..
5961cmake --build . --config Release --target install || goto :error
6062popd
6163
6264@ rem Install zlib
6365mkdir third_party\zlib\cmake\build
6466pushd third_party\zlib\cmake\build
65- cmake -DCMAKE_INSTALL_PREFIX=%INSTALL_DIR% ..\..
67+ cmake -G %VS_GENERATOR% - DCMAKE_INSTALL_PREFIX=%INSTALL_DIR% ..\..
6668cmake --build . --config Release --target install || goto :error
6769popd
6870
7577git submodule foreach bash -c " cd $toplevel; rm -rf $name"
7678
7779@ rem Install gRPC
80+ @ rem NOTE(jtattermusch): The -DProtobuf_USE_STATIC_LIBS=ON is necessary on cmake3.16+
81+ @ rem since by default "find_package(Protobuf ...)" uses the cmake's builtin
82+ @ rem FindProtobuf.cmake module, which now requires the info whether protobuf
83+ @ rem is to be linked statically.
84+ @ rem See https://github.com/Kitware/CMake/commit/3bbd85d5fffe66181cf16c81b23b2ba50f5387ba
85+ @ rem See https://gitlab.kitware.com/cmake/cmake/-/merge_requests/3555#note_660390
7886mkdir cmake\build
7987pushd cmake\build
8088cmake ^
89+ -G %VS_GENERATOR% ^
8190 -DCMAKE_BUILD_TYPE=Release ^
8291 -DCMAKE_INSTALL_PREFIX=%INSTALL_DIR% ^
8392 -DOPENSSL_ROOT_DIR=%OPENSSL_DIR% ^
@@ -88,6 +97,7 @@ cmake ^
8897 -DgRPC_ABSL_PROVIDER=package ^
8998 -DgRPC_CARES_PROVIDER=package ^
9099 -DgRPC_PROTOBUF_PROVIDER=package ^
100+ -DProtobuf_USE_STATIC_LIBS=ON ^
91101 -DgRPC_RE2_PROVIDER=package ^
92102 -DgRPC_SSL_PROVIDER=package ^
93103 -DgRPC_ZLIB_PROVIDER=package ^
98108@ rem Build helloworld example using cmake
99109mkdir examples\cpp\helloworld\cmake\build
100110pushd examples\cpp\helloworld\cmake\build
101- cmake -DCMAKE_INSTALL_PREFIX=%INSTALL_DIR% -DOPENSSL_ROOT_DIR=%OPENSSL_DIR% -DZLIB_ROOT=%INSTALL_DIR% ../.. || goto :error
111+ cmake -G %VS_GENERATOR% - DCMAKE_INSTALL_PREFIX=%INSTALL_DIR% -DOPENSSL_ROOT_DIR=%OPENSSL_DIR% -DZLIB_ROOT=%INSTALL_DIR% ../.. || goto :error
102112cmake --build . --config Release || goto :error
103113popd
104114
0 commit comments