aboutsummaryrefslogtreecommitdiffhomepage
path: root/Firestore/Protos/build-protos.sh
diff options
context:
space:
mode:
Diffstat (limited to 'Firestore/Protos/build-protos.sh')
-rwxr-xr-xFirestore/Protos/build-protos.sh20
1 files changed, 16 insertions, 4 deletions
diff --git a/Firestore/Protos/build-protos.sh b/Firestore/Protos/build-protos.sh
index d55ed55..2745a41 100755
--- a/Firestore/Protos/build-protos.sh
+++ b/Firestore/Protos/build-protos.sh
@@ -27,24 +27,36 @@ pod update
--nanopb_out="--options-file=protos/%s.options:nanopb" \
`find protos -name *.proto -print | xargs`
-# Remove "well-known" protos from objc. (We get these for free. We only need
-# them for nanopb.)
+# Remove "well-known" protos from objc and cpp. (We get these for free. We only
+# need them for nanopb.)
rm -rf objc/google/protobuf/
+rm -rf cpp/google/protobuf
# If a proto uses a field named 'delete', nanopb happily uses that in the
# message definition. Works fine for C; not so much for C++. Rename uses of this
# to delete_ (which is how protoc does it for c++ files.)
perl -i -pe 's/\bdelete\b/delete_/g' `find nanopb -type f`
+# Rename nanopb's headers from foo.pb.h to foo.nanopb.h. This avoids collisions
+# with libprotobuf.
+for f in $(find nanopb -name \*.pb.h); do
+ mv "$f" "${f%.pb.h}.nanopb.h"
+done
+
+# Adjust include paths to match
+for f in $(find nanopb -name \*.h -or -name \*.c); do
+ perl -i -pe 's/(#include .*)\.pb\.h/\1.nanopb.h/' $f
+done
+
# CocoaPods does not like paths in library imports, flatten them.
-for i in `find objc -name "*.[mh]"` ; do
+for i in $(find objc -name "*.[mh]"); do
perl -i -pe 's#import ".*/#import "#' $i;
done
# Remove the unnecessary extensionRegistry functions.
-for i in `find objc -name "*.[m]" ` ; do
+for i in $(find objc -name "*.[m]"); do
./strip-registry.py $i
done