From 973aa55c5f54db8d067a29ea43abb8d44b2430da Mon Sep 17 00:00:00 2001 From: Daniel LaCosse <3759828+daniellacosse@users.noreply.github.com> Date: Fri, 19 Jan 2024 14:23:08 -0500 Subject: [PATCH] fix(electron/windows): build windows on linux (#1818) * fix(electron/windows): build windows on linux * use go build when the target and host platforms match [WIP] * oops * scope to electron * revert windows job changes * lol ai * fix path * resolve current platform --- src/tun2socks/build.action.mjs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/tun2socks/build.action.mjs b/src/tun2socks/build.action.mjs index 6a1f2694d9..86d4fb8900 100644 --- a/src/tun2socks/build.action.mjs +++ b/src/tun2socks/build.action.mjs @@ -13,6 +13,7 @@ // limitations under the License. import url from 'url'; +import os from 'os'; import {spawnStream} from '../build/spawn_stream.mjs'; import {getBuildParameters} from '../build/get_build_parameters.mjs'; @@ -22,9 +23,15 @@ import {getBuildParameters} from '../build/get_build_parameters.mjs'; * @param {string[]} parameters */ export async function main(...parameters) { - const {platform} = getBuildParameters(parameters); + const {platform: targetPlatform} = getBuildParameters(parameters); - await spawnStream('make', ['ios', 'macos', 'maccatalyst'].includes(platform) ? 'apple' : platform); + const currentPlatform = os.platform() === 'win32' ? 'windows' : os.platform(); + + if (targetPlatform === currentPlatform && ['linux', 'windows'].includes(targetPlatform)) { + return spawnStream('go', 'build', '-o', `output/build/${targetPlatform}/tun2socks`, 'github.com/Jigsaw-Code/outline-client/src/tun2socks/outline/electron'); + } + + await spawnStream('make', ['ios', 'macos', 'maccatalyst'].includes(targetPlatform) ? 'apple' : targetPlatform); } if (import.meta.url === url.pathToFileURL(process.argv[1]).href) {