Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

grpc-proto: use host_version for protobuf in build requirements and bump protobuf #20091

Merged
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 10 additions & 6 deletions recipes/grpc-proto/all/conanfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@

from conan import ConanFile, conan_version
from conan.errors import ConanInvalidConfiguration
from conan.tools.build import can_run, check_min_cppstd
from conan.tools.build import check_min_cppstd
from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout
from conan.tools.env import VirtualBuildEnv, VirtualRunEnv
from conan.tools.files import get, collect_libs, copy
from conan.tools.scm import Version

from helpers import parse_proto_libraries

required_conan_version = ">=1.53.0"
required_conan_version = ">=1.60.0 <2.0 || >=2.0.5"


class GRPCProto(ConanFile):
Expand All @@ -33,6 +33,10 @@ class GRPCProto(ConanFile):
}
exports = "helpers.py"

@property
def _is_legacy_one_profile(self):
return not hasattr(self, "settings_build")

def export_sources(self):
copy(self, "CMakeLists.txt", src=self.recipe_folder, dst=self.export_sources_folder)

Expand All @@ -56,7 +60,7 @@ def layout(self):
def requirements(self):
# protobuf symbols are exposed from generated structures
# https://github.com/conan-io/conan-center-index/pull/16185#issuecomment-1501174215
self.requires("protobuf/3.21.9", transitive_headers=True, transitive_libs=True, run=can_run(self))
self.requires("protobuf/3.21.12", transitive_headers=True, transitive_libs=True)
self.requires("googleapis/cci.20230501")

def validate(self):
Expand All @@ -71,16 +75,16 @@ def validate(self):
)

def build_requirements(self):
if not can_run(self):
self.tool_requires("protobuf/3.21.9")
if not self._is_legacy_one_profile:
self.tool_requires("protobuf/<host_version>")

def source(self):
get(self, **self.conan_data["sources"][self.version], strip_root=True)

def generate(self):
env = VirtualBuildEnv(self)
env.generate()
if can_run(self):
if self._is_legacy_one_profile:
env = VirtualRunEnv(self)
env.generate(scope="build")
tc = CMakeToolchain(self)
Expand Down