Merge pull request #9382 from jtattermusch/enable_cmake_tests

CMake: Enable building of test targets
pull/8830/head^2
Jan Tattermusch 8 years ago committed by GitHub
commit a575b3ef9c
  1. 9705
      CMakeLists.txt
  2. 61
      templates/CMakeLists.txt.template
  3. 2
      third_party/gflags
  4. 2
      tools/run_tests/sanity/check_submodules.sh

File diff suppressed because it is too large Load Diff

@ -65,6 +65,8 @@
deps.append("${_gRPC_ZLIB_LIBRARIES}")
for d in target_dict.get('deps', []):
deps.append(d)
if target_dict.build == 'test' and target_dict.language == 'c++':
deps.append("${_gRPC_GFLAGS_LIBRARIES}")
return deps
%>
@ -76,6 +78,9 @@
set(PACKAGE_TARNAME "<%text>${PACKAGE_NAME}-${PACKAGE_VERSION}</%text>")
set(PACKAGE_BUGREPORT "https://github.com/grpc/grpc/issues/")
project(<%text>${PACKAGE_NAME}</%text> C CXX)
# Options
option(gRPC_BUILD_TESTS "Build tests" OFF)
if (NOT MSVC)
set(gRPC_INSTALL ON CACHE BOOL "Generate installation target")
@ -91,7 +96,10 @@
set(gRPC_PROTOBUF_PROVIDER "module" CACHE STRING "Provider of protobuf library")
set_property(CACHE gRPC_PROTOBUF_PROVIDER PROPERTY STRINGS "module" "package")
set(gRPC_GFLAGS_PROVIDER "module" CACHE STRING "Provider of gflags library")
set_property(CACHE gRPC_GFLAGS_PROVIDER PROPERTY STRINGS "module" "package")
set(gRPC_USE_PROTO_LITE OFF CACHE BOOL "Use the protobuf-lite library")
if (MSVC)
@ -195,6 +203,26 @@
endif()
set(_gRPC_FIND_SSL "if(NOT OpenSSL_FOUND)\n find_package(OpenSSL)\nendif()")
endif()
if("<%text>${gRPC_GFLAGS_PROVIDER}</%text>" STREQUAL "module")
if(NOT GFLAGS_ROOT_DIR)
set(GFLAGS_ROOT_DIR <%text>${CMAKE_CURRENT_SOURCE_DIR}</%text>/third_party/gflags)
endif()
if(EXISTS "<%text>${GFLAGS_ROOT_DIR}</%text>/CMakeLists.txt")
add_subdirectory(<%text>${GFLAGS_ROOT_DIR}</%text> third_party/gflags)
if(TARGET gflags_static)
set(_gRPC_GFLAGS_LIBRARIES gflags_static)
endif()
else()
message(WARNING "gRPC_GFLAGS_PROVIDER is \"module\" but GFLAGS_ROOT_DIR is wrong")
endif()
elseif("<%text>${gRPC_GFLAGS_PROVIDER}</%text>" STREQUAL "package")
find_package(gflags)
if(TARGET gflags::gflags)
set(_gRPC_GFLAGS_LIBRARIES gflags::gflags)
endif()
set(_gRPC_FIND_GFLAGS "if(NOT gflags_FOUND)\n find_package(gflags)\nendif()")
endif()
if(NOT MSVC)
set(CMAKE_C_FLAGS "<%text>${CMAKE_C_FLAGS}</%text> -std=c11")
@ -260,17 +288,31 @@
endfunction()
% for lib in libs:
% if lib.build in ["all", "protoc", "tool"] and lib.language in ['c', 'c++']:
% if lib.build in ["all", "protoc", "tool", "test", "private"] and lib.language in ['c', 'c++']:
% if not lib.get('build_system', []) or 'cmake' in lib.get('build_system', []):
% if lib.build in ["test", "private"]:
if (gRPC_BUILD_TESTS)
${cc_library(lib)}
endif (gRPC_BUILD_TESTS)
% else:
${cc_library(lib)}
${cc_install(lib)}
% endif
% endif
% endif
% endfor
% for tgt in targets:
% if tgt.build in ["all", "protoc", "tool"] and tgt.language in ['c', 'c++']:
% if tgt.build in ["all", "protoc", "tool", "test", "private"] and tgt.language in ['c', 'c++']:
% if tgt.build in ["test", "private"]:
if (gRPC_BUILD_TESTS)
${cc_binary(tgt)}
endif (gRPC_BUILD_TESTS)
% else:
${cc_binary(tgt)}
${cc_install(tgt)}
% endif
% endif
% endfor
<%def name="cc_library(lib)">
@ -302,6 +344,11 @@
PRIVATE <%text>${PROTOBUF_ROOT_DIR}</%text>/src
PRIVATE <%text>${ZLIB_INCLUDE_DIR}</%text>
PRIVATE <%text>${CMAKE_CURRENT_BINARY_DIR}</%text>/third_party/zlib
PRIVATE <%text>${CMAKE_CURRENT_BINARY_DIR}</%text>/third_party/gflags/include
% if lib.build in ['test', 'private'] and lib.language == 'c++':
PRIVATE third_party/googletest/include
PRIVATE third_party/googletest
% endif
% if any(proto_re.match(src) for src in lib.src):
PRIVATE <%text>${_gRPC_PROTO_GENS_DIR}</%text>
% endif
@ -335,6 +382,9 @@
% for src in tgt.src:
${src}
% endfor
% if tgt.build == 'test' and tgt.language == 'c++':
third_party/googletest/src/gtest-all.cc
% endif
)
target_include_directories(${tgt.name}
@ -344,6 +394,11 @@
PRIVATE <%text>${PROTOBUF_ROOT_DIR}</%text>/src
PRIVATE <%text>${ZLIB_ROOT_DIR}</%text>
PRIVATE <%text>${CMAKE_CURRENT_BINARY_DIR}</%text>/third_party/zlib
PRIVATE <%text>${CMAKE_CURRENT_BINARY_DIR}</%text>/third_party/gflags/include
% if tgt.build in ['test', 'private'] and tgt.language == 'c++':
PRIVATE third_party/googletest/include
PRIVATE third_party/googletest
% endif
)
% if len(get_deps(tgt)) > 0:

@ -1 +1 @@
Subproject commit 05b155ff59114735ec8cd089f669c4c3d8f59029
Subproject commit f8a0efe03aa69b3336d8e228b37d4ccb17324b88

@ -44,7 +44,7 @@ cat << EOF | awk '{ print $1 }' | sort > $want_submodules
44c25c892a6229b20db7cd9dc05584ea865896de third_party/benchmark (v0.1.0-343-g44c25c8)
c880e42ba1c8032d4cdde2aba0541d8a9d9fa2e9 third_party/boringssl (c880e42)
886e7d75368e3f4fab3f4d0d3584e4abfc557755 third_party/boringssl-with-bazel (version_for_cocoapods_7.0-857-g886e7d7)
05b155ff59114735ec8cd089f669c4c3d8f59029 third_party/gflags (v2.1.0-45-g05b155f)
f8a0efe03aa69b3336d8e228b37d4ccb17324b88 third_party/gflags (v2.2.0)
c99458533a9b4c743ed51537e25989ea55944908 third_party/googletest (release-1.7.0)
a428e42072765993ff674fda72863c9f1aa2d268 third_party/protobuf (v3.1.0-alpha-1)
bcad91771b7f0bff28a1cac1981d7ef2b9bcef3c third_party/thrift (bcad917)

Loading…
Cancel
Save