Makefile 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. # Which Swift to use.
  2. SWIFT:=swift
  3. # Where products will be built; this is the SPM default.
  4. GRPC_SWIFT_PATH:=../..
  5. SWIFT_BUILD_PATH:=./.build
  6. SWIFT_BUILD_CONFIGURATION=release
  7. SWIFT_FLAGS=--build-path=${SWIFT_BUILD_PATH} --configuration=${SWIFT_BUILD_CONFIGURATION}
  8. # protoc plugins.
  9. PROTOC_GEN_SWIFT=${GRPC_SWIFT_PATH}/${SWIFT_BUILD_PATH}/release/protoc-gen-swift
  10. PROTOC_GEN_GRPC_SWIFT=${GRPC_SWIFT_PATH}/${SWIFT_BUILD_PATH}/release/protoc-gen-grpc-swift
  11. SWIFT_BUILD:=${SWIFT} build ${SWIFT_FLAGS}
  12. SWIFT_BUILD_RELEASE:=${SWIFT} build ${SWIFT_FLAGS_RELEASE}
  13. ### Package and plugin build targets ###########################################
  14. all:
  15. ${SWIFT_BUILD}
  16. ${PROTOC_GEN_SWIFT}: ${GRPC_SWIFT_PATH}/Package.resolved
  17. ${SWIFT_BUILD_RELEASE} --product protoc-gen-swift --package-path ${GRPC_SWIFT_PATH}
  18. ${PROTOC_GEN_GRPC_SWIFT}: ${GRPC_SWIFT_PATH}/Sources/protoc-gen-grpc-swift/*.swift
  19. ${SWIFT_BUILD_RELEASE} --product protoc-gen-grpc-swift --package-path ${GRPC_SWIFT_PATH}
  20. ### Protobuf Generation ########################################################
  21. %.pb.swift: %.proto ${PROTOC_GEN_SWIFT}
  22. protoc $< \
  23. --proto_path=$(dir $<) \
  24. --plugin=${PROTOC_GEN_SWIFT} \
  25. --swift_opt=Visibility=Public \
  26. --swift_out=$(dir $<)
  27. %.grpc.swift: %.proto ${PROTOC_GEN_GRPC_SWIFT}
  28. protoc $< \
  29. --proto_path=$(dir $<) \
  30. --plugin=${PROTOC_GEN_GRPC_SWIFT} \
  31. --grpc-swift_opt=Visibility=Public \
  32. --grpc-swift_out=$(dir $<)
  33. QBS_PROTO=Sources/QPSBenchmark/Model/benchmark_service.proto \
  34. Sources/QPSBenchmark/Model/payloads.proto \
  35. Sources/QPSBenchmark/Model/control.proto \
  36. Sources/QPSBenchmark/Model/stats.proto \
  37. Sources/QPSBenchmark/Model/core_stats.proto \
  38. Sources/QPSBenchmark/Model/worker_service.proto \
  39. Sources/QPSBenchmark/Model/messages.proto
  40. QBS_PB=$(QBS_PROTO:.proto=.pb.swift)
  41. QBS_GRPC=$(QBS_PROTO:.proto=.grpc.swift)
  42. # Generate the protobufs for the QPS benchmarking worker.
  43. .PHONY:
  44. generate-qps-worker: ${QBS_PB} ${QBS_GRPC}
  45. ### Misc. ######################################################################
  46. .PHONY:
  47. clean:
  48. -rm -rf Packages
  49. -rm -rf ${SWIFT_BUILD_PATH}
  50. -rm -f Package.resolved