aboutsummaryrefslogtreecommitdiffhomepage
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorGravatar Vishal Powar <vishalpowar@google.com>2018-11-30 14:27:52 -0800
committerGravatar Vishal Powar <vishalpowar@google.com>2018-12-11 14:59:02 -0800
commit62027b7e14624283f758a7785a0a1347eda0a147 (patch)
tree76db8a6a8a5d3a86353a268f5eb3305e1f4c0523 /CMakeLists.txt
parent9bd5b3778abbb2564544a69d9c99d3c87a3354eb (diff)
Changes add a script for generating C code and build rule for protobuf
protos All these changes need to go together to make sense - changes to use new version of upb in bazel - allowing includes in build target option - script for generating c code for protos - generated code for example build - adding changes for non-bazel builds - change sanity tests to ignore the generated files.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt53
1 files changed, 53 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1194d0072e..a956296092 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -5476,6 +5476,59 @@ endif()
endif (gRPC_BUILD_CSHARP_EXT)
if (gRPC_BUILD_TESTS)
+add_library(upb
+ third_party/upb/google/protobuf/descriptor.upb.c
+ third_party/upb/upb/decode.c
+ third_party/upb/upb/def.c
+ third_party/upb/upb/encode.c
+ third_party/upb/upb/handlers.c
+ third_party/upb/upb/msg.c
+ third_party/upb/upb/msgfactory.c
+ third_party/upb/upb/refcounted.c
+ third_party/upb/upb/sink.c
+ third_party/upb/upb/table.c
+ third_party/upb/upb/upb.c
+)
+
+if(WIN32 AND MSVC)
+ set_target_properties(upb PROPERTIES COMPILE_PDB_NAME "upb"
+ COMPILE_PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}"
+ )
+ if (gRPC_INSTALL)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/upb.pdb
+ DESTINATION ${gRPC_INSTALL_LIBDIR} OPTIONAL
+ )
+ endif()
+endif()
+
+
+target_include_directories(upb
+ PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
+ PRIVATE ${_gRPC_SSL_INCLUDE_DIR}
+ PRIVATE ${_gRPC_PROTOBUF_INCLUDE_DIR}
+ PRIVATE ${_gRPC_ZLIB_INCLUDE_DIR}
+ PRIVATE ${_gRPC_BENCHMARK_INCLUDE_DIR}
+ PRIVATE ${_gRPC_CARES_INCLUDE_DIR}
+ PRIVATE ${_gRPC_GFLAGS_INCLUDE_DIR}
+ PRIVATE ${_gRPC_ADDRESS_SORTING_INCLUDE_DIR}
+ PRIVATE ${_gRPC_NANOPB_INCLUDE_DIR}
+)
+ # avoid dependency on libstdc++
+ if (_gRPC_CORE_NOSTDCXX_FLAGS)
+ set_target_properties(upb PROPERTIES LINKER_LANGUAGE C)
+ # only use the flags for C++ source files
+ target_compile_options(upb PRIVATE $<$<COMPILE_LANGUAGE:CXX>:${_gRPC_CORE_NOSTDCXX_FLAGS}>)
+ endif()
+target_link_libraries(upb
+ ${_gRPC_SSL_LIBRARIES}
+ ${_gRPC_ALLTARGETS_LIBRARIES}
+)
+
+
+endif (gRPC_BUILD_TESTS)
+if (gRPC_BUILD_TESTS)
+
add_library(bad_client_test
test/core/bad_client/bad_client.cc
)