Skip to content

Commit 2e2a346

Browse files
authored
Merge pull request #44 from huwf5/dev
feat: Speed up the build process & Add test_without_static
2 parents e688216 + 77e1d1e commit 2e2a346

File tree

7 files changed

+68
-29
lines changed

7 files changed

+68
-29
lines changed

Makefile

Lines changed: 40 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ export CGO_LDFLAGS= $(PWD)/dep/_google-webrtc/src/out/release-$(TARGET)/obj/libw
6767
-ldl -pthread
6868
export CGO_ENABLED=1
6969

70-
.PHONY: all build docker_build_linux_arm64 fmt build_client docker_build_linux_arm64_client gofumpt build_server docker_build_linux_arm64_server golangci-lint check_webrtc_dependencies docker_release_linux_amd64 release clean docker_release_linux_amd64_client release_client compile_webrtc docker_release_linux_amd64_server release_server docker_create_image docker_build_linux_amd64 docker_release_linux_arm64 revive docker_build_linux_amd64_client docker_release_linux_arm64_client test docker_build_linux_amd64_server docker_release_linux_arm64_server update_submodule build_web_server build_web_client release_web_server release_web_client check_npm front_release duplicate_dist_server clean_duplication_client clean_web clean_dist clean_duplication clean_duplication_server clean_duplication_client check_msquic_dependencies compile_msquic
70+
.PHONY: all build docker_build_linux_arm64 fmt build_client docker_build_linux_arm64_client gofumpt build_server docker_build_linux_arm64_server golangci-lint check_webrtc_dependencies docker_release_linux_amd64 release clean docker_release_linux_amd64_client release_client compile_webrtc docker_release_linux_amd64_server release_server docker_create_image docker_build_linux_amd64 docker_release_linux_arm64 revive docker_build_linux_amd64_client docker_release_linux_arm64_client test docker_build_linux_amd64_server docker_release_linux_arm64_server set_safe_directories update_submodule build_web_server build_web_client release_web_server release_web_client check_npm front_release duplicate_dist_server clean_duplication_client clean_web clean_dist clean_duplication clean_duplication_server clean_duplication_client check_msquic_dependencies compile_msquic
7171

7272
all: gofumpt golangci-lint test release
7373

@@ -81,6 +81,10 @@ test: compile_webrtc compile_msquic
8181
$(eval CGO_CXXFLAGS+=-O0 -g -ggdb)
8282
go test -race -cover -count 1 ./...
8383

84+
test_without_static: compile_webrtc compile_msquic
85+
$(eval CGO_CXXFLAGS+=-O0 -g -ggdb)
86+
go test -tags nostatic -race -cover -count 1 ./...
87+
8488
golangci-lint:
8589
golangci-lint --version || go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest
8690
golangci-lint run \
@@ -93,30 +97,42 @@ golangci-lint:
9397
--exclude 'SA6002: argument should be pointer-like to avoid allocations' \
9498
--exclude 'S1000: should use a simple channel send/receive instead of `select` with a single case'
9599

96-
update_submodule:
97-
git config --global --add safe.directory /go/src/github.com/isrc-cas/gt
98-
git config --global --add safe.directory /go/src/github.com/isrc-cas/gt/dep/_google-webrtc
99-
git config --global --add safe.directory /go/src/github.com/isrc-cas/gt/dep/_msquic
100-
git config --global --add safe.directory /go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/clog
101-
git config --global --add safe.directory /go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/googletest
102-
git config --global --add safe.directory /go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl
103-
git config --global --add safe.directory /go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl/boringssl
104-
git config --global --add safe.directory /go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl3
105-
git config --global --add safe.directory /go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl3/gost-engine
106-
git config --global --add safe.directory /go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl/krb5
107-
git config --global --add safe.directory /go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl3/gost-engine/libprov
108-
git config --global --add safe.directory /go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl/pyca-cryptography
109-
git config --global --add safe.directory /go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl3/krb5
110-
git config --global --add safe.directory /go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl/wycheproof
111-
git config --global --add safe.directory /go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl3/oqs-provider
112-
git config --global --add safe.directory /go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl3/pyca-cryptography
113-
git config --global --add safe.directory /go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl3/python-ecdsa
114-
git config --global --add safe.directory /go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl3/tlsfuzzer
115-
git config --global --add safe.directory /go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl3/tlslite-ng
116-
git config --global --add safe.directory /go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl3/wycheproof
100+
update_submodule: set_safe_directories
117101
$(UPDATE_SUBMODULE_COMMAND)
118102
@git apply dep/patch/* && echo "patches applied" || echo "no patch applied"
119103

104+
set_safe_directories:
105+
@echo "Setting safe directories..."
106+
@dirs="\
107+
/go/src/github.com/isrc-cas/gt \
108+
/go/src/github.com/isrc-cas/gt/dep/_google-webrtc \
109+
/go/src/github.com/isrc-cas/gt/dep/_msquic \
110+
/go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/clog \
111+
/go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/googletest \
112+
/go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl \
113+
/go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl/boringssl \
114+
/go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl3 \
115+
/go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl3/gost-engine \
116+
/go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl/krb5 \
117+
/go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl3/gost-engine/libprov \
118+
/go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl/pyca-cryptography \
119+
/go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl3/krb5 \
120+
/go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl/wycheproof \
121+
/go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl3/oqs-provider \
122+
/go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl3/pyca-cryptography \
123+
/go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl3/python-ecdsa \
124+
/go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl3/tlsfuzzer \
125+
/go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl3/tlslite-ng \
126+
/go/src/github.com/isrc-cas/gt/dep/_msquic/submodules/openssl3/wycheproof ";\
127+
for dir in $$dirs; do \
128+
if git config --global --get-regexp '^safe\.directory$$' | grep -q "^safe.directory $$dir$$"; then \
129+
echo "$$dir is already in safe.directory"; \
130+
else \
131+
git config --global --add safe.directory $$dir; \
132+
echo "Added $$dir to safe.directory"; \
133+
fi; \
134+
done
135+
120136
docker_create_image: update_submodule
121137
docker images | grep -cim1 -E "^gtbuild\s+?v1" || docker build -t gtbuild:v1 .
122138

@@ -152,15 +168,15 @@ docker_release_linux_arm64_server: docker_create_image
152168

153169
build: build_server build_client
154170
release: release_server release_client
155-
build_client: $(SOURCES) Makefile compile_msquic compile_webrtc build_web_client
171+
build_client: $(SOURCES) Makefile compile_msquic compile_webrtc
156172
$(eval CGO_CXXFLAGS+=-O0 -g -ggdb)
157173
$(eval NAME=$(GOOS)-$(GOARCH)-client)
158174
go build $(DEBUG_OPTIONS) -o build/$(NAME)$(EXE) ./cmd/client
159175
release_client: $(SOURCES) Makefile compile_msquic compile_webrtc release_web_client
160176
$(eval CGO_CXXFLAGS+=-O3)
161177
$(eval NAME=$(GOOS)-$(GOARCH)-client)
162178
go build $(RELEASE_OPTIONS) -o release/$(NAME)$(EXE) ./cmd/client
163-
build_server: $(SOURCES) Makefile compile_msquic compile_webrtc build_web_server
179+
build_server: $(SOURCES) Makefile compile_msquic compile_webrtc
164180
$(eval CGO_CXXFLAGS+=-O0 -g -ggdb)
165181
$(eval NAME=$(GOOS)-$(GOARCH)-server)
166182
go build $(DEBUG_OPTIONS) -o build/$(NAME)$(EXE) ./cmd/server
@@ -169,9 +185,6 @@ release_server: $(SOURCES) Makefile compile_msquic compile_webrtc release_web_se
169185
$(eval NAME=$(GOOS)-$(GOARCH)-server)
170186
go build $(RELEASE_OPTIONS) -o release/$(NAME)$(EXE) ./cmd/server
171187

172-
build_web_server: $(SOURCES_FRONT) Makefile check_npm front_build duplicate_dist_server
173-
build_web_client: $(SOURCES_FRONT) Makefile check_npm front_build duplicate_dist_client
174-
175188
release_web_server: $(SOURCES_FRONT) Makefile check_npm front_release duplicate_dist_server
176189
release_web_client: $(SOURCES_FRONT) Makefile check_npm front_release duplicate_dist_client
177190

client/web/embed.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
//go:build release || !nostatic
2+
3+
package web
4+
5+
import "embed"
6+
7+
//go:embed dist/*
8+
var embeddedFS embed.FS
9+
10+
func init() {
11+
FS = embeddedFS
12+
}

client/web/web.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ import (
2828
"time"
2929
)
3030

31-
//go:embed dist/*
3231
var FS embed.FS
3332

3433
type Server struct {

client/web/web_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//go:build !nostatic
2+
13
package web
24

35
import (

server/web/embed.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
//go:build release || !nostatic
2+
3+
package web
4+
5+
import "embed"
6+
7+
//go:embed dist/*
8+
var embeddedFS embed.FS
9+
10+
func init() {
11+
FS = embeddedFS
12+
}

server/web/web.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ import (
2828
"time"
2929
)
3030

31-
//go:embed dist/*
3231
var FS embed.FS
3332

3433
type Server struct {

server/web/web_test.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
//go:build !nostatic
2+
13
package web
24

35
import (

0 commit comments

Comments
 (0)