blob: e762bd530f1c7d3596ba47ff9d33a2b53162c0fd [file] [log] [blame]
from conans import ConanFile, CMake
class SimpleProtosConan(ConanFile):
name = "simple_protos"
version = "1.0.0"
description = "An example of importing nanopb as a conan artifact"
settings = "os", "compiler", "build_type", "arch"
generators = "cmake"
exports = "*"
def requirements(self):
self.requires("nanopb/0.4.6")
def imports(self):
# Includes the nanopb headers
self.copy("*.h")
# Includes the compiled nanopb libraries
self.copy("*", src="lib", dst="lib")
# Includes the protoc plugin
self.copy("*", src="bin", dst="bin")
# Includes the python libraries that `bin` reaches out to
self.copy("*", src="local", dst="local")
def source(self):
# To include the packages from nanopb, we need to get their path in cache
nanopb_package_root = self.deps_cpp_info["nanopb"].rootpath
python_path=f"PYTHONPATH={nanopb_package_root}/local/lib/python3.10/dist-packages"
plugin=f"--plugin={nanopb_package_root}/bin/protoc-gen-nanopb"
# These next values grab this environments source and proto directories
output=f"--nanopb_out={self.source_folder}/src"
proto_flags=f"-I {self.source_folder}/protos simple.proto"
self.run(f"{python_path} protoc {plugin} {output} {proto_flags}")
def build(self):
cmake = CMake(self)
cmake.configure()
cmake.build()
def package(self):
self.copy("simple", dst="bin", src="bin")