Explorar el Código

add cef (#279)

* CEF

* CEF3 for windows

* improve cef

* add assert for cef

Co-authored-by: yamashi <[email protected]>
ruki hace 4 años
padre
commit
3677d6df73
Se han modificado 3 ficheros con 54 adiciones y 1 borrados
  1. 12 0
      packages/c/cef/port/xmake.lua
  2. 35 0
      packages/c/cef/xmake.lua
  3. 7 1
      scripts/test.lua

+ 12 - 0
packages/c/cef/port/xmake.lua

@@ -0,0 +1,12 @@
+add_rules("mode.release", "mode.debug")
+target("cef")
+    set_kind("static")
+    add_files("libcef_dll/**.cc")
+    add_includedirs(".")
+    add_headerfiles("include/(**.h)")
+    add_defines("WRAPPING_CEF_SHARED")
+    set_languages("c++14")
+    if is_plat("windows") then
+        -- fix std::max conflict with windows.h
+        add_defines("NOMINMAX")
+    end

+ 35 - 0
packages/c/cef/xmake.lua

@@ -0,0 +1,35 @@
+package("cef")
+
+    set_homepage("https://bitbucket.org/chromiumembedded")
+    set_description("Chromium Embedded Framework (CEF). A simple framework for embedding Chromium-based browsers in other applications.")
+    set_license("BSD-3-Clause")
+
+    add_versions("88.2.1", "8ed01da6327258536c61ada46e14157149ce727e7729ec35a30b91b3ad3cf555")
+
+    set_urls("https://cef-builds.spotifycdn.com/cef_binary_$(version).tar.bz2", {version = function (version)
+        if version:eq("88.2.1") then
+            return "88.2.1+g0b18d0b+chromium-88.0.4324.146_windows64"
+        end
+        return ""
+    end})
+
+    add_includedirs(".", "include")
+
+    if is_plat("windows") then
+        add_syslinks("user32", "advapi32")
+    end
+
+    on_install("windows|x64", function (package)
+        assert(package:config("vs_runtime") == "MT" and not package:config("shared"), "only support static library with MT")
+        package:addenv("PATH", "bin")
+        os.cp("Release/*.lib", package:installdir("lib"))
+        os.cp("Release/*.dll", package:installdir("bin"))
+        os.cp("Resources/*", package:installdir("bin"))
+        local configs = {}
+        os.cp(path.join(package:scriptdir(), "port", "xmake.lua"), "xmake.lua")
+        import("package.tools.xmake").install(package, configs)
+    end)
+
+    on_test(function (package)
+        assert(package:has_cxxfuncs("CefEnableHighDPISupport", {includes = "cef_app.h"}))
+    end)

+ 7 - 1
scripts/test.lua

@@ -101,7 +101,13 @@ function _package_is_supported(argv, packagename)
         local packages_plat = packages[plat]
         for _, package in ipairs(packages_plat) do
             if package and packagename:split("%s+")[1] == package.name then
-                local arch = argv.arch or platform.archs(plat)[1] or os.arch()
+                local arch = argv.arch
+                if not arch and plat ~= os.subhost() then
+                    arch = platform.archs(plat)[1]
+                end
+                if not arch then
+                    arch = os.subarch()
+                end
                 for _, package_arch in ipairs(package.archs) do
                     if arch == package_arch then
                         return true