Переглянути джерело

magic_enum: compatible with includedirs (#5979)

star9029 7 місяців тому
батько
коміт
da9dc22088
1 змінених файлів з 21 додано та 39 видалено
  1. 21 39
      packages/m/magic_enum/xmake.lua

+ 21 - 39
packages/m/magic_enum/xmake.lua

@@ -1,12 +1,12 @@
 package("magic_enum")
     set_kind("library", {headeronly = true})
-
     set_homepage("https://github.com/Neargye/magic_enum")
     set_description("Static reflection for enums (to string, from string, iteration) for modern C++, work with any enum type without any macro or boilerplate code")
     set_license("MIT")
 
     add_urls("https://github.com/Neargye/magic_enum/archive/refs/tags/$(version).tar.gz",
              "https://github.com/Neargye/magic_enum.git")
+
     add_versions("v0.7.3", "b8d0cd848546fee136dc1fa4bb021a1e4dc8fe98e44d8c119faa3ef387636bf7")
     add_versions("v0.8.0", "5e7680e877dd4cf68d9d0c0e3c2a683b432a9ba84fc1993c4da3de70db894c3c")
     add_versions("v0.8.1", "6b948d1680f02542d651fc82154a9e136b341ce55c5bf300736b157e23f9df11")
@@ -18,10 +18,14 @@ package("magic_enum")
 
     add_configs("modules", {description = "Build with C++20 modules support.", default = false, type = "boolean"})
 
+    -- after v0.9.6 include files need to be prepended with magic_enum directory
+    add_includedirs("include", "include/magic_enum")
+
     add_deps("cmake")
 
     on_install(function (package)
-        if package:version():lt("v0.9.6") or not package:config("modules") then
+        local version = package:version()
+        if version:lt("0.9.6") or not package:config("modules") then
             local configs = {
                 "-DMAGIC_ENUM_OPT_BUILD_EXAMPLES=OFF",
                 "-DMAGIC_ENUM_OPT_BUILD_TESTS=OFF",
@@ -30,46 +34,24 @@ package("magic_enum")
             table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:debug() and "Debug" or "Release"))
             import("package.tools.cmake").install(package, configs)
         else
-            if package:version():eq("v0.9.6") then
-                io.writefile("xmake.lua", [[ 
-                    target("magic_enum")
-                        set_kind("moduleonly")
-                        set_languages("c++20")
-                        add_headerfiles("include/magic_enum/**.hpp")
-                        add_includedirs("include/magic_enum")
-                        add_files("module/**.cppm", {public = true})
-                ]])
-            else
-                -- after v0.9.6 include files need to be prepended with magic_enum directory
-                io.writefile("xmake.lua", [[ 
-                    target("magic_enum")
-                        set_kind("moduleonly")
-                        set_languages("c++20")
-                        add_headerfiles("include/(magic_enum/**.hpp)")
-                        add_includedirs("include")
-                        add_files("module/**.cppm", {public = true})
-                ]])
-            end
+            io.writefile("xmake.lua", [[ 
+                target("magic_enum")
+                    set_kind("moduleonly")
+                    set_languages("c++20")
+                    add_headerfiles("include/(magic_enum/**.hpp)")
+                    add_includedirs("include")
+                    add_files("module/**.cppm", {public = true})
+            ]])
             import("package.tools.xmake").install(package)
         end
     end)
 
     on_test(function (package)
-        if package:version():le("v0.9.6") then
-            assert(package:check_cxxsnippets({test = [[
-                enum class Color { RED = 2, BLUE = 4, GREEN = 8 };
-                void test() {
-                    Color color = Color::RED;
-                    auto color_name = magic_enum::enum_name(color);
-                }
-            ]]}, {configs = {languages = "c++17"}, includes = "magic_enum.hpp"}))
-        else
-            assert(package:check_cxxsnippets({test = [[
-                enum class Color { RED = 2, BLUE = 4, GREEN = 8 };
-                void test() {
-                    Color color = Color::RED;
-                    auto color_name = magic_enum::enum_name(color);
-                }
-            ]]}, {configs = {languages = "c++17"}, includes = "magic_enum/magic_enum.hpp"}))
-        end
+        assert(package:check_cxxsnippets({test = [[
+            enum class Color { RED = 2, BLUE = 4, GREEN = 8 };
+            void test() {
+                Color color = Color::RED;
+                auto color_name = magic_enum::enum_name(color);
+            }
+        ]]}, {configs = {languages = "c++17"}, includes = "magic_enum.hpp"}))
     end)