forked from pstavirs/ostinato
-
Notifications
You must be signed in to change notification settings - Fork 0
/
protobuf.pri
51 lines (46 loc) · 1.79 KB
/
protobuf.pri
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#
# Qt qmake integration with Google Protocol Buffers compiler protoc
# Author: Srivats P.
#
# To compile protocol buffers with qt qmake, specify PROTOS variable and
# include this file
#
# Example:
# PROTOS = a.proto b.proto
# include(protobuf.pri)
#
# By default protoc looks for .proto files (including the imported ones) in
# the current directory where protoc is run. If you need to include additional
# paths specify the PROTOPATH variable
#
PROTOPATH += .
PROTOPATHS =
for(p, PROTOPATH):PROTOPATHS += --proto_path=$${p}
PROTO_CC += $$replace(PROTOS, \.proto, .pb.cc)
protobuf_decl.name = protobuf header
protobuf_decl.input = PROTOS
protobuf_decl.output = ${QMAKE_FILE_BASE}.pb.h
protobuf_decl.commands = protoc --cpp_out="." $${PROTOPATHS} ${QMAKE_FILE_NAME}
protobuf_decl.variable_out = GENERATED_FILES
QMAKE_EXTRA_COMPILERS += protobuf_decl
protobuf_impl.name = protobuf implementation
protobuf_impl.input = PROTOS
protobuf_impl.output = ${QMAKE_FILE_BASE}.pb.cc
protobuf_impl.depends = ${QMAKE_FILE_BASE}.pb.h
protobuf_impl.commands = $$escape_expand(\\n)
protobuf_impl.variable_out = GENERATED_FILES
QMAKE_EXTRA_COMPILERS += protobuf_impl
# protobuf generated code emits compiler warnings, so use -Wno-error to
# compile 'em; if and when protobuf generates clean code, make the following
# changes -
# - protobuf_impl.variable_out = GENERATED_FILES
# + protobuf_impl.variable_out = GENERATED_SOURCES
# - QMAKE_EXTRA_COMPILERS += protobuf_cc
# - #QMAKE_EXTRA_COMPILERS += protobuf_cc
protobuf_cc.name = protobuf cc compilation
protobuf_cc.input = PROTO_CC
protobuf_cc.output = ${QMAKE_FILE_BASE}.o
protobuf_cc.dependency_type = TYPE_C
protobuf_cc.commands = $(CXX) -c $(CXXFLAGS) -Wno-error $(INCPATH) -o ${QMAKE_FILE_OUT} ${QMAKE_FILE_IN}
protobuf_cc.variable_out = OBJECTS
QMAKE_EXTRA_COMPILERS += protobuf_cc