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) {