@@ -72,72 +72,112 @@ file(GLOB_RECURSE NANOPB_SOURCES RELATIVE ${CMAKE_CURRENT_BINARY_DIR}
72
72
${CMAKE_CURRENT_BINARY_DIR} /${FRIClient_SDK_NAME} /src/nanopb-${NANOPB_VERSION} /*.c
73
73
)
74
74
75
+ file (GLOB_RECURSE PROTOBUF_SOURCES RELATIVE ${CMAKE_CURRENT_BINARY_DIR}
76
+ ${CMAKE_CURRENT_BINARY_DIR} /${FRIClient_SDK_NAME} /src/protobuf/*.cpp
77
+ ${CMAKE_CURRENT_BINARY_DIR} /${FRIClient_SDK_NAME} /src/protobuf/*.c
78
+ ${CMAKE_CURRENT_BINARY_DIR} /${FRIClient_SDK_NAME} /src/protobuf_gen/*.pb.c
79
+ )
80
+
75
81
file (GLOB_RECURSE FRI_SOURCES RELATIVE ${CMAKE_CURRENT_BINARY_DIR}
76
82
${CMAKE_CURRENT_BINARY_DIR} /${FRIClient_SDK_NAME} /src/base/*.cpp
77
83
${CMAKE_CURRENT_BINARY_DIR} /${FRIClient_SDK_NAME} /src/client_lbr/*.cpp
78
84
${CMAKE_CURRENT_BINARY_DIR} /${FRIClient_SDK_NAME} /src/client_trafo/*.cpp
79
85
${CMAKE_CURRENT_BINARY_DIR} /${FRIClient_SDK_NAME} /src/connection/*.cpp
80
- ${CMAKE_CURRENT_BINARY_DIR} /${FRIClient_SDK_NAME} /src/protobuf/*.cpp
81
- ${CMAKE_CURRENT_BINARY_DIR} /${FRIClient_SDK_NAME} /src/protobuf/*.c
82
- ${CMAKE_CURRENT_BINARY_DIR} /${FRIClient_SDK_NAME} /src/protobuf_gen/*.pb.c
86
+ )
87
+
88
+ # add nanopb library target under common namespace
89
+ add_library (nanopb SHARED
90
+ ${NANOPB_SOURCES}
91
+ )
92
+
93
+ # add protocol buffers and utilities under common namespace
94
+ add_library (protobuf SHARED
95
+ ${PROTOBUF_SOURCES}
83
96
)
84
97
85
98
# add FRI library target
86
99
add_library (FRIClient SHARED
87
100
${FRI_SOURCES}
88
101
)
89
102
90
- # add nanopb library target under common namespace
91
- add_library (nanopb STATIC
92
- ${NANOPB_SOURCES}
103
+ add_library (FRIClient::nanopb ALIAS nanopb) # alias for anyone adding this as a submodule
104
+ add_library (FRIClient::protobuf ALIAS protobuf) # alias for anyone adding this as a submodule
105
+ add_library (FRIClient::FRIClient ALIAS FRIClient) # alias for anyone adding this as a submodule
106
+
107
+ target_include_directories (nanopb
108
+ PUBLIC
109
+ $<INSTALL_INTERFACE:${FRIClient_SDK_NAME} /src/nanopb-${NANOPB_VERSION} >
110
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR} /${FRIClient_SDK_NAME} /src/nanopb-${NANOPB_VERSION} >
93
111
)
94
112
95
- add_library (FRIClient::FRIClient ALIAS FRIClient) # alias for anyone adding this as a submodule
96
- add_library (FRIClient::nanopb ALIAS nanopb) # alias for anyone adding this as a submodule
113
+ target_include_directories (protobuf
114
+ PUBLIC
115
+ $<INSTALL_INTERFACE:${FRIClient_SDK_NAME} /src/protobuf_gen>
116
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR} /${FRIClient_SDK_NAME} /src/protobuf_gen>
117
+ $<INSTALL_INTERFACE:${FRIClient_SDK_NAME} /src/protobuf>
118
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR} /${FRIClient_SDK_NAME} /src/protobuf>
119
+ )
97
120
98
121
target_include_directories (FRIClient
99
122
PUBLIC
100
123
$<INSTALL_INTERFACE:include >
101
124
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR} /${FRIClient_SDK_NAME} /include >
102
125
PRIVATE
103
126
${CMAKE_CURRENT_BINARY_DIR} /${FRIClient_SDK_NAME} /src/base
104
- ${CMAKE_CURRENT_BINARY_DIR} /${FRIClient_SDK_NAME} /src/protobuf_gen
105
- ${CMAKE_CURRENT_BINARY_DIR} /${FRIClient_SDK_NAME} /src/protobuf
106
127
)
107
128
108
- target_include_directories (nanopb
109
- PUBLIC
110
- $<INSTALL_INTERFACE:${FRIClient_SDK_NAME} /src/nanopb-${NANOPB_VERSION} >
111
- $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR} /${FRIClient_SDK_NAME} /src/nanopb-${NANOPB_VERSION} >
129
+ target_link_libraries (protobuf
130
+ PRIVATE
131
+ nanopb
112
132
)
113
133
114
134
target_link_libraries (FRIClient
115
135
PRIVATE
116
136
nanopb
137
+ protobuf
117
138
)
118
139
119
140
if (MSVC )
120
- target_compile_options (FRIClient
141
+ target_compile_options (nanopb
121
142
PRIVATE
122
143
-DPB_SYSTEM_HEADER="pb_syshdr_win.h"
123
144
-DPB_FIELD_16BIT
124
145
-DWIN32
125
146
-DHAVE_STDINT_H
126
147
-DHAVE_STDBOOL_H
127
148
)
128
- else ()
149
+ target_compile_options (protobuf
150
+ PRIVATE
151
+ -DPB_FIELD_16BIT
152
+ )
129
153
target_compile_options (FRIClient
154
+ PRIVATE
155
+ -DWIN32
156
+ )
157
+ else ()
158
+ target_compile_options (nanopb
130
159
PRIVATE
131
160
-Wall
132
161
-O2
133
- -DHAVE_SOCKLEN_T
134
162
-DPB_SYSTEM_HEADER="pb_syshdr.h"
135
163
-DPB_FIELD_16BIT
136
164
-DHAVE_STDINT_H
137
165
-DHAVE_STDDEF_H
138
166
-DHAVE_STDBOOL_H
139
167
-DHAVE_STDLIB_H
140
168
-DHAVE_STRING_H
169
+ )
170
+ target_compile_options (protobuf
171
+ PRIVATE
172
+ -Wall
173
+ -O2
174
+ -DPB_FIELD_16BIT
175
+ )
176
+ target_compile_options (FRIClient
177
+ PRIVATE
178
+ -Wall
179
+ -O2
180
+ -DHAVE_SOCKLEN_T
141
181
)
142
182
endif ()
143
183
@@ -152,15 +192,24 @@ write_basic_package_version_file(
152
192
COMPATIBILITY SameMajorVersion
153
193
)
154
194
155
- install (TARGETS FRIClient nanopb
195
+ install (TARGETS nanopb protobuf FRIClient
156
196
EXPORT FRIClientTargets
157
197
LIBRARY DESTINATION lib
158
198
INCLUDES DESTINATION include
159
199
)
160
200
161
201
install (
162
- DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} /${FRIClient_SDK_NAME} /include /
202
+ DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} /${FRIClient_SDK_NAME} /src/protobuf_gen/
203
+ DESTINATION include
204
+ FILES_MATCHING
205
+ PATTERN *.h
206
+ )
207
+
208
+ install (
209
+ DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} /${FRIClient_SDK_NAME} /src/protobuf/
163
210
DESTINATION include
211
+ FILES_MATCHING
212
+ PATTERN *.h
164
213
)
165
214
166
215
install (
@@ -170,6 +219,11 @@ install(
170
219
PATTERN *.h
171
220
)
172
221
222
+ install (
223
+ DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} /${FRIClient_SDK_NAME} /include /
224
+ DESTINATION include
225
+ )
226
+
173
227
install (EXPORT FRIClientTargets
174
228
FILE FRIClientConfig.cmake
175
229
NAMESPACE FRIClient::
0 commit comments