Custom Protobuf Build
Build and Install Protobuf
As Protobuf can be installed easily as binary package in different versions (see Installing the Binary Packages) via appropiate package managing systems, there is no need to build protobuf from source. However, if a custom build is necessary, this section gives instructions, how to compile version 3.11.4. and hook it into the openPASS build. Adjust this guide to your needs.
Download release 3.11.4 from https://github.com/protocolbuffers/protobuf/releases
Extract
for Windows to
C:\OpenPASS\thirdParty\sources\protobuf-cpp-3.11.4
for Linux to
~/OpenPASS/thirdParty/sources/protobuf-cpp-3.11.4
Navigate to the extracted folder
Start
MinGW 64-bit
shellcd /C/OpenPASS/thirdParty/sources/protobuf-cpp-3.11.4
Start
Bash
shellcd ~/OpenPASS/thirdParty/sources/protobuf-cpp-3.11.4
Create build directory
cd cmake mkdir build cd build
Run Cmake
cmake -G "MSYS Makefiles" \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=C:/OpenPASS/thirdParty/protobuf \ -Dprotobuf_BUILD_SHARED_LIBS=ON \ -Dprotobuf_BUILD_TESTS=OFF \ ..
cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=~/OpenPASS/thirdParty/protobuf \ -Dprotobuf_BUILD_SHARED_LIBS=ON \ -Dprotobuf_BUILD_TESTS=OFF \ ..
Note
Tests are disabled due to compiler warnings treated as errors (may vary with compiler version).
Compile
make -j3
Install
make install
Hook Protobuf into OSI
If you want to build and install OSI with a custom build of Protobuf, most of the steps can be followed as described in instruction Build and Install OSI. However, one step must be added.
For all required steps before the following command, see Build and Install OSI.
Additional
CMake
variables have to be set.cmake -G “MSYS Makefiles” \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=C:/OpenPASS/thirdParty/osi \ -DPROTOBUF_INCLUDE_DIR=C:/OpenPASS/thirdParty/protobuf/include \ -DPROTOBUF_PROTOC_EXECUTABLE=C:/OpenPASS/thirdParty/protobuf/bin/protoc.exe \ -DPROTOBUF_LIBRARY=C:/OpenPASS/thirdParty/protobuf/lib/libprotobuf.a \ ..
cmake -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=~/OpenPASS/thirdParty/osi \ -DPROTOBUF_INCLUDE_DIR=~/OpenPASS/thirdParty/protobuf/include \ -DPROTOBUF_PROTOC_EXECUTABLE=~/OpenPASS/thirdParty/protobuf/bin/protoc \ -DPROTOBUF_LIBRARY=~/OpenPASS/thirdParty/protobuf/lib/libprotobuf.a \ ..
For all required steps after this stage, see Build and Install OSI.