From cdccff74cc5b940fa3cf9f6202f22651832152a0 Mon Sep 17 00:00:00 2001 From: lsq Date: Wed, 24 Sep 2025 22:08:41 +0800 Subject: [PATCH] chore(cli): add support for x86_64-pc-windows-gnu (#2935) Co-authored-by: lsq --- cli/src/api/new.ts | 1 + cli/src/api/templates/js-binding.ts | 6 +++++- .../__tests__/__snapshots__/target.spec.ts.md | 7 +++++++ .../__snapshots__/target.spec.ts.snap | Bin 1498 -> 1539 bytes cli/src/utils/target.ts | 1 + 5 files changed, 14 insertions(+), 1 deletion(-) diff --git a/cli/src/api/new.ts b/cli/src/api/new.ts index a39dfb99..81abe67e 100644 --- a/cli/src/api/new.ts +++ b/cli/src/api/new.ts @@ -169,6 +169,7 @@ async function filterTargetsInGithubActions( const macOSAndWindowsTargets = new Set([ 'x86_64-pc-windows-msvc', + 'x86_64-pc-windows-gnu', 'aarch64-pc-windows-msvc', 'x86_64-apple-darwin', ]) diff --git a/cli/src/api/templates/js-binding.ts b/cli/src/api/templates/js-binding.ts index b0d4ac6f..fa311fc8 100644 --- a/cli/src/api/templates/js-binding.ts +++ b/cli/src/api/templates/js-binding.ts @@ -146,7 +146,11 @@ function requireNative() { } } else if (process.platform === 'win32') { if (process.arch === 'x64') { - ${requireTuple('win32-x64-msvc')} + if (process.report?.getReport?.()?.header?.osName?.startsWith?.('MINGW')) { + ${requireTuple('win32-x64-gnu')} + } else { + ${requireTuple('win32-x64-msvc')} + } } else if (process.arch === 'ia32') { ${requireTuple('win32-ia32-msvc')} } else if (process.arch === 'arm64') { diff --git a/cli/src/utils/__tests__/__snapshots__/target.spec.ts.md b/cli/src/utils/__tests__/__snapshots__/target.spec.ts.md index 19d0f442..fd6d6cf5 100644 --- a/cli/src/utils/__tests__/__snapshots__/target.spec.ts.md +++ b/cli/src/utils/__tests__/__snapshots__/target.spec.ts.md @@ -65,6 +65,13 @@ Generated by [AVA](https://avajs.dev). platformArchABI: 'win32-x64-msvc', triple: 'x86_64-pc-windows-msvc', }, + { + abi: 'gnu', + arch: 'x64', + platform: 'win32', + platformArchABI: 'win32-x64-gnu', + triple: 'x86_64-pc-windows-gnu', + }, { abi: 'gnu', arch: 'x64', diff --git a/cli/src/utils/__tests__/__snapshots__/target.spec.ts.snap b/cli/src/utils/__tests__/__snapshots__/target.spec.ts.snap index 311ec82ab0f6612c30659ee580e8f0f7369876d8..c6583d6df94743f73c8ccd312d58a075f0f7d175 100644 GIT binary patch literal 1539 zcmV+e2K@O!RzVlcmCoqa`3 zlL~x-5+92Q00000000BcmsyBgRT#&Ar!(1?n|+zK(t;=!;o7*|PL$A-YM^G(;FtKtzPt zC*%c1g!oK=5Hb#|0mK>;~po5WPHbo zVHtmQVnoLC20=t+yvvC(8J}`uT*fb)sLAN_fk?=>(TPbJZ6~H=e8q`r8NYX8M#h34 zL{`RaPRz-;*NJ(j8~%6w@Sz_L`{6G?oD+as1D*e%f7{4Tqudm$W@93ekl4egN}dS7 zYXO)E!0`Z_A5^db7j{<=#)5EP5MB(z=Rp_@DcGP3+Zci^As7k4o)ElpD*vEjJ{Pt+ z4C}*iO&D$u!vkUXAgo}17j`l%JH+}3To(cJRNfy^uz(BuCIW{ea6AI}C~S&CBdTCQ z7xsJi(m`TF1B;-=CHKkyh3%e%;dsFag3O-H2FDW=btzZckR!KuG4Ns=w zjWm3hhFnI$k}hm}25!l~bOxTu!27522^CAZunV(rc^0;1VIm99X5mm)!O|`)lmjgX z7v$jP98Bfl^_+rbT-ebZ{FZ}M9)|O9TORi16)fw*X7ccL9)8b5t^gYgU>6iD=fVya z;LQRYD!?BFSW|@UMFq>dum_6pXb}z;;maZ%FT#c)1uM8PV+eK)!9zoEU02}ZhL5- zJy~9c_O;B~rI&bZpDgaS&%M8*m+$H|%B7ZB8?CqO4z>8+4NNWfTnu;SqI+RQCp~rL z@SO`9ieB2}MQA}yinp6I<*7xvj?;oVDKtN{=m|+ z$EebL7og~^)vfW#E8Nqg%l7dMJHN;OKs0k&blxjaOwa0NIv4KuO?B#)D!ITXnZ%qY znNpAaUFRyP_>V`KHnsSv5}K%)lZIvM>bPFw=_=7VUCp<=I$vh%7Iw_)ckd2V>-E}> zWxmfP+a2gE-TxlGR#qXk2xpIo@VU%p+ph(l&ex6e2={Vm-d?|+Bywa&b!miCgR9*Cl~ pW=>_PVHuOA(YmfuTIf9;l?Q`wl6`Wv(G7>0ct004t5?~(uj literal 1498 zcmV<01tt1HRzVGr4(vTD!E$H3a> z2+`$hjvtE%00000000BcmraZlWf;eQ@9y^dW2WEj0%jv7CYl;_ab+(cXkv^}An_nz zB(v@8w$g3uwB0VEF%To_#gIUVVl;3uF%d{)UEqD-6mTB+47dpV z2wVaF0Qv-k1f&J56>yJ$Q2`GN*eYPB09`;;z&-&n;f@H`X2a0-3eic5q9FW;6e1wR zE5f>%fDj)E5WCB3dip_lthmvPUMn`t=(FMn zX7pR}Co=}DI5+?zXvOVj3|aA2Gls2r&Wwr`ubEM`V%7yBV#T}}qgFg-#+VhqG-KR~ zJ~xPj6(2NX(){?{O*g#ghNEsc?S>!R5cjk{Huu)CXZ2iN^vy<9RW0lh4?OOH2@kyH zfs-EiMaKGV*q|4Nys*g&nimdw;bX6a4cM@2UYPO1Y9DO$LEZ;%`y|X|!@lytB_CY% zLCOyg`QZh>gt=|lDL4&ue*cFg4j}1E%fTIC88GtVWa6JHb1trXD!=4Vp zSP%{b;Y1KV4Z>eC=CfhLAs7w8Qz4iR!8;+i5Rx#z4fBUV4a2%HYzxCw7(NI~Sipw; z9EM-RFrdI43T#v0pdw*G8+J~CPZYSUz~2hoslrZG!a_Fe4Hb^4a7u-XD$J-b9FefF z4I7U@DFTNga54g4M<5!NFvW&F5rrqC@O%{Bio*FQ%*dE(!$xDUDF(Y^@KOxki^1iX zghgyvA`YwKaDN_P&*Nx=04tWLs~ zBeR5^hhyj+BHYY}k<$981BO6nvM0zBG)cB`j&fDrsn>;Yb=j zOvCqSP%{#ivSE*9V0#9h%fR6boX)@%8B5=cg{+CK5EFfIbE3N;W;KiI0yc3axrdX9Ep z#x?U|M%HJwYPFldI@F8IL7aRm=kco)Dm4e~t4-yWp?%F_dH6o3?X!wI?X&MM>7_b))m*k& zEaxlDTANyY@A{{gdoKFhbJ4!Aq!XLoFtU3=L(xf_oCqzbN#RzLrX95?*>+k`ha3z> zM^+1&9HG{&G3{h1rrT00FcX*ED}2MN_dLvW60`2nNN=Zp+cAuq=jDezNn+8jp8A@wrnCm(i8u8-DhLHu24Bte#p=)Es z!uTyarWupVdV|Ggj~v)!_YPy?RZL;?hzS}zU zo?2Q