-
-
Notifications
You must be signed in to change notification settings - Fork 425
/
install_cef.lua
68 lines (52 loc) · 2.17 KB
/
install_cef.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
require 'utils'
premake.modules.install_cef = {}
-- Config variables
local CEF_PATH = "vendor/cef3/"
local CEF_URL_PREFIX = "https://mirror.mtasa.com/bdata/cef/"
local CEF_URL_SUFFIX = "_windows32_minimal.tar.bz2"
local CEF_VERSION = "79.1.10+g7ec49fa+chromium-79.0.3945.117" -- Change here to update CEF version
function make_cef_download_url()
return CEF_URL_PREFIX..http.escapeUrlParam(CEF_VERSION)..CEF_URL_SUFFIX
end
newaction {
trigger = "install_cef",
description = "Downloads and installs CEF",
execute = function()
-- Only execute on Windows
if os.host() ~= "windows" then return end
-- Download md5
local correct_checksum, result_string = http.get(make_cef_download_url()..".md5")
if result_string ~= "OK" and result_string then
print("Could not check CEF checksum: "..result_string)
return -- Do nothing and rely on earlier installed files (to allow working offline)
-- TODO(jusonex): It might make sense to fallback to spotify cef mirror
end
-- Trim whitespace
correct_checksum = correct_checksum:gsub("[%s%c]", "")
-- Check md5
local archive_path = CEF_PATH.."temp.tar.bz2"
if os.isfile(archive_path) and os.md5_file(archive_path) == correct_checksum then
print("CEF consistency checks succeeded")
return
end
-- Download CEF
print("Downloading CEF...")
http.download(make_cef_download_url(), archive_path)
-- Delete old CEF files
-- TODO: It might be better to download the files into a new folder and delete this folder at once
os.rmdir(CEF_PATH.."cmake")
os.rmdir(CEF_PATH.."include")
os.rmdir(CEF_PATH.."libcef_dll")
os.rmdir(CEF_PATH.."Release")
os.rmdir(CEF_PATH.."Resources")
os.remove_wildcard(CEF_PATH.."*.txt")
-- Extract first bz2 and then tar
os.extract_archive(archive_path, CEF_PATH, true) -- Extract .tar.bz2 to .tar
os.extract_archive(CEF_PATH.."temp.tar", CEF_PATH, true) -- Extract .tar
-- Move all files from cef_binary*/* to ./
os.expanddir_wildcard(CEF_PATH.."cef_binary*", CEF_PATH)
-- Delete .tar archive, but keep .tar.bz2 for checksumming
os.remove(CEF_PATH.."temp.tar")
end
}
return premake.modules.install_cef