mirror of https://github.com/grpc/grpc-java.git
Update Windows building instructions for proto3b1
This commit is contained in:
parent
ea4eed57b9
commit
d04994f044
15
COMPILING.md
15
COMPILING.md
|
|
@ -48,8 +48,8 @@ environment variables will be used when building grpc-java.
|
||||||
|
|
||||||
Protobuf installs to ``/usr/local`` by default.
|
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 Visual C++, please refer to the [Protobuf README](https://github.com/google/protobuf/blob/master/cmake/README.md)
|
||||||
for how to compile Protobuf.
|
for how to compile Protobuf. gRPC-java assumes a Release build.
|
||||||
|
|
||||||
#### Linux and MinGW
|
#### Linux and MinGW
|
||||||
If ``/usr/local/lib`` is not in your library search path, you can add it by running:
|
If ``/usr/local/lib`` is not in your library search path, you can add it by running:
|
||||||
|
|
@ -73,7 +73,8 @@ Gradle to find protobuf:
|
||||||
```
|
```
|
||||||
.\gradlew install ^
|
.\gradlew install ^
|
||||||
-PvcProtobufInclude=C:\path\to\protobuf-3.0.0-beta-1\src ^
|
-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
|
Since specifying those properties every build is bothersome, you can instead
|
||||||
|
|
@ -81,11 +82,13 @@ create ``<project-root>\gradle.properties`` with contents like:
|
||||||
```
|
```
|
||||||
vcProtobufInclude=C:\\path\\to\\protobuf-3.0.0-beta-1\\src
|
vcProtobufInclude=C:\\path\\to\\protobuf-3.0.0-beta-1\\src
|
||||||
vcProtobufLibs=C:\\path\\to\\protobuf-3.0.0-beta-1\\vsprojects\\Release
|
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
|
By default, the build script will build the codegen for the same architecture as
|
||||||
runtime installed on your system. If you are using 64-bit JVM, the codegen will
|
the Java runtime installed on your system. If you are using 64-bit JVM, the
|
||||||
be compiled for 64-bit, that means you must have compiled Protobuf in 64-bit.
|
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
|
### Notes for MinGW on Windows
|
||||||
If you have both MinGW and VC++ installed on Windows, VC++ will be used by
|
If you have both MinGW and VC++ installed on Windows, VC++ will be used by
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
@ -153,7 +153,7 @@ binaries.all {
|
||||||
}
|
}
|
||||||
addEnvArgs("LDFLAGS", linker.args)
|
addEnvArgs("LDFLAGS", linker.args)
|
||||||
} else if (toolChain in VisualCpp) {
|
} else if (toolChain in VisualCpp) {
|
||||||
cppCompiler.args "/EHsc", "/MD"
|
cppCompiler.args "/EHsc", "/MT"
|
||||||
if (rootProject.hasProperty('vcProtobufInclude')) {
|
if (rootProject.hasProperty('vcProtobufInclude')) {
|
||||||
cppCompiler.args "/I${rootProject.vcProtobufInclude}"
|
cppCompiler.args "/I${rootProject.vcProtobufInclude}"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue