diff options
Diffstat (limited to 'bundle.lua')
| -rw-r--r-- | bundle.lua | 183 |
1 files changed, 0 insertions, 183 deletions
diff --git a/bundle.lua b/bundle.lua deleted file mode 100644 index f277ba3bc..000000000 --- a/bundle.lua +++ /dev/null @@ -1,183 +0,0 @@ --- Copyright Epic Games, Inc. All Rights Reserved. - --------------------------------------------------------------------------------- -local function _exec(cmd, ...) - print("--", cmd, ...) - local ret = os.execv(cmd, {...}) - print() - return ret -end - --------------------------------------------------------------------------------- -local function _build(arch, debug, config_args) - variant = debug and "debug" or "release" - local ret = _exec( - "xmake", - "config", - "--yes", - "--clean", - "--mode="..variant, - "--arch="..arch, - config_args) - if ret > 0 then - raise("Failed to configure xmake") - end - - ret = _exec("xmake", "clean", "--yes", "zenserver") - if ret > 0 then - raise("Clean failed") - end - - ret = _exec("xmake", "build", "--yes", "zenserver") - if ret > 0 then - raise("Build failed") - end -end - --------------------------------------------------------------------------------- -local function _zip(zip_path, ...) - os.tryrm(zip_path) - - import("detect.tools.find_7z") - local cmd = find_7z() - if cmd then - -- A ./ prefix makes 7z ignore the directory structure - input_paths = {} - for _, input_path in ipairs({...}) do - input_path = path.relative(input_path, ".") - if input_path:sub(2,2) ~= ":" then - input_path = "./"..input_path - end - table.insert(input_paths, input_path) - end - - local ret = _exec("7z", "a", zip_path, table.unpack(input_paths)) - if ret > 0 then - raise("Received error from 7z") - end - return - end - print("7z not found") - - import("detect.tools.find_zip") - cmd = find_zip() - if cmd then - local ret = _exec("zip", "--junk-paths", zip_path, ...) - if ret > 0 then - raise("Received error from zip") - end - return - end - print("zip not found") - - raise("Unable to find a suitable zip tool") -end - --------------------------------------------------------------------------------- -local function _find_vcpkg_binary(triple, port, binary) - import("detect.sdks.find_vcpkgdir") - local root_dir = find_vcpkgdir() - if root_dir == nil or root_dir == "" then - raise("Unable to find vcpkg root directory") - end - - bin_path = root_dir.."/installed/"..triple.."/tools/"..port.."/"..binary - if not os.isfile(bin_path) then - raise("Unable to locate vcpkg tool "..bin_path) - end - - return bin_path -end - --------------------------------------------------------------------------------- -local function main_windows() - import("core.base.option") - - zip_path = "build/zenserver-win64.zip" - config_args = nil - if option.get("withtrace") then - zip_path = "build/zenserver-trace-win64.zip" - config_args = "--zentrace=yes" - end - - _build("x64", false, config_args) - - local crashpad_handler_path = _find_vcpkg_binary( - "x64-windows-static", - "sentry-native", - "crashpad_handler.exe") - - _zip( - zip_path, - "build/windows/x64/release/zenserver.exe", - "build/windows/x64/release/zenserver.pdb", - crashpad_handler_path) -end - --------------------------------------------------------------------------------- -local function main_mac() - -- Build and universalify - _build("x86_64") - _build("arm64") - - os.mkdir("build/macosx/universal/release/") - local ret = _exec( - "lipo", - "-create", - "-output", "build/macosx/universal/release/zenserver", - "build/macosx/x86_64/release/zenserver", - "build/macosx/arm64/release/zenserver" - ) - if ret > 0 then - raise("Failed creating univeral binary") - end - - -- At the time of writing vcpkg does not support sentry-native on arm64. Once - -- it does we can create a univeral binary for this. For now just bundle x64 - local crashpad_handler_path = _find_vcpkg_binary( - "x64-osx", - "sentry-native", - "crashpad_handler") - - -- Zip - _zip( - "build/zenserver-macos.zip", - "build/macosx/universal/release/zenserver", - crashpad_handler_path) -end - --------------------------------------------------------------------------------- -local function main_linux() - _build("x86_64") - - -- Crashpad handler does not exist for Linux - local crashpad_handler_path = nil - --[[ - local crashpad_handler_path = _find_vcpkg_binary( - "x64-linux", - "sentry-native", - "crashpad_handler") - --]] - - _zip( - "build/zenserver-linux.zip", - "build/linux/x86_64/release/zenserver", - crashpad_handler_path) -end - --------------------------------------------------------------------------------- -function main() - if is_host("windows") then - return main_windows() - end - - if is_host("mac") then - return main_mac() - end - - if is_host("linux") then - return main_linux() - end - - raise("'xmake bundle' not currently supported on this platform") -end |