@@ -211,17 +211,20 @@ macro _GO_GEN_COVER_GO(GO_FILE, GO_COVER_OUTPUT, VAR_ID) {
211211# tag:go-specific
212212macro _GO_COMPILE_SYMABIS(FLAGS[], ASM_FILES...) {
213213 .CMD=${hide:_CGO_FAKEID} $GO_TOOLS_ROOT/pkg/tool/$_GO_TC_PATH/asm $_GO_COMPILE_SYMABIS_TRIMPATH__NO_UID__ ${pre=-I :_C__INCLUDE} -I $GO_TOOLS_ROOT/pkg/include -D GOOS_${GO_TARG_OS} -D GOARCH_${GO_TARG_ARCH} $FLAGS $GO_ASM_FLAGS_VALUE -gensymabis -o ${output:"gen.symabis"} ${input:ASM_FILES} ${hide;kv:"p go"} ${hide;kv:"pc light-blue"} ${hide;kv:"show_out"}
214+ .STRUCT_CMD=yes
214215 .ADDINCL=build/scripts/go_fake_include
215216}
216217
217218# tag:go-specific
218219macro _GO_COMPILE_CGO1(NAME, FLAGS[], FILES...) {
219220 .CMD=${hide:_CGO_FAKEID} ${cwd:ARCADIA_ROOT} $YMAKE_PYTHON3 ${input:"build/scripts/cgo1_wrapper.py"} $_GO_CGO1_WRAPPER_FLAGS --build-root ${ARCADIA_BUILD_ROOT} --source-root ${ARCADIA_ROOT} --cgo1-files ${output;suf=.cgo1.go;noext:FILES} --cgo2-files ${noauto;output;suf=.cgo2.c;noext:FILES} -- ${GO_TOOLS_ROOT}/pkg/tool/$_GO_TC_PATH/cgo -objdir $BINDIR -importpath $NAME $GO_CGO1_FLAGS_VALUE $FLAGS -- $C_FLAGS_PLATFORM ${pre=-I:_C__INCLUDE} ${CGO_CFLAGS_VALUE} ${input:FILES} ${hide;output:"_cgo_export.h"} ${hide;output:"_cgo_export.c"} ${hide;output:"_cgo_gotypes.go"} ${hide;noauto;output:"_cgo_main.c"} $GO_TOOLCHAIN_ENV ${hide;kv:"p go"} ${hide;kv:"pc light-blue"} ${hide;kv:"show_out"}
221+ .STRUCT_CMD=yes
220222}
221223
222224# tag:go-specific
223225macro _GO_COMPILE_CGO2(NAME, C_FILES[], S_FILES[], OBJ_FILES[], FILES...) {
224226 .CMD=${hide:_CGO_FAKEID} $C_COMPILER $C_FLAGS_PLATFORM ${pre=-I:_C__INCLUDE} $CGO_CFLAGS_VALUE ${tobindir;input:"_cgo_main.c"} -c -o ${noauto;tmp;suf=${OBJECT_SUF}:"_cgo_main.c"} && $YMAKE_PYTHON3 ${input:"build/scripts/link_o.py"} $C_COMPILER $C_FLAGS_PLATFORM ${pre=-I:_C__INCLUDE} -o ${noauto;tmp;suf=${OBJECT_SUF}:"_cgo_"} $LDFLAGS $LDFLAGS_GLOBAL $CGO2_LDFLAGS_VALUE ${hide;input:"_cgo_export.h"} ${noauto;tmp;suf=${OBJECT_SUF}:"_cgo_main.c"} ${input;suf=${OBJECT_SUF}:"_cgo_export.c"} ${input;suf=.cgo2.c${OBJECT_SUF};nopath;noext:FILES} ${input;suf=${OBJECT_SUF}:C_FILES} ${input;suf=.o:S_FILES} ${input:OBJ_FILES} $CGO_LDFLAGS_VALUE && ${GO_TOOLS_ROOT}/pkg/tool/$_GO_TC_PATH/cgo -dynpackage $NAME -dynimport ${noauto;tmp;suf=${OBJECT_SUF}:"_cgo_"} -dynout ${output:"_cgo_import.go"} -dynlinker $GO_CGO2_FLAGS_VALUE $GO_TOOLCHAIN_ENV ${hide;kv:"p go"} ${hide;kv:"pc light-blue"} ${hide;kv:"show_out"}
227+ .STRUCT_CMD=yes
225228
226229 _USE_LINKER()
227230}
@@ -547,7 +550,7 @@ _GO_PROTO_GRPC_GATEWAY_OUTS=
547550# tag:go-specific
548551macro _GO_GRPC_GATEWAY_SRCS_IMPL(Files...) {
549552 foreach (File : $Files) {
550- [.proto]=$_GO_PROTO_CMD_IMPL($ File $_GO_PROTO_GRPC_GATEWAY_OPTS $_GO_PROTO_GRPC_GATEWAY_OUTS )
553+ _GO_GRPC_GATEWAY_SRCS_IMPL_DISPATCH(${lastext: File} $File )
551554 }
552555
553556 PEERDIR(${GOSTD}/context ${GOSTD}/io ${GOSTD}/net/http)
@@ -556,6 +559,12 @@ macro _GO_GRPC_GATEWAY_SRCS_IMPL(Files...) {
556559 PEERDIR(vendor/github.com/grpc-ecosystem/grpc-gateway/utilities)
557560 PEERDIR(vendor/google.golang.org/grpc/metadata)
558561}
562+ macro _GO_GRPC_GATEWAY_SRCS_IMPL_DISPATCH(Ext, File) {
563+ }
564+ macro _GO_GRPC_GATEWAY_SRCS_IMPL_DISPATCH("proto", File) {
565+ .CMD=$_GO_PROTO_CMD_IMPL($File $_GO_PROTO_GRPC_GATEWAY_OPTS $_GO_PROTO_GRPC_GATEWAY_OUTS)
566+ .STRUCT_CMD=yes
567+ }
559568
560569# tag:go-specific
561570macro _SETUP_GO_GRPC_GATEWAY() {
@@ -612,7 +621,7 @@ _GO_PROTO_GRPC_GATEWAY_V2_OUTS=
612621# tag:go-specific
613622macro _GO_GRPC_GATEWAY_V2_SRCS_IMPL(Files...) {
614623 foreach (File : $Files) {
615- [.proto]=$_GO_PROTO_CMD_IMPL($ File $_GO_PROTO_GRPC_GATEWAY_V2_OPTS $_GO_PROTO_GRPC_GATEWAY_V2_OUTS )
624+ _GO_GRPC_GATEWAY_V2_SRCS_IMPL_DISPATCH(${lastext: File} $File )
616625 }
617626
618627 PEERDIR(${GOSTD}/context ${GOSTD}/errors ${GOSTD}/io ${GOSTD}/net/http)
@@ -622,6 +631,12 @@ macro _GO_GRPC_GATEWAY_V2_SRCS_IMPL(Files...) {
622631 PEERDIR(vendor/google.golang.org/grpc/metadata)
623632 PEERDIR(vendor/google.golang.org/protobuf/proto)
624633}
634+ macro _GO_GRPC_GATEWAY_V2_SRCS_IMPL_DISPATCH(Ext, File) {
635+ }
636+ macro _GO_GRPC_GATEWAY_V2_SRCS_IMPL_DISPATCH("proto", File) {
637+ .CMD=$_GO_PROTO_CMD_IMPL($File $_GO_PROTO_GRPC_GATEWAY_V2_OPTS $_GO_PROTO_GRPC_GATEWAY_V2_OUTS)
638+ .STRUCT_CMD=yes
639+ }
625640
626641# tag:go-specific
627642macro _SETUP_GO_GRPC_GATEWAY_V2() {
@@ -1031,7 +1046,9 @@ module GO_TEST: GO_PROGRAM {
10311046}
10321047
10331048# tag:go-specific
1034- _GO_TOOL_ENV=${env:"PATH=${GO_TOOLS_ROOT}/bin"} ${env:"GOROOT=${GO_TOOLS_ROOT}"} ${env:"GOCACHE=${BINDIR}/.gocache"}
1049+ _GO_TOOL_ENV_PATH=PATH=${GO_TOOLS_ROOT}/bin
1050+ _GO_TOOL_ENV_ROOT=GOROOT=${GO_TOOLS_ROOT}
1051+ _GO_TOOL_ENV=${env:_GO_TOOL_ENV_PATH} ${env:_GO_TOOL_ENV_ROOT} ${env:"GOCACHE=${BINDIR}/.gocache"}
10351052
10361053# tag:go-specific
10371054_GO_GO_MOD=${ARCADIA_ROOT}/go.mod
@@ -1104,6 +1121,7 @@ macro _GO_MOCKGEN_MOCKS_IMPL(GEN_TOOL) {
11041121 PEERDIR(vendor/go.uber.org/mock/gomock)
11051122
11061123 .CMD=${cwd:BINDIR} ${tool:GEN_TOOL} -output gob.data && ${cwd:BINDIR} ${tool:_GO_TOOL_MOCKGEN} -package ${MOCKGEN_PACKAGE} -model_gob gob.data ${stdout;output:"main.go"} $_GO_TOOL_ENV ${hide;kv:"p GM"} ${hide;kv:"pc blue"}
1124+ .STRUCT_CMD=yes
11071125}
11081126
11091127# tag:go-specific
@@ -1123,7 +1141,7 @@ _GO_MOCKGEN_SOURCE_CMDLINE=\
11231141 $COPY_CMD ${context=TEXT;input=TEXT:SOURCE} ${BINDIR}/.arcadia/$SOURCE && \
11241142 ${cwd;suf=/.arcadia:BINDIR} ${tool:_GO_TOOL_MOCKGEN} -package ${MOCKGEN_PACKAGE} -source ${rootrel;context=TEXT;input=TEXT:SOURCE} ${ARGS} \
11251143 $_GO_TOOL_ENV ${stdout;output;suf=.source.gen.go;noext:FILENAME} \
1126- ${hide;context=TEXT;input=TEXT;suf=/.arcadia/go.mod:BINDIR} ${hide;context=TEXT;input=TEXT;suf=/.arcadia/vendor/modules.txt:BINDIR} ${hide;context=TEXT;input=TEXT :IN_NOPARSE} \
1144+ ${hide;context=TEXT;input=TEXT:IN_NOPARSE} \
11271145 ${hide;kv:"p GS"} ${hide;kv:"pc blue"}
11281146
11291147# tag:go-specific
@@ -1132,6 +1150,7 @@ macro _GO_MOCKGEN_SOURCE_IMPL(SOURCE, FILENAME, ARGS[], IN_NOPARSE[]) {
11321150 PEERDIR(${GOSTD}/context)
11331151 PEERDIR(vendor/go.uber.org/mock/gomock)
11341152 .CMD=$_GO_MOCKGEN_SOURCE_CMDLINE
1153+ .STRUCT_CMD=yes
11351154}
11361155
11371156# tag:go-specific
@@ -1146,6 +1165,7 @@ macro GO_MOCKGEN_SOURCE(FILE, ARGS[], IN_NOPARSE[]) {
11461165
11471166macro _GO_OAPI_CODEGEN_IMPL(TOOL, IN, FILENAME, GENERATE="", PACKAGE="", TEMPLATES="", CONFIG="", IN_NOPARSE[], Args...) {
11481167 .CMD=${cwd:ARCADIA_BUILD_ROOT} ${tool:TOOL} ${pre=--generate :GENERATE} ${pre=--package :PACKAGE} ${pre=--templates :TEMPLATES} ${pre=--config :CONFIG} $Args ${context=TEXT;input=TEXT:IN} ${hide;context=TEXT;input=TEXT:IN_NOPARSE} ${stdout;output:FILENAME} ${_GO_TOOL_ENV} ${hide;kv:"p GC"} ${hide;kv:"pc blue"}
1168+ .STRUCT_CMD=yes
11491169}
11501170
11511171# tag:go-specific
0 commit comments