protobuf = { source = path.join(dependencies.basePath, "protobuf"), } function protobuf.import() links { "protobuf" } protobuf.includes() end function protobuf.includes() includedirs { path.join(protobuf.source, "src"), } end function protobuf.project() project "protobuf" language "C++" protobuf.includes() files { path.join(protobuf.source, "src/**.cc"), "./src/**.proto", } removefiles { path.join(protobuf.source, "src/**/*test.cc"), path.join(protobuf.source, "src/google/protobuf/*test*.cc"), path.join(protobuf.source, "src/google/protobuf/testing/**.cc"), path.join(protobuf.source, "src/google/protobuf/compiler/**.cc"), path.join(protobuf.source, "src/google/protobuf/arena_nc.cc"), path.join(protobuf.source, "src/google/protobuf/util/internal/error_listener.cc"), path.join(protobuf.source, "**/*_gcc.cc"), } rules { "ProtobufCompiler" } defines { "_SCL_SECURE_NO_WARNINGS", "_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS", "_SILENCE_ALL_CXX20_DEPRECATION_WARNINGS", } linkoptions { "-IGNORE:4221" } warnings "Off" kind "StaticLib" end table.insert(dependencies, protobuf)