Skip to content
Snippets Groups Projects
Select Git revision
  • 5da269777cc41c67870906f2b9e9929ab86a0971
  • main default protected
  • f-sss4grpc
  • dev
  • 108-implement-rpc-call-for-server-side-scripting
  • f-windows-conan-create
  • f-to-string
  • f-update-requirements
  • f-related-projects
  • f-role
  • f-remote-path
  • f-rel-path
  • f-consol-message
  • v0.3.0
  • v0.2.2
  • v0.2.1
  • v0.2.0
  • v0.1.2
  • v0.1.1
  • v0.1
  • v0.0.19
  • v0.0.18
  • v0.0.16
  • v0.0.15
  • v0.0.10
  • v0.0.9
  • v0.0.8
  • v0.0.7
  • v0.0.6
  • v0.0.5
  • v0.0.4
  • v0.0.3
  • v0.0.2
33 results

FetchGRPC.cmake

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    FetchGRPC.cmake 4.70 KiB
    # Copyright 2018 gRPC authors.
    #
    # Licensed under the Apache License, Version 2.0 (the "License");
    # you may not use this file except in compliance with the License.
    # You may obtain a copy of the License at
    #
    #     http://www.apache.org/licenses/LICENSE-2.0
    #
    # Unless required by applicable law or agreed to in writing, software
    # distributed under the License is distributed on an "AS IS" BASIS,
    # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    # See the License for the specific language governing permissions and
    # limitations under the License.
    #
    # cmake build file for C++ route_guide example.
    # Assumes protobuf and gRPC have been installed using cmake.
    # See cmake_externalproject/CMakeLists.txt for all-in-one cmake build
    # that automatically builds all the dependencies before building route_guide.
    
    cmake_minimum_required(VERSION 3.15)
    
    if(MSVC)
      add_definitions(-D_WIN32_WINNT=0x600)
    endif()
    
    find_package(Threads REQUIRED)
    
    # Another way is to use CMake's FetchContent module to clone gRPC at
    # configure time. This makes gRPC's source code available to your project,
    # similar to a git submodule.
    message(STATUS "Using gRPC via add_subdirectory (FetchContent).")
    include(FetchContent)
    FetchContent_Declare(
      grpc
      GIT_REPOSITORY  https://github.com/grpc/grpc.git
      GIT_TAG         v1.38.0
      GIT_SHALLOW     1
    )
    
    # disable a lot of stuff
    set(gRPC_BUILD_TESTS OFF)
    set(gRPC_BUILD_CSHARP_EXT OFF)
    set(gRPC_BUILD_GRPC_CSHARP_PLUGIN OFF)
    set(gRPC_BUILD_GRPC_PYTHON_PLUGIN OFF)
    set(gRPC_BUILD_GRPC_RUBY_PLUGIN OFF)
    set(gRPC_BUILD_GRPC_PHP_PLUGIN OFF)
    set(gRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN OFF)
    set(gRPC_BUILD_GRPC_NODE_PLUGIN OFF)
    set(protobuf_BUILD_TESTS OFF)
    
    FetchContent_MakeAvailable(grpc)
    
    # Since FetchContent uses add_subdirectory under the hood, we can use
    # the grpc targets directly from this build.
    set(_PROTOBUF_LIBPROTOBUF libprotobuf)
    set(_REFLECTION grpc++_reflection)
    set(_PROTOBUF_PROTOC $<TARGET_FILE:protoc>)
    set(_GRPC_GRPCPP grpc++)
    if(CMAKE_CROSSCOMPILING)
    find_program(_GRPC_CPP_PLUGIN_EXECUTABLE grpc_cpp_plugin)
    else()
    set(_GRPC_CPP_PLUGIN_EXECUTABLE $<TARGET_FILE:grpc_cpp_plugin>)
    endif()
    
    set_target_properties(
        zlibstatic
        libprotobuf
        libprotoc
        grpc_plugin_support
        grpc_cpp_plugin
        upb
        address_sorting
        absl_log_severity
        absl_raw_logging_internal
        absl_bad_optional_access
        absl_spinlock_wait
        absl_throw_delegate
        absl_base
        absl_malloc_internal
        absl_debugging_internal
        absl_stacktrace
        absl_strings_internal
        absl_int128
        absl_strings
        absl_demangle_internal
        absl_symbolize
        absl_str_format_internal
        absl_cord
        absl_status
        absl_civil_time
        absl_time_zone
        absl_time
        absl_graphcycles_internal
        absl_synchronization
        gpr
        absl_exponential_biased
        absl_hashtablez_sampler
        absl_raw_hash_set
        absl_wyhash
        absl_city
        absl_bad_variant_access
        absl_hash
        absl_statusor
        c-ares
        re2
        ssl
        crypto
        gen_hpack_tables
        gen_legal_metadata_characters
        check_epollexclusive
        grpcpp_channelz
        gen_percent_encoding_tables
        grpc++_error_details
        grpc_unsecure
        grpc++_alts
        grpc++_unsecure
        absl_strerror
        absl_periodic_sampler
        absl_scoped_set_env
        absl_examine_stack
        absl_failure_signal_handler
        absl_leak_check
        absl_leak_check_disable
        absl_flags_program_name
        absl_flags_config
        absl_flags_commandlineflag_internal
        absl_flags_commandlineflag
        absl_flags_private_handle_accessor
        absl_flags_reflection
        absl_flags_marshalling
        absl_flags_internal
        absl_flags
        absl_flags_usage_internal
        absl_flags_usage
        absl_flags_parse
        absl_random_seed_gen_exception
        absl_random_internal_seed_material
        absl_random_internal_platform
        absl_random_internal_randen_slow
        absl_random_internal_randen_hwaes_impl
        absl_random_internal_randen_hwaes
        absl_random_internal_randen
        absl_random_internal_pool_urbg
        absl_random_distributions
        absl_random_seed_sequences
        absl_random_internal_distribution_test_util
        absl_bad_any_cast_impl
        acountry
        adig
        ahost
        libprotobuf-lite
        testing
        search_test
        regexp_test
        possible_match_test
        mimics_pcre_test
        parse_test
        required_prefix_test
        filtered_re2_test
        compile_test
        re2_arg_test
        charclass_test
        exhaustive1_test
        re2_test
        simplify_test
        string_generator_test
        dfa_test
        exhaustive3_test
        exhaustive2_test
        exhaustive_test
        regexp_benchmark
        random_test
        set_test
        bssl
        zlib
        example64
        minigzip
        example
        minigzip64
        grpc
        grpc++
        protoc
        grpc++_reflection
        PROPERTIES
        CXX_CLANG_TIDY ""
        CXX_INCLUDE_WHAT_YOU_USE ""
        EXCLUDE_FROM_ALL 1)