Browse Source

Auto-update glbinding to v3.4.0 (#6784)

* Update glbinding to v3.4.0

* fix cmake

* fix cmake version

* fix mingw

---------

Co-authored-by: star9029 <[email protected]>
ruki 4 months ago
parent
commit
f7cb2040db
1 changed files with 40 additions and 6 deletions
  1. 40 6
      packages/g/glbinding/xmake.lua

+ 40 - 6
packages/g/glbinding/xmake.lua

@@ -6,6 +6,7 @@ package("glbinding")
     add_urls("https://github.com/cginternals/glbinding/archive/refs/tags/$(version).tar.gz",
              "https://github.com/cginternals/glbinding.git")
 
+    add_versions("v3.4.0", "0f623f9eb924d9e24124fd014c877405560f8864a4a1f9b1f92a160dfa32f816")
     add_versions("v3.3.0", "a0aa5e67b538649979a71705313fc2b2c3aa49cf9af62a97f7ee9a665fd30564")
     add_versions("v3.1.0", "6729b260787108462ec6d8954f32a3f11f959ada7eebf1a2a33173b68762849e")
     add_versions("v3.0.2", "23a383f3ed31af742a4952b6c26faa9c346dd982ba9112c68293a578a6e542ad")
@@ -16,37 +17,70 @@ package("glbinding")
     add_versions("v2.1.1", "cf5f32aa09c3427b0f5c9626fe83aa1473da037d55b6f14f8753b2d9159cc91d")
     add_versions("v2.0.0", "fd09a469b9bd84e44cd0a33e76fb62413678a926601934b3eb0d8956ba11ec3a")
 
+    add_configs("tools", {description = "Build tools", default = false, type = "boolean"})
+
     if is_plat("linux") then
         add_extsources("apt::libglbinding-dev", "pacman::glbinding")
     elseif is_plat("macosx") then
         add_extsources("brew::glbinding")
     end
 
+    if is_plat("linux", "bsd", "mingw") then
+        add_syslinks("pthread")
+    end
+
     add_deps("cmake", "khrplatform")
 
+    if on_check then
+        on_check("mingw", function (package)
+            if not package:is_arch64() then
+                raise("package(glbinding) compiler may out of memory")
+            end
+        end)
+    end
+
     on_load(function (package)
-        if package:version():major() < 3 then
+        if package:version() and package:version():major() < 3 then
             if is_plat("linux") then
                 package:add("deps", "glx")
             elseif is_plat("windows", "mingw") then
                 package:add("deps", "opengl")
             end
         end
+
+        if package:is_debug() then
+            package:add("links", "glbinding-auxd", "glbindingd")
+        else
+            package:add("links", "glbinding-aux", "glbinding")
+        end
+
+        if not package:config("shared") then
+            package:add("defines", "GLBINDING_STATIC_DEFINE", "GLBINDING_AUX_STATIC_DEFINE")
+        end
     end)
 
     on_install(function (package)
-        local configs = {}
+        io.replace("CMakeLists.txt", "cmake_minimum_required(VERSION 3.0 FATAL_ERROR)", "cmake_minimum_required(VERSION 3.0)", {plain = true})
+        -- fix install path
+        io.replace("CMakeLists.txt", "if(UNIX AND SYSTEM_DIR_INSTALL)", "if(1)", {plain = true})
+        io.replace("cmake/CompileOptions.cmake", "POSITION_INDEPENDENT_CODE ON", "", {plain = true})
+
+        local configs = {
+            "-DCMAKE_POLICY_DEFAULT_CMP0057=NEW",
+            "-DOPTION_BUILD_TESTS=OFF",
+            "-DOPTION_BUILD_EXAMPLES=OFF",
+            "-DOPTION_SELF_CONTAINED=OFF",
+            "-DOPTION_BUILD_OWN_KHR_HEADERS=ON",
+        }
         table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:is_debug() and "Debug" or "Release"))
         table.insert(configs, "-DBUILD_SHARED_LIBS=" .. (package:config("shared") and "ON" or "OFF"))
-        table.insert(configs, "-DOPTION_BUILD_TESTS=OFF")
-        table.insert(configs, "-DOPTION_BUILD_OWN_KHR_HEADERS=ON")
-
+        table.insert(configs, "-DOPTION_BUILD_TOOLS=" .. (package:config("tools") and "ON" or "OFF"))
         import("package.tools.cmake").install(package, configs)
     end)
 
     on_test(function (package)
         -- Breaking changes since v3.x.x
-        if package:version():major() >= 3 then
+        if package:version() and package:version():major() >= 3 then
             assert(package:check_cxxsnippets({test = [[
                 #include <glbinding/glbinding.h>
                 #include <glbinding/gl/gl.h>