Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -328,3 +328,5 @@ replace google.golang.org/genproto/googleapis/rpc => google.golang.org/genproto/
replace github.com/btcsuite/btcutil => github.com/btcsuite/btcd/btcutil v1.1.5

replace github.com/dsoprea/go-jpeg-image-structure/v2 => github.com/dchesterton/go-jpeg-image-structure/v2 v2.0.0-20240318203529-c3eea088bd38

replace nhooyr.io/websocket => github.com/coder/websocket v1.8.7
5 changes: 2 additions & 3 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,8 @@ github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnht
github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk=
github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8=
github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI=
github.com/coder/websocket v1.8.7 h1:jiep6gmlfP/yq2w1gBoubJEXL9gf8x3bp6lzzX8nJxE=
github.com/coder/websocket v1.8.7/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0=
github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
github.com/coreos/go-systemd/v22 v22.3.3-0.20220203105225-a9a7ef127534/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
Expand Down Expand Up @@ -1666,9 +1668,6 @@ modernc.org/strutil v1.2.1 h1:UneZBkQA+DX2Rp35KcM69cSsNES9ly8mQWD71HKlOA0=
modernc.org/strutil v1.2.1/go.mod h1:EHkiggD70koQxjVdSBM3JKM7k6L0FbGE5eymy9i3B9A=
modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y=
modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=
nhooyr.io/websocket v1.8.6/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0=
nhooyr.io/websocket v1.8.7 h1:usjR2uOr/zjjkVMy0lW+PPohFok7PCow5sDjLgX4P4g=
nhooyr.io/websocket v1.8.7/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0=
nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50=
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
Expand Down
101 changes: 87 additions & 14 deletions makefiles/setup.mk
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,17 @@ setup: setup-go

setup-network-config:
ifdef ANYENV
@echo "ANYENV is now deprecated. Use ANY_SYNC_NETWORK instead."
@exit 1;
@echo "ANYENV is now deprecated. Use ANY_SYNC_NETWORK instead."
@exit 1;
endif
@if [ -z "$$ANY_SYNC_NETWORK" ]; then \
echo "Using the default production Any Sync Network"; \
@if [ -z "$$ANY_SYNC_NETWORK" ]; then \
echo "Using the default production Any Sync Network"; \
elif [ ! -e "$$ANY_SYNC_NETWORK" ]; then \
echo "Network configuration file not found at $$ANY_SYNC_NETWORK"; \
exit 1; \
echo "Network configuration file not found at $$ANY_SYNC_NETWORK"; \
exit 1; \
else \
echo "Using Any Sync Network configuration at $$ANY_SYNC_NETWORK"; \
cp $$ANY_SYNC_NETWORK $(CUSTOM_NETWORK_FILE); \
echo "Using Any Sync Network configuration at $$ANY_SYNC_NETWORK"; \
cp $$ANY_SYNC_NETWORK $(CUSTOM_NETWORK_FILE); \
fi

setup-go: setup-network-config check-tantivy-version
Expand All @@ -25,11 +25,84 @@ setup-gomobile:
go build -o deps golang.org/x/mobile/cmd/gomobile
go build -o deps golang.org/x/mobile/cmd/gobind

setup-protoc-go:
@echo 'Setting up protobuf compiler...'
go build -o deps github.com/gogo/protobuf/protoc-gen-gogofaster
go build -o deps github.com/gogo/protobuf/protoc-gen-gogofast
go build -o deps github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc
setup-protoc-base:
@echo "Checking protoc installation..."
@if ! command -v protoc >/dev/null 2>&1; then \
echo "Installing protoc..."; \
case "$$(uname -s)" in \
Linux) \
if command -v dnf >/dev/null 2>&1; then \
sudo dnf install -y protobuf-compiler protobuf-devel && \
PROTOC_ZIP=protoc-3.19.4-linux-x86_64.zip && \
curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v3.19.4/$$PROTOC_ZIP && \
sudo unzip -o $$PROTOC_ZIP -d /usr/local bin/protoc && \
sudo unzip -o $$PROTOC_ZIP -d /usr/local 'include/*' && \
rm -f $$PROTOC_ZIP; \
else \
sudo apt-get update && \
sudo apt-get install -y protobuf-compiler libprotobuf-dev libprotoc-dev && \
PROTOC_ZIP=protoc-3.19.4-linux-x86_64.zip && \
curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v3.19.4/$$PROTOC_ZIP && \
sudo unzip -o $$PROTOC_ZIP -d /usr/local bin/protoc && \
sudo unzip -o $$PROTOC_ZIP -d /usr/local 'include/*' && \
rm -f $$PROTOC_ZIP; \
fi ;; \
Darwin) \
brew install protobuf && \
brew install protobuf-c ;; \
*) \
echo "Unsupported platform" && exit 1 ;; \
esac \
fi

setup-protoc-deps:
@echo "Installing Go protoc plugins..."
@go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28
@go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2
@go install github.com/gogo/protobuf/protoc-gen-gogofaster@latest
@go install github.com/gogo/protobuf/protoc-gen-gogofast@latest
@go install github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc@latest

setup-protoc-go: setup-protoc-deps
@echo 'Setting up protobuf compiler...'
go build -o deps github.com/gogo/protobuf/protoc-gen-gogofaster
go build -o deps github.com/gogo/protobuf/protoc-gen-gogofast
go build -o deps github.com/pseudomuto/protoc-gen-doc/cmd/protoc-gen-doc

setup-protoc-jsweb:
@echo "Installing grpc-web plugin dependencies..."
@case "$$(uname -s)" in \
Linux) \
if command -v dnf >/dev/null 2>&1; then \
sudo dnf install -y gcc-c++ protobuf-devel make glibc-static libstdc++-static; \
else \
sudo apt-get install -y build-essential libprotoc-dev libprotobuf-dev; \
fi ;; \
Darwin) \
brew install protobuf-c && \
brew install gcc ;; \
esac
@echo 'Installing grpc-web plugin...'
@rm -rf deps/grpc-web
@git clone --depth 1 --branch 1.4.2 http://github.com/grpc/grpc-web deps/grpc-web
@if [ -f "./clientlibrary/jsaddon/grpcweb_mac.patch" ]; then \
cd deps/grpc-web && git apply ../../clientlibrary/jsaddon/grpcweb_mac.patch || echo "Warning: patch application failed, continuing anyway"; \
fi
@echo "Building grpc-web plugin from source..."
@mkdir -p deps/grpc-web/javascript/net/grpc/web/generator
@echo "CXX = g++" > deps/grpc-web/javascript/net/grpc/web/generator/Makefile
@echo "CPPFLAGS += -I/usr/local/include" >> deps/grpc-web/javascript/net/grpc/web/generator/Makefile
@echo "CXXFLAGS += -std=c++11 -pthread" >> deps/grpc-web/javascript/net/grpc/web/generator/Makefile
@echo "LDFLAGS += -L/usr/local/lib" >> deps/grpc-web/javascript/net/grpc/web/generator/Makefile
@echo "" >> deps/grpc-web/javascript/net/grpc/web/generator/Makefile
@echo "protoc-gen-grpc-web: grpc_generator.o" >> deps/grpc-web/javascript/net/grpc/web/generator/Makefile
@echo " $$(CXX) $$(LDFLAGS) -o $$@ $^ $$(LDLIBS)" >> deps/grpc-web/javascript/net/grpc/web/generator/Makefile
@echo "" >> deps/grpc-web/javascript/net/grpc/web/generator/Makefile
@echo "grpc_generator.o: grpc_generator.cc" >> deps/grpc-web/javascript/net/grpc/web/generator/Makefile
@echo " $$(CXX) $$(CPPFLAGS) $$(CXXFLAGS) -c -o $$@ $$<" >> deps/grpc-web/javascript/net/grpc/web/generator/Makefile
@cd deps/grpc-web/javascript/net/grpc/web/generator && $(MAKE)
@mv deps/grpc-web/javascript/net/grpc/web/generator/protoc-gen-grpc-web deps/protoc-gen-grpc-web
@rm -rf deps/grpc-web

setup-protoc-js:
@echo 'Setting up js protobuf plugins...'
Expand All @@ -40,4 +113,4 @@ setup-swag:
# -mod=mod allows go to auto-add swag's transitive deps to go.sum (they get stripped by go mod tidy since the main module doesn't import them directly)
@GOFLAGS=-mod=mod go build -o deps github.com/swaggo/swag/v2/cmd/swag

setup-protoc: setup-protoc-go
setup-protoc: setup-swag setup-protoc-base setup-protoc-go setup-protoc-jsweb setup-protoc-js