Update Windows building instructions for proto3b1
diff --git a/COMPILING.md b/COMPILING.md
index 7ac36dd..fd7251a 100644
--- a/COMPILING.md
+++ b/COMPILING.md
@@ -48,8 +48,8 @@
Protobuf installs to ``/usr/local`` by default.
-For Visual C++, please refer to the [Protobuf README](https://github.com/google/protobuf/blob/master/vsprojects/readme.txt)
-for how to compile Protobuf.
+For Visual C++, please refer to the [Protobuf README](https://github.com/google/protobuf/blob/master/cmake/README.md)
+for how to compile Protobuf. gRPC-java assumes a Release build.
#### Linux and MinGW
If ``/usr/local/lib`` is not in your library search path, you can add it by running:
@@ -73,7 +73,8 @@
```
.\gradlew install ^
-PvcProtobufInclude=C:\path\to\protobuf-3.0.0-beta-1\src ^
- -PvcProtobufLibs=C:\path\to\protobuf-3.0.0-beta-1\vsprojects\Release
+ -PvcProtobufLibs=C:\path\to\protobuf-3.0.0-beta-1\vsprojects\Release ^
+ -PtargetArch=x86_32
```
Since specifying those properties every build is bothersome, you can instead
@@ -81,11 +82,13 @@
```
vcProtobufInclude=C:\\path\\to\\protobuf-3.0.0-beta-1\\src
vcProtobufLibs=C:\\path\\to\\protobuf-3.0.0-beta-1\\vsprojects\\Release
+targetArch=x86_32
```
-The build script will build the codegen for the same architecture as the Java
-runtime installed on your system. If you are using 64-bit JVM, the codegen will
-be compiled for 64-bit, that means you must have compiled Protobuf in 64-bit.
+By default, the build script will build the codegen for the same architecture as
+the Java runtime installed on your system. If you are using 64-bit JVM, the
+codegen will be compiled for 64-bit. Since Protobuf is only built for 32-bit by
+default, the `targetArch=x86_32` is necessary.
### Notes for MinGW on Windows
If you have both MinGW and VC++ installed on Windows, VC++ will be used by
diff --git a/buildscripts/make_dependencies.bat b/buildscripts/make_dependencies.bat
new file mode 100644
index 0000000..630deb9
--- /dev/null
+++ b/buildscripts/make_dependencies.bat
@@ -0,0 +1,43 @@
+REM installer http://www.7-zip.org/a/7z1507-x64.exe
+REM 7za is in http://www.7-zip.org/a/7z1507-extra.7z
+
+REM Prerequisite: 7za.exe in current directory or PATH
+
+set PROTOBUF_VER=3.0.0-beta-1
+set CMAKE_NAME=cmake-3.3.2-win32-x86
+
+if not exist "protobuf-%PROTOBUF_VER%\cmake\Release\" (
+ call :installProto
+)
+set PROTOCDIR=%cd%\protobuf-%PROTOBUF_VER%\cmake\Release\
+goto :eof
+
+
+:installProto
+
+if not exist "%CMAKE_NAME%" (
+ call :installCmake
+)
+set PATH=%PATH%;%cd%\%CMAKE_NAME%\bin
+powershell -command "& { iwr https://github.com/google/protobuf/archive/v%PROTOBUF_VER%.zip -OutFile protobuf.zip }"
+7za X protobuf.zip
+del protobuf.zip
+pushd protobuf-3.0.0-beta-1\cmake
+mkdir build
+cd build
+cmake -DBUILD_TESTING=OFF ..
+msbuild /maxcpucount /p:Configuration=Release libprotoc.vcxproj
+call extract_includes.bat
+popd
+goto :eof
+
+
+:installCmake
+
+powershell -command "& { iwr https://cmake.org/files/v3.3/%CMAKE_NAME%.zip -OutFile cmake.zip }"
+7za X cmake.zip
+del cmake.zip
+goto :eof
+
+REM Compile gRPC-Java with something like:
+REM -PtargetArch=x86_32 -PvcProtobufLibs=%cd%\protobuf-3.0.0-beta-1\cmake\build\Release -PvcProtobufInclude=%cd%\protobuf-3.0.0-beta-1\cmake\build\include
diff --git a/compiler/build.gradle b/compiler/build.gradle
index 738b4e1..3af17a6 100644
--- a/compiler/build.gradle
+++ b/compiler/build.gradle
@@ -153,7 +153,7 @@
}
addEnvArgs("LDFLAGS", linker.args)
} else if (toolChain in VisualCpp) {
- cppCompiler.args "/EHsc", "/MD"
+ cppCompiler.args "/EHsc", "/MT"
if (rootProject.hasProperty('vcProtobufInclude')) {
cppCompiler.args "/I${rootProject.vcProtobufInclude}"
}