## Using c library ```lua add_requires("protobuf-c") target("console_c")      set_kind("binary")      add_packages("protobuf-c") add_rules("protobuf.c")      add_files("src/*.c")      add_files("src/*.proto") ``` We can also set ``proto_public = true`` to export the proto's header search directory and make it available for other parent targets to inherit from. ```lua add_packages("protobuf-c", {public = true}) add_files("src/**.proto", {proto_public = true}) ``` ::: tip NOTE Since the headers generated by protobuf reference the headers of the protobuf-c package, we also need to mark the package headers as `{public = true}` to export it. ::: ## Using the C++ library ```lua add_requires("protobuf-cpp") target("console_c++")      set_kind("binary")      set_languages("c++11")      add_packages("protobuf-cpp") add_rules("protobuf.cpp")      add_files("src/*.cpp")      add_files("src/*.proto") ``` We can also set ``proto_public = true`` to export the proto's header search directory and make it available for other parent targets to inherit from. ```lua add_packages("protobuf-cpp", {public = true}) add_files("src/**.proto", {proto_public = true}) ``` ::: tip NOTE Since the headers generated by protobuf reference the headers of the protobuf-cpp package, we also need to mark the package headers as `{public = true}` to export it. :::