Skip to content

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})

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})

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.