瀏覽代碼

fix reflect-cpp compilation when msgpack is enabled (#6205)

* fix reflect-cpp compilation when msgpack is enabled

* add test when msgpack is enabled

---------

Co-authored-by: mirage-alchemy <[email protected]>
mirageAlchemy 7 月之前
父節點
當前提交
fc3bc1fc78
共有 2 個文件被更改,包括 32 次插入0 次删除
  1. 13 0
      packages/r/reflect-cpp/patches/0.16.0/cmake.patch
  2. 19 0
      packages/r/reflect-cpp/xmake.lua

+ 13 - 0
packages/r/reflect-cpp/patches/0.16.0/cmake.patch

@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2e16468..38d289f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -138,7 +138,7 @@ if (REFLECTCPP_MSGPACK)
+     if(REFLECTCPP_USE_VCPKG)
+         find_package(msgpack-c CONFIG REQUIRED)
+     else()
+-        find_package(msgpack CONFIG REQUIRED)
++        find_package(msgpack-c CONFIG REQUIRED)
+     endif()
+     target_link_libraries(reflectcpp PUBLIC msgpack-c)
+ endif ()

+ 19 - 0
packages/r/reflect-cpp/xmake.lua

@@ -14,6 +14,7 @@ package("reflect-cpp")
     add_versions("v0.11.1", "e45f112fb3f14507a4aa53b99ae2d4ab6a4e7b2d5f04dd06fec00bf7faa7bbdc")
     add_versions("v0.11.1", "e45f112fb3f14507a4aa53b99ae2d4ab6a4e7b2d5f04dd06fec00bf7faa7bbdc")
     add_versions("v0.10.0", "d2c8876d993ddc8c57c5804e767786bdb46a2bdf1a6cd81f4b14f57b1552dfd7")
     add_versions("v0.10.0", "d2c8876d993ddc8c57c5804e767786bdb46a2bdf1a6cd81f4b14f57b1552dfd7")
 
 
+    add_patches("0.16.0", "patches/0.16.0/cmake.patch", "1b2a6e0ed81dd0bd373bd1daaf52010de965f3829e5e19406c53e8ebf0a5b9fc")
     add_patches("0.11.1", "patches/0.11.1/cmake.patch", "a43ae2c6de455054ab860adfb309da7bd376c31c493c8bab0ebe07aae0805205")
     add_patches("0.11.1", "patches/0.11.1/cmake.patch", "a43ae2c6de455054ab860adfb309da7bd376c31c493c8bab0ebe07aae0805205")
     add_patches("0.10.0", "patches/0.10.0/cmake.patch", "b8929c0a13bd4045cbdeea0127e08a784e2dc8c43209ca9f056fff4a3ab5c4d3")
     add_patches("0.10.0", "patches/0.10.0/cmake.patch", "b8929c0a13bd4045cbdeea0127e08a784e2dc8c43209ca9f056fff4a3ab5c4d3")
 
 
@@ -141,4 +142,22 @@ package("reflect-cpp")
                 auto homer2 = rfl::json::read<Person>(json_string).value();
                 auto homer2 = rfl::json::read<Person>(json_string).value();
             }   
             }   
         ]]}, {configs = {languages = "c++20"}}))
         ]]}, {configs = {languages = "c++20"}}))
+        if package:config("msgpack") then
+            assert(package:check_cxxsnippets({test = [[
+                #include <rfl/msgpack.hpp>
+                #include <rfl.hpp>
+                struct Person {
+                    std::string first_name;
+                    std::string last_name;
+                    int age;
+                };
+                const auto homer = Person{.first_name = "Homer",
+                                          .last_name = "Simpson",
+                                          .age = 45};
+                void test() {
+                    std::vector<char> msgpack_str_vec = rfl::msgpack::write(homer);
+                    auto homer2 = rfl::msgpack::read<Person>(msgpack_str_vec).value();
+                }
+            ]]}, {configs = {languages = "c++20"}}))
+        end
     end)
     end)