xmake.lua 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package("protobuf-cpp")
  2. set_homepage("https://developers.google.com/protocol-buffers/")
  3. set_description("Google's data interchange format for cpp")
  4. add_urls("https://github.com/protocolbuffers/protobuf/releases/download/v$(version)/protobuf-cpp-$(version).zip")
  5. add_versions("3.8.0", "91ea92a8c37825bd502d96af9054064694899c5c7ecea21b8d11b1b5e7e993b5")
  6. if is_plat("windows") then
  7. add_deps("cmake")
  8. end
  9. add_links("protobuf")
  10. on_load(function (package)
  11. package:addenv("PATH", "bin")
  12. end)
  13. on_install("windows", function (package)
  14. os.cd("cmake")
  15. import("package.tools.cmake").install(package)
  16. end)
  17. on_install("linux", "macosx", function (package)
  18. import("package.tools.autoconf").install(package, {"--enable-shared=no"})
  19. end)
  20. on_test(function (package)
  21. io.writefile("test.proto", [[
  22. syntax = "proto3";
  23. package test;
  24. message TestCase {
  25. string name = 4;
  26. }
  27. message Test {
  28. repeated TestCase case = 1;
  29. }
  30. ]])
  31. os.vrun("protoc test.proto --cpp_out=.")
  32. assert(package:check_cxxsnippets({test = io.readfile("test.pb.cc")}, {configs = {includedirs = {".", package:installdir("include")}, languages = "c++11"}}))
  33. end)