- Java 8 (since Java 1.5 is no longer supported by modern Maven)
- Use org.xolstice.maven.plugins (the other one is no longer available)
- Upgrade to protobuf-java 3.13.0
Fixes warnings with protobuf >= 3.8.0:
> The optimize_for = LITE_RUNTIME option is no longer supported by protobuf
> Java code generator and is ignored--protoc will always generate full
> runtime code for Java. To use Java Lite runtime, users should use the
> Java Lite plugin instead. See:
> https://github.com/protocolbuffers/protobuf/blob/master/java/lite.md
The osmpbf (1.3.3-1) build for Debian failed on the mipsel architecture.
The Debian package uses parallel builds which caused the following failure:
```
protoc --proto_path=. --cpp_out=. fileformat.proto
protoc --proto_path=. --cpp_out=. osmformat.proto
cp *.pb.h ../include/osmpbf/
cp *.pb.h ../include/osmpbf/
g++ -g -O2 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wall -Wextra -pedantic -Wredundant-decls -Wdisabled-optimization -Wctor-dtor-privacy -Wnon-virtual-dtor -Woverloaded-virtual -Wsign-promo -Wno-long-long -fPIC -c -o osmformat.pb.o osmformat.pb.cc
cp: cannot create regular file '../include/osmpbf/fileformat.pb.h': File exists
```
This change fixes the race condition by copying the header files separately,
instead of copying both header files twice.
With this patch applied, the builds succeeded on all architectures where
OpenJDK 7 is available.
Origin: http://anonscm.debian.org/gitweb/?p=pkg-grass/osmpbf.git;a=commitdiff;h=adcf891b95609e375130438dc431e96017bbbbf8
This brings the debian build more in line with the actual released debian
packages which split up the program into three packages.
The tools Makefile has more warnings enabled.
The README goes into a bit more detail.
These pragmas are used by the IWYU (Include-What-You-Use) program to find out
which header files need to be included in your C/C++ program. The pragmas
added tell IWYU that osmpbf.h acts as a "facade" for the other header files.