setup-cpp/dist/legacy/setup-cpp.js

45 lines
273 KiB
JavaScript
Raw Normal View History

2023-07-16 06:41:58 +08:00
#!/usr/bin/env node
let e,t,r,n,i,o,s,a;function l(e,t,r,n){Object.defineProperty(e,t,{get:r,set:n,enumerable:!0,configurable:!0});}function c(e){return e&&e.__esModule?e.default:e;}function u(e,t,r){if("function"==typeof t&&(r=t,t={}),!r){if("function"!=typeof Promise)throw TypeError("callback not provided");return new Promise(function(r,n){u(e,t||{},function(e,t){e?n(e):r(t);});});}rW(e,t||{},function(e,n){e&&("EACCES"===e.code||t&&t.ignoreErrors)&&(e=null,n=!1),r(e,n);});}function p(e,t){let r;let n=e.options.env||process.env,i=process.cwd(),o=null!=e.options.cwd,s=o&&void 0!==process.chdir&&!process.chdir.disabled;if(s)try{process.chdir(e.options.cwd);}catch(e){}try{r=rV.sync(e.command,{path:n[rY({env:n})],pathExt:t?iY.delimiter:void 0});}catch(e){}finally{s&&process.chdir(i);}return r&&(r=iY.resolve(o?e.options.cwd:"",r)),r;}function f(e,t){return Object.assign(Error(`${t} ${e.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${t} ${e.command}`,path:e.command,spawnargs:e.args});}function d(e,t){return i5&&1===e&&!t.file?f(t.original,"spawn"):null;}function h(e,t,r){let n=rq(e,t,r),i=rw.spawn(n.command,n.args,n.options);return r1.hookChildProcess(i,n),i;}function m(e={}){let{env:t=process.env,platform:r=process.platform}=e;return"win32"!==r?"PATH":Object.keys(t).reverse().find(e=>"PATH"===e.toUpperCase())||"Path";}function v(e){return null!==e&&"object"==typeof e&&"function"==typeof e.pipe;}function g(e){return v(e)&&!1!==e.writable&&"function"==typeof e._write&&"object"==typeof e._writableState;}async function y(e,t){if(!e)throw Error("Expected a stream");let{maxBuffer:r}=t={maxBuffer:1/0,...t},n=r7(t);return await new Promise((t,i)=>{let o=e=>{e&&n.getBufferedLength()<=r8.MAX_LENGTH&&(e.bufferedData=n.getBufferedValue()),i(e);};(async()=>{try{await o0(e,n),t();}catch(e){o(e);}})(),n.on("data",()=>{n.getBufferedLength()>r&&o(new o1());});}),n.getBufferedValue();}function E(e,t,r){let n;let i=sE(e,t,r),o=sa(e,t),s=sl(e,t);sg(s,i.options),oY(i.options);try{n=c(rS).spawn(i.file,i.args,i.options);}catch(t){let e=new(c(rS).ChildProcess)();return sn(e,Promise.reject(ob({error:t,stdout:"",stderr:"",all:"",command:o,escapedCommand:s,parsed:i,timedOut:!1,isCanceled:!1,killed:!1}))),e;}let a=si(n),l=oW(n,i.options,a),u=oJ(n,i.options,l),p={isCanceled:!1};n.kill=oG.bind(null,n.kill.bind(n)),n.cancel=oV.bind(null,n,p);let f=r2(async()=>{let[{error:e,exitCode:t,signal:r,timedOut:a},l,c,f]=await se(n,i.options,u),d=sw(i.options,l),h=sw(i.options,c),m=sw(i.options,f);if(e||0!==t||null!==r){let l=ob({error:e,exitCode:t,signal:r,stdout:d,stderr:h,all:m,command:o,escapedCommand:s,parsed:i,timedOut:a,isCanceled:p.isCanceled||!!i.options.signal&&i.options.signal.aborted,killed:n.killed});if(!i.options.reject)return l;throw l;}return{command:o,escapedCommand:s,exitCode:0,stdout:d,stderr:h,all:m,failed:!1,timedOut:!1,isCanceled:!1,killed:!1};});return o8(n,i.options),n.all=o5(n,i.options),oQ(n),sn(n,f),n;}function w(e,t,r){let n;let i=sE(e,t,r),o=sa(e,t),s=sl(e,t);sg(s,i.options);let a=o4(i.options);try{n=c(rS).spawnSync(i.file,i.args,{...i.options,input:a});}catch(e){throw ob({error:e,stdout:"",stderr:"",all:"",command:o,escapedCommand:s,parsed:i,timedOut:!1,isCanceled:!1,killed:!1});}let l=sw(i.options,n.stdout,n.error),u=sw(i.options,n.stderr,n.error);if(n.error||0!==n.status||null!==n.signal){let e=ob({stdout:l,stderr:u,error:n.error,signal:n.signal,exitCode:n.status,command:o,escapedCommand:s,parsed:i,timedOut:n.error&&"ETIMEDOUT"===n.error.code,isCanceled:!1,killed:null!==n.signal});if(!i.options.reject)return e;throw e;}return{command:o,escapedCommand:s,exitCode:0,stdout:l,stderr:u,failed:!1,timedOut:!1,isCanceled:!1,killed:!1};}function _(t,r=["-NoProfile","-NoLogo","-NonInteractive"],n={stdio:"inherit"}){return E(function(){if(void 0===e){let t=c(nr).sync("pwsh",{nothrow:!0});null!==t&&(e=t);let r=c(nr).sync("powershell",{nothrow:!0});null!==r&&(e=r);}if(void 0===e)throw Error("Could not find powershell");return e;}(),[...r,"-c",t],n);}function b(){var e,t;return((null===(e=(t=process).getuid)||void 0===e?void 0:e.call(t))===0||!!process.en
source "${e.rcPath}"
`:`
# ${e.guard}
if [[ "$SOURCE_${e.guard.toUpperCase()}RC" != 0 && -f "${e.rcPath}" ]]; then source "${e.rcPath}"; fi
`;try{await Promise.all([N(e),A(t,T("~/.bashrc")),A(t,T("~/.profile"))]);}catch(e){(0,rG.warning)(`Failed to add ${t} to .profile or .bashrc. You should add it manually: ${e}`);}}async function N(e){let t=void 0===e.guard?"\n# Automatically Generated by envosman\n":`
# Automatically Generated by envosman ${e.guard}
export SOURCE_${e.guard.toUpperCase()}RC=0
`;(await(0,nG.pathExists)(e.rcPath))&&!(await sq(e.rcPath,"utf8")).includes(t)&&(await sH(e.rcPath,`
${t}
`),(0,rG.info)(`Added ${t} to ${e.rcPath}`));}async function A(e,t){(await(0,nG.pathExists)(t))&&!(await sq(t,"utf-8")).includes(e)&&(await sH(t,e),(0,rG.info)(`${e} was added to ${t}`));}async function $(e){if(await(0,nG.pathExists)(e.rcPath)){let t=[...new Set((await sq(e.rcPath,"utf-8")).split("\n").reverse())].reverse();await sz(e.rcPath,t.join("\n")),await I(e.rcPath);}}async function C(e,t,r={}){let n={escapeSpace:!1,overwrite:!0,rcPath:sV,...r},i=function(e,t=!1){let r=t?c(nB)(e):e;return c(nH)(r,'"',"\\");}(null!=t?t:"",n.escapeSpace);try{if(rM.GITHUB_ACTIONS)try{if(!n.overwrite&&void 0!==process.env[e]){(0,rG.info)(`Environment variable ${e} is already defined. Skipping.`);return;}(0,rB.exportVariable)(e,i);}catch(t){(0,rG.error)(t),await L(e,i,n);}else await L(e,i,n);}catch(t){(0,rG.error)(`${t}
Failed to export environment variable ${e}=${i}. You should add it manually.`);}}async function L(e,t,r){let n=null!=t?t:"";switch(process.platform){case"win32":if(!r.overwrite&&void 0!==process.env[e]){(0,rG.info)(`Environment variable ${e} is already defined. Skipping.`);return;}await _(`[Environment]::SetEnvironmentVariable('${e}', '${n}', "User")`),(0,rG.info)(`${e}='${n}' was set in the environment.`);return;case"linux":case"darwin":await sX(r),r.overwrite?(await sK(r.rcPath,`
export ${e}="${n}"
`),(0,rG.info)(`${e}="${n}" was added to "${r.rcPath}`)):(await sK(r.rcPath,`
if [ -z "\${${e}}" ]; then export ${e}="${n}"; fi
`),(0,rG.info)(`if not defined ${e} then ${e}="${n}" was added to "${r.rcPath}`));return;}process.env[e]=n;}async function k(e,t={}){let r={rcPath:sV,...t};if(!function(e){if(sQ.some(t=>t.test(e))){var t,r;return(null!==(r=null===(t=process.env.PATH)||void 0===t?void 0:t.split(iY.delimiter))&&void 0!==r?r:[]).includes(e);}return!1;}(e)){process.env.PATH=`${e}${iY.delimiter}${process.env.PATH}`;try{if(rM.GITHUB_ACTIONS)try{(0,rB.addPath)(e);}catch(t){(0,rG.error)(t),await D(e,r);}else await D(e,r);}catch(t){(0,rG.error)(`${t}
Failed to add ${e} to the percistent PATH. You should add it manually.`);}}}async function D(e,t){switch(process.platform){case"win32":await _(`$USER_PATH=([Environment]::GetEnvironmentVariable("PATH", "User")); [Environment]::SetEnvironmentVariable("PATH", "${e};$USER_PATH", "User")`),(0,rG.info)(`"${e}" was added to the PATH.`);return;case"linux":case"darwin":await sX(t),await sZ(t.rcPath,`
export PATH="${e}:$PATH"
`),(0,rG.info)(`"${e}" was added to "${t.rcPath}"`);return;default:return;}}function j(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{l(n.next(e));}catch(e){o(e);}}function a(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(s,a);}l((n=n.apply(e,t||[])).next());});}function F(e,t){function r(r){return function(l){return function(r){if(n)throw TypeError("Generator is already executing.");for(;s&&(s=0,r[0]&&(a=0)),a;)try{if(n=1,i&&(o=2&r[0]?i.return:r[0]?i.throw||((o=i.return)&&o.call(i),0):i.next)&&!(o=o.call(i,r[1])).done)return o;switch(i=0,o&&(r=[2&r[0],o.value]),r[0]){case 0:case 1:o=r;break;case 4:return a.label++,{value:r[1],done:!1};case 5:a.label++,i=r[1],r=[0];continue;case 7:r=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===r[0]||2===r[0])){a=0;continue;}if(3===r[0]&&(!o||r[1]>o[0]&&r[1]<o[3])){a.label=r[1];break;}if(6===r[0]&&a.label<o[1]){a.label=o[1],o=r;break;}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(r);break;}o[2]&&a.ops.pop(),a.trys.pop();continue;}r=t.call(e,a);}catch(e){r=[6,e],i=0;}finally{n=o=0;}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0};}([r,l]);};}var n,i,o,s,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1];},trys:[],ops:[]};return s={next:r(0),throw:r(1),return:r(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this;}),s;}async function U(){try{await c(nW)({pkg:c(ir)});}catch(e){(0,rG.warning)("Failed to check for updates: "+(e instanceof Error?e.message+e.stack:e));}}function M(e){return null==e?[]:Array.isArray(e)?e:[e];}function G(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t;}function B(e,t){if(!e)throw ReferenceError("this hasn't been initialised - super() hasn't been called");return t&&("object"==typeof t||"function"==typeof t)?t:e;}async function H(e,t,r=40){await O("update-alternatives",["--install","/usr/bin/"+e,e,t,r.toString()]);}async function q(e,t,r,n=40){rM.GITHUB_ACTIONS?await H(e,t,n):(await sX(r),await s0(r.rcPath,`
if [ $UID -eq 0 ]; then update-alternatives --install /usr/bin/${e} ${e} ${t} ${n}; fi
`));}function z(e){let t={...process.env,DEBIAN_FRONTEND:"noninteractive"};return"nala"===e&&(void 0===t.LANG&&(t.LANG="C.UTF-8"),void 0===t.LC_ALL&&(t.LC_ALL="C.UTF-8")),t;}function V(){return null!==c(nr).sync("nala",{nothrow:!0});}function X(){let e;return V()?"nala":"apt-get";}async function W(e){try{let{stdout:t}=await E("dpkg",["-s",e],{env:z("apt-get"),stdio:"pipe"});if("string"!=typeof t)return!1;return t.split("\n").some(e=>e.startsWith("Status: install ok installed"));}catch{return!1;}}async function Y(e){try{let{stdout:t}=await E("dpkg",["-l",e],{env:z("apt-get"),stdio:"pipe"});if("string"!=typeof t)return!1;return t.split("\n").some(e=>e.startsWith("ii"));}catch{return!1;}}async function J(e,t=X()){return(await Promise.all(e.map(e=>K(e,t)))).filter(e=>void 0!==e);}async function K(e,t=X()){let r=await Q(t,e.name,e.version);return(await W(r))?void 0:r;}async function Z(e,t,r){if(void 0!==r&&""!==r){let{stdout:n}=await E("apt-cache",["search","--names-only",`^${(0,id.default)(t)}-${(0,id.default)(r)}$`],{env:z(e),stdio:"pipe"});if(""!==n.trim())return 0;try{let{stdout:n}=await E("apt-cache",["show",`${t}=${r}`],{env:z(e)});if(""===n.trim())return 1;}catch{}}try{let{stdout:r}=await E("apt-cache",["show",t],{env:z(e),stdio:"pipe"});if(""!==r.trim())return 2;}catch{}return s2?3:(s3(e),Z(e,t,r));}async function Q(e,t,r){switch(await Z(e,t,r)){case 0:return`${t}-${r}`;case 1:return`${t}=${r}`;case 2:return void 0!==r&&""!==r&&(0,rG.warning)(`Could not find package ${t} with version ${r}. Installing the latest version.`),t;default:throw Error(`Could not find package ${t} ${null!=r?r:""}`);}}async function ee(e){s3(e);let t=await J([{name:"ca-certificates"},{name:"gnupg"},{name:"apt-utils"}],e);0!==t.length&&x(e,["install","-y","--fix-broken","-o",s1,...t],{...sG,env:z(e)});}async function et(e,t=X()){await s4(t),await er(t),x("add-apt-repository",["-y","--no-update",e],{...sG,env:z(t)}),s3.clear(),s3(t);}async function er(e){(await W("software-properties-common"))||x(e,["install","-y","--fix-broken","-o",s1,"software-properties-common"],{...sG,env:z(e)});}async function en(e,t=!1){let r=X();for(let{name:t,version:n}of e)(0,rG.info)(`Installing ${t} ${null!=n?n:""} via ${r}`);t&&s3(r),await ei(r,e);let n=await J(e,r);if(0===n.length)return(0,rG.info)("All packages are already installed"),{binDir:"/usr/bin/"};await s4(r);try{await eo(e),x(r,["install","--fix-broken","-y",...n],{...sG,env:z(r)});}catch(e){if("string"==typeof e.stderr)s6.some(t=>e.stderr.includes(t))&&((0,rG.warning)(`Failed to install packages ${n}. Retrying...`),x(r,["install","--fix-broken","-y","-o",s1,...n],{...sG,env:z(r)}));else throw e;}return{binDir:"/usr/bin/"};}async function ei(e,t){let r=[...new Set(t.flatMap(e=>{var t;return null!==(t=e.repository)&&void 0!==t?t:[];}))];await Promise.all(r.map(t=>et(t,e)));}async function eo(e){await Promise.all(e.map(async e=>{var t;void 0!==e.key&&(await("keyUrl"in(t=e.key)?ea(t):es(t)));}));}async function es({key:e,keyServer:t=s5,fileName:r,keyStorePath:n=s5}){try{ec(r);let i=(0,iY.join)(n,r);return(await(0,nG.pathExists)(i))||(el(),await O("gpg",["--no-default-keyring","--keyring","gnupg-ring:"+i,"--keyserver",t,"--recv-keys",e]),await O("chmod",["644",i])),i;}catch(e){(0,rG.warning)(`Failed to add apt key via server ${t}: ${e}`);return;}}async function ea({keyUrl:e,fileName:t,keyStorePath:r=s8}){try{ec(t);let n=(0,iY.join)(r,t);if(!(await(0,nG.pathExists)(n))){el(),await en([{name:"ca-certificates"}]);let r=(0,iY.join)((0,iW.tmpdir)(),t),i=new ii.DownloaderHelper(e,(0,iW.tmpdir)(),{fileName:t});i.on("error",t=>{throw Error(`Failed to download ${e}: ${t}`);}),await i.start(),x("gpg",["--no-default-keyring","--keyring","gnupg-ring:"+n,"--import",r]),x("chmod",["644",n]);}return n;}catch(t){(0,rG.warning)(`Failed to add apt key via download ${e}: ${t}`);return;}}function el(){x("gpg",["-k"]);}function ec(e){if(!e.endsWith(".gpg"))throw Error("Key file name must end with .gpg: "+e);}async function eu(e={}){if(!["darwin","linux"].includes(process.platform))return;if("string"==typeof t)return{binDir:t};let
apt-get update -o ${s1} -y`),a=r,c=1===o?s.replace(/ -y \$PKG/g," -y clang-format-"+a):s,l=c=await tX(c),c=V()?l.replace(/apt-get/g,"nala"):l,await(0,ni.writeFile)(t,c),[{name:"lsb-release"},{name:"wget"},{name:"software-properties-common"},{name:"gnupg"}];}async function tX(e){let t=e.replace(/apt-get install -y/g,`apt-get install -o Dpkg::Options::="--force-overwrite" -o ${s1} -y --fix-broken`);return await Promise.all(["libc++-$LLVM_VERSION-dev","libc++abi-$LLVM_VERSION-dev","libunwind-$LLVM_VERSION-dev"].map(async e=>{let r=e.replace("$LLVM_VERSION","*");(await Y(r))&&((0,rL.info)("Removing conflicting package "+r),t=t.replace(e,""));})),t;}function tW(e,t,r){let n=`${t}${e}${r}`;return`https://github.com/llvm/llvm-project/releases/download/llvmorg-${e}/${n}`;}function tY(e,t,r){let n=`${t}${e}${r}`;return`https://releases.llvm.org/${e}/${n}`;}async function tJ(e){let t;if(a3.has(e))return null;let r="LLVM-",n=c(ig)(e,"3.7.0")?"-win32.exe":"-win64.exe",i=c(ig)(e,"9.0.1"),o=!1;return i&&(t=tY(e,r,n),(await ik(t))||(o=!0)),(o||!i)&&(t=tW(e,r,n)),t;}function tK(e,t){switch(e){case"darwin":return function(e){if(a4.has(e))return null;let t="9.0.0"===e?"-darwin-apple":"-apple-darwin",r="clang+llvm-",n=`-x86_64${t}.tar.xz`;return c(ig)(e,"9.0.1")?tY(e,r,n):tW(e,r,n);}(t);case"linux":return function(e){let t,r,n=e,i=a6.get(n);if(void 0!==i&&(n=i),n.includes("ubuntu")){let e=n.replace(/-ubuntu-.*/,"");if(!a2.has(e))throw Error("Unsupported Ubuntu version: "+e);t=n.replace(e,""),n=eW(a2,e)[0];}else""!==n&&n in a8?t=a8[n]:(t=a8[a5],(0,rG.warning)(`Falling back to LLVM version ${a5} ${t} for the Ubuntu.`));let o="clang+llvm-";return(r="5.0.0"===n?`-linux-x86_64${t}.tar.xz`:t.includes("-rhel86")?`-x86_64-unknown-linux-gnu${t}.tar.xz`:`-x86_64-linux-gnu${t}.tar.xz`,c(ig)(n,"9.0.1"))?tY(n,o,r):tW(n,o,r);}(t);case"win32":return tJ(t);default:return null;}}async function tZ(e,t,r){let[n,i]=await eY(a2,t,e,tK);return(0,rG.info)("specific llvm version: "+n),{url:i,extractedFolderName:"",binRelativeDir:"bin",binFileName:(0,im.addExeExt)("clang"),extractFunction:"win32"===t?ej:(e,t)=>eU(e,t,1)};}async function tQ(e,t,r){var n;let i=await a7(e,t,r);return await t4(null!==(n=i.installDir)&&void 0!==n?n:t),i;}async function t0(e,t,r){let[n,i]=await Promise.all([t1(e,t,r),t6()]);return await le(r),n;}async function t1(e,t,r,n=iz.All){let i=Number.parseInt(function(e){if(null===c(ij)(e))try{let t=c(iv)(e);if(null!==t)return(0,rG.info)(`Coerced version '${e}' to '${t}'`),t.version;}catch(e){}return e;}(e).split(".")[0],10);try{if(em())return await tz(i,n);}catch(e){(0,rG.info)("Failed to install llvm via system package manager "+e);}let o=await eG("llvm",e,tZ,t,r);return await a9(i),o;}async function t2(e){em()&&(e<=10?await en([{name:"libtinfo5"}]):await en([{name:"libtinfo-dev"}]));}async function t3(e){"linux"===process.platform&&(await tI(tr("gcc",void 0,await aU()),"",e,40));}async function t4(e){var t,r;let n=null!==(t=process.env.LD_LIBRARY_PATH)&&void 0!==t?t:"",i=null!==(r=process.env.DYLD_LIBRARY_PATH)&&void 0!==r?r:"",o=[C("LLVM_PATH",e,lo),C("LD_LIBRARY_PATH",`${e}/lib${iY.delimiter}${n}`,lo),C("DYLD_LIBRARY_PATH",`${e}/lib${iY.delimiter}${i}`,lo),C("LDFLAGS",`-L"${e}/lib"`,lo),C("CPPFLAGS",`-I"${e}/include"`,lo),C("CC",(0,im.addExeExt)(`${e}/bin/clang`),lo),C("CXX",(0,im.addExeExt)(`${e}/bin/clang++`),lo),C("LIBRARY_PATH",`${e}/lib`,lo),tO()];em()&&o.push(q("cc",`${e}/bin/clang`,lo,60),q("cxx",`${e}/bin/clang++`,lo,60),q("clang",`${e}/bin/clang`,lo),q("clang++",`${e}/bin/clang++`,lo),q("lld",`${e}/bin/lld`,lo),q("ld.lld",`${e}/bin/ld.lld`,lo),q("llvm-ar",`${e}/bin/llvm-ar`,lo)),await Promise.all(o);}async function t6(){if(rM.GITHUB_ACTIONS){let e=(0,im.join)(iV,"llvm_matcher.json");if(!(await(0,nG.pathExists)(e)))return(0,rG.warning)("the llvm_matcher.json file does not exist in the same folder as setup-cpp.js");(0,rG.info)("::add-matcher::"+e);}}async function t8(e,t,r){switch(process.platform){case"win32":return eg("make",e);case"darwin":return await ef("make",e),await k("/usr/local/opt/make/libexec/gnubin",lo),{binDir:"/usr/l
2023-07-16 06:41:58 +08:00
setup-cpp [options]
setup-cpp --compiler llvm --cmake true --ninja true --ccache true --vcpkg true
Install all the tools required for building and testing C++/C projects.
--architecture the cpu architecture to install the tools for. By default it uses the current CPU architecture.
--timeout the timeout for the installation of each tool in minutes. By default it is 10 minutes.
2023-07-16 06:41:58 +08:00
--compiler the <compiler> to install.
You can specify the version instead of specifying just the name e.g: --compiler 'llvm-13.0.0'
--$tool_name pass "true" or pass the <version> you would like to install for this tool. e.g. --conan true or --conan "1.42.1"
All the available tools:
`),console.table({"compiler and analyzer":{tools:"--llvm, --gcc, --msvc, --vcvarsall, --cppcheck, --clangtidy, --clangformat"},"build system":{tools:"--cmake, --ninja, --meson, --make, --task, --bazel"},"package manager":{tools:"--vcpkg, --conan, --choco, --brew, --nala"},cache:{tools:"--ccache, --sccache"},documentation:{tools:"--doxygen, --graphviz"},coverage:{tools:"--gcovr, --opencppcoverage, --kcov"},other:{tools:"--python, --powershell, --sevenzip"}},["tools"]));let l=null!==(t=a.architecture)&&void 0!==t?t:process.arch,u=null!==(r=process.env.SETUP_CPP_DIR)&&void 0!==r?r:T("~"),p=[],f=[],d=nV.create({autoloadLocales:!0});nV.addLocale(c(nX)),nq.addLocale(c(nz));let h=await aU();if(!function(e,t){let r=t.filter(t=>void 0!==e[t]),n=r.filter(t=>!tn(e[t])),i=n.length>=1?e[n[0]]:"true";if(n.some(t=>e[t]!==i))return!1;for(let t of r)e[t]=i;return!0;}(a,["llvm","clangtidy","clangformat"]))return(0,rG.error)("The same version must be used for llvm, clangformat and clangtidy"),1;eh()&&"string"==typeof a.cppcheck&&"string"==typeof a.gcovr&&((0,rG.info)("installing python-pygments to avoid conflicts with cppcheck and gcovr on Arch linux"),await e_("python-pygments"));let m=!1,v=!1;for(let e of ln){if(rM.isCI&&0!==f.length){v=!0;break;}let t=a[e];void 0!==t&&(i=Date.now(),m=await tH(e,t,h,l,u,p,f,6e4*Number.parseFloat(null!==(n=a.timeout)&&void 0!==n?n:"20")),o=Date.now(),(0,rG.info)("took "+(d.format(i,o)||"0 seconds")));}if(!v){let e=a.compiler;if(void 0!==e){let t=Date.now();await ru(e,h,u,l,p,m,f);let r=Date.now();(0,rG.info)("took "+(d.format(t,r)||"0 seconds"));}}if(await $(lo),0===p.length&&0===f.length)return(0,rG.warning)("setup-cpp was called without any arguments. Nothing to do."),0;for(let e of p)(0,rG.success)(e);for(let e of f)(0,rG.error)(e);if((0,rG.info)("setup-cpp finished"),!rM.GITHUB_ACTIONS)switch(process.platform){case"win32":(0,rG.warning)("Run `RefreshEnv.cmd` or restart your shell to update the environment.");break;case"linux":case"darwin":(0,rG.warning)("Run `source ~/.cpprc` or restart your shell to update the environment.");}return await s,0===f.length?0:1;}var rf,rd,rh,rm,rv,rg,ry,rE,rw,r_,rb,rx,rO,rS,rR,rI,rT,rP,rN,rA,r$,rC,rL,rk,rD,rj,rF,rU,rM,rG,rB,rH,rq,rz,rV,rX,rW,rY,rJ,rK,rZ,rQ,r0,r1,r2,r3,r4,r6,r8,r5,r7,r9,ne,nt,nr,nn,ni,no,ns,na,nl,nc,nu,np,nf,nd,nh,nm,nv,ng,ny,nE,nw,n_,nb,nx,nO,nS,nR,nI,nT,nP,nN,nA,n$,nC,nL,nk,nD,nj,nF,nU,nM,nG,nB,nH,nq,nz,nV,nX,nW,nY,nJ,nK,nZ,nQ,n0,n1,n2,n3,n4,n6,n8,n5,n7,n9,ie,it,ir,ii,io,is,ia,il,ic,iu,ip,id,ih,im,iv,ig,iy,iE,iw,i_,ib,ix,iO,iS,iR,iI,iT,iP,iN,iA,i$,iC,iL,ik,iD,ij,iF,iU,iM,iG,iB,iH,iq,iz,iV,iX,iW=require("os"),iY=require("path"),iJ=require("fs"),iK=require("crypto"),iZ=require("http"),iQ=require("https");require("net"),rm=require("tls"),rv=require("events"),rg=require("assert"),ry=require("util"),rE=require("fs"),rw=require("child_process"),r_=require("string_decoder"),rb=require("timers"),rx=require("buffer"),rO=require("path"),rS=require("child_process"),rR=require("process"),rI=require("url"),rT=require("os"),rP=require("buffer"),rN=require("stream"),rA=require("util"),r$=require("process"),rC=require("url"),rL=require("console"),rD={},rj={},null==(rF=(rk=globalThis).parcelRequire810d)&&((rF=function(e){if(e in rD)return rD[e].exports;if(e in rj){var t=rj[e];delete rj[e];var r={id:e,exports:{}};return rD[e]=r,t.call(r.exports,r,r.exports),r.exports;}var n=Error("Cannot find module '"+e+"'");throw n.code="MODULE_NOT_FOUND",n;}).register=function(e,t){rj[e]=t;},rk.parcelRequire810d=rF),(rU=rF.register)("dKklS",function(e,t){var r;function n(e){return"string"==typeof e?!!i[e]:"env"in e?i[e.env]&&i[e.env].includes(e.includes):"any"in e?e.any.some(function(e){return!!i[e];}):Object.keys(e).every(function(t){return i[t]===e[t];});}r=rF("ksAXT");let i=process.env;Object.defineProperty(e.exports,"_vendors",{value:r.map(function(e){return e.constant;})}),e.exports.name=null,e.exports.isPR=null,r.forEach(function(t){let r=(Array.isArray(t.env)?t.env:[t.env]).every(function(e){return n(e);});if(e.exports[t.constant]=r,r)switch(e.exports.name=t.name,typeof t.pr){
Support boolean input list: \`true | True | TRUE | false | False | FALSE\``);},e.exports.setOutput=function(e,t){if(process.env.GITHUB_OUTPUT)return a.issueFileCommand("OUTPUT",a.prepareKeyValueMessage(e,t));process.stdout.write(y.EOL),s.issueCommand("set-output",{name:e},l.toCommandValue(t));},e.exports.setCommandEcho=function(e){s.issue("echo",e?"on":"off");},e.exports.setFailed=function(e){process.exitCode=u.Failure,m(e);},e.exports.isDebug=function(){return"1"===process.env.RUNNER_DEBUG;},e.exports.debug=function(e){s.issueCommand("debug",{},e);},e.exports.error=m,e.exports.warning=function(e,t={}){s.issueCommand("warning",l.toCommandProperties(t),e instanceof Error?e.toString():e);},e.exports.notice=function(e,t={}){s.issueCommand("notice",l.toCommandProperties(t),e instanceof Error?e.toString():e);},e.exports.info=function(e){process.stdout.write(e+y.EOL);},e.exports.startGroup=v,e.exports.endGroup=g,e.exports.group=function(e,t){return o(this,void 0,void 0,function*(){let r;v(e);try{r=yield t();}finally{g();}return r;});},e.exports.saveState=function(e,t){if(process.env.GITHUB_STATE)return a.issueFileCommand("STATE",a.prepareKeyValueMessage(e,t));s.issueCommand("save-state",{name:e},l.toCommandValue(t));},e.exports.getState=function(e){return process.env["STATE_"+e]||"";},e.exports.getIDToken=function(e){return o(this,void 0,void 0,function*(){return yield c.OidcClient.getIDToken(e);});},p=rF("1mzjm"),Object.defineProperty(e.exports,"summary",{enumerable:!0,get:function(){return p.summary;}}),p=rF("1mzjm"),Object.defineProperty(e.exports,"markdownSummary",{enumerable:!0,get:function(){return p.markdownSummary;}}),f=rF("31rWp"),Object.defineProperty(e.exports,"toPosixPath",{enumerable:!0,get:function(){return f.toPosixPath;}}),Object.defineProperty(e.exports,"toWin32Path",{enumerable:!0,get:function(){return f.toWin32Path;}}),Object.defineProperty(e.exports,"toPlatformPath",{enumerable:!0,get:function(){return f.toPlatformPath;}});}),rU("ekchs",function(e,t){var r,n,i,o;function s(e,t,r){let n=new l(e,t,r);process.stdout.write(n.toString()+a.EOL);}r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.issue=e.exports.issueCommand=void 0;let a=i(iW);o=rF("iYcPV"),e.exports.issueCommand=s,e.exports.issue=function(e,t=""){s(e,{},t);};class l{constructor(e,t,r){e||(e="missing.command"),this.command=e,this.properties=t,this.message=r;}toString(){var e;let t="::"+this.command;if(this.properties&&Object.keys(this.properties).length>0){t+=" ";let e=!0;for(let r in this.properties)if(this.properties.hasOwnProperty(r)){let n=this.properties[r];n&&(e?e=!1:t+=",",t+=`${r}=${o.toCommandValue(n).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A").replace(/:/g,"%3A").replace(/,/g,"%2C")}`);}}return t+("::"+(e=this.message,o.toCommandValue(e).replace(/%/g,"%25").replace(/\r/g,"%0D").replace(/\n/g,"%0A")));}}}),rU("iYcPV",function(e,t){Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.toCommandProperties=e.exports.toCommandValue=void 0,e.exports.toCommandValue=function(e){return null==e?"":"string"==typeof e||e instanceof String?e:JSON.stringify(e);},e.exports.toCommandProperties=function(e){return Object.keys(e).length?{title:e.title,file:e.file,line:e.startLine,endLine:e.endLine,col:e.startColumn,endColumn:e.endColumn}:{};};}),rU("lyZGK",function(e,t){var r,n,i,o,s;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r),Object.defineProperty(e,n,{enumerable:!0,get:function(){return t[r];}});}:function(e,
Error Code : ${e.statusCode}
Error Message: ${e.message}`);})).result)||void 0===t?void 0:t.value;if(!n)throw Error("Response json body do not have ID Token field");return n;});}static getIDToken(e){return r(this,void 0,void 0,function*(){try{let t=s.getIDTokenUrl();if(e){let r=encodeURIComponent(e);t=`${t}&audience=${r}`;}o.debug("ID token url is "+t);let r=yield s.getCall(t);return o.setSecret(r),r;}catch(e){throw Error("Error message: "+e.message);}});}}e.exports.OidcClient=s;}),rU("3bZps",function(e,t){var r,n,i,o,s,a,l,c,u;r=e.exports&&e.exports.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[r];}}),Object.defineProperty(e,n,i);}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r];}),n=e.exports&&e.exports.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t});}:function(e,t){e.default=t;}),i=e.exports&&e.exports.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var i in e)"default"!==i&&Object.prototype.hasOwnProperty.call(e,i)&&r(t,e,i);return n(t,e),t;},o=e.exports&&e.exports.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function s(e){try{l(n.next(e));}catch(e){o(e);}}function a(e){try{l(n.throw(e));}catch(e){o(e);}}function l(e){var t;e.done?i(e.value):((t=e.value)instanceof r?t:new r(function(e){e(t);})).then(s,a);}l((n=n.apply(e,t||[])).next());});},Object.defineProperty(e.exports,"__esModule",{value:!0}),e.exports.HttpClient=e.exports.isHttps=e.exports.HttpClientResponse=e.exports.HttpClientError=e.exports.getProxyUrl=e.exports.MediaTypes=e.exports.Headers=e.exports.HttpCodes=void 0;let p=i(iZ),f=i(iQ),d=i(rF("iZzl4")),h=i(rF("bbp3j"));(c=s||(e.exports.HttpCodes=s={}))[c.OK=200]="OK",c[c.MultipleChoices=300]="MultipleChoices",c[c.MovedPermanently=301]="MovedPermanently",c[c.ResourceMoved=302]="ResourceMoved",c[c.SeeOther=303]="SeeOther",c[c.NotModified=304]="NotModified",c[c.UseProxy=305]="UseProxy",c[c.SwitchProxy=306]="SwitchProxy",c[c.TemporaryRedirect=307]="TemporaryRedirect",c[c.PermanentRedirect=308]="PermanentRedirect",c[c.BadRequest=400]="BadRequest",c[c.Unauthorized=401]="Unauthorized",c[c.PaymentRequired=402]="PaymentRequired",c[c.Forbidden=403]="Forbidden",c[c.NotFound=404]="NotFound",c[c.MethodNotAllowed=405]="MethodNotAllowed",c[c.NotAcceptable=406]="NotAcceptable",c[c.ProxyAuthenticationRequired=407]="ProxyAuthenticationRequired",c[c.RequestTimeout=408]="RequestTimeout",c[c.Conflict=409]="Conflict",c[c.Gone=410]="Gone",c[c.TooManyRequests=429]="TooManyRequests",c[c.InternalServerError=500]="InternalServerError",c[c.NotImplemented=501]="NotImplemented",c[c.BadGateway=502]="BadGateway",c[c.ServiceUnavailable=503]="ServiceUnavailable",c[c.GatewayTimeout=504]="GatewayTimeout",(u=a||(e.exports.Headers=a={})).Accept="accept",u.ContentType="content-type",(l||(e.exports.MediaTypes=l={})).ApplicationJson="application/json",e.exports.getProxyUrl=function(e){let t=d.getProxyUrl(new URL(e));return t?t.href:"";};let m=[s.MovedPermanently,s.ResourceMoved,s.SeeOther,s.TemporaryRedirect,s.PermanentRedirect],v=[s.BadGateway,s.ServiceUnavailable,s.GatewayTimeout],g=["OPTIONS","GET","DELETE","HEAD"];class y extends Error{constructor(e,t){super(e),this.name="HttpClientError",this.statusCode=t,Object.setPrototypeOf(this,y.prototype);}}e.exports.HttpClientError=y;class E{constructor(e){this.message=e;}readBody(){return o(this,void 0,void 0,function*(){return new Promise(e=>o(this,void 0,void 0,function*(){let t=Buffer.alloc(0);this.message.on("data",e=>{t=Buffer.concat([t,e]);}),this.message.on("end",()=>{e(t.toString());});}));});}readBodyBuffer(){return o(this,void 0,void 0,function*(){return new Promise(e=>o(this,void 0,void 0,function*(){let t=[];this.message.on("data",e=>{t.push(e);}),this.message.on("end",()=>{e(Buffer.concat(t));});}));});}}e.exports.HttpClientResponse=E,e.exports.isHttps=function(e){return"https:"===new URL(e).protocol;},e.exports.HttpClient=class{const
${t}`,os=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),oa=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),ol=(e,t,r)=>{let n=""===r?"":`with ${r.trim()}() `,i=oo.bind(null,n,t.toString());Object.defineProperty(i,"name",oa),Object.defineProperty(e,"toString",{...os,value:i});},oc=new WeakMap(),ou=(e,t={})=>{let r;if("function"!=typeof e)throw TypeError("Expected a function");let n=0,i=e.displayName||e.name||"<anonymous>",o=function(...s){if(oc.set(o,++n),1===n)r=e.apply(this,s),e=null;else if(!0===t.throw)throw Error(`Function \`${i}\` can only be called once`);return r;};return!function(e,t,{ignoreNonConfigurable:r=!1}={}){let{name:n}=e;for(let n of Reflect.ownKeys(t))or(e,t,n,r);oi(e,t),ol(e,t,n);}(o,e),oc.set(o,n),o;};ou.callCount=e=>{if(!oc.has(e))throw Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return oc.get(e);},r2=ou;const op=()=>Array.from({length:oh-od+1},of),of=(e,t)=>({name:"SIGRT"+(t+1),number:od+t,action:"terminate",description:"Application-specific signal (realtime)",standard:"posix"}),od=34,oh=64,om=[{name:"SIGHUP",number:1,action:"terminate",description:"Terminal closed",standard:"posix"},{name:"SIGINT",number:2,action:"terminate",description:"User interruption with CTRL-C",standard:"ansi"},{name:"SIGQUIT",number:3,action:"core",description:"User interruption with CTRL-\\",standard:"posix"},{name:"SIGILL",number:4,action:"core",description:"Invalid machine instruction",standard:"ansi"},{name:"SIGTRAP",number:5,action:"core",description:"Debugger breakpoint",standard:"posix"},{name:"SIGABRT",number:6,action:"core",description:"Aborted",standard:"ansi"},{name:"SIGIOT",number:6,action:"core",description:"Aborted",standard:"bsd"},{name:"SIGBUS",number:7,action:"core",description:"Bus error due to misaligned, non-existing address or paging error",standard:"bsd"},{name:"SIGEMT",number:7,action:"terminate",description:"Command should be emulated but is not implemented",standard:"other"},{name:"SIGFPE",number:8,action:"core",description:"Floating point arithmetic error",standard:"ansi"},{name:"SIGKILL",number:9,action:"terminate",description:"Forced termination",standard:"posix",forced:!0},{name:"SIGUSR1",number:10,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGSEGV",number:11,action:"core",description:"Segmentation fault",standard:"ansi"},{name:"SIGUSR2",number:12,action:"terminate",description:"Application-specific signal",standard:"posix"},{name:"SIGPIPE",number:13,action:"terminate",description:"Broken pipe or socket",standard:"posix"},{name:"SIGALRM",number:14,action:"terminate",description:"Timeout or timer",standard:"posix"},{name:"SIGTERM",number:15,action:"terminate",description:"Termination",standard:"ansi"},{name:"SIGSTKFLT",number:16,action:"terminate",description:"Stack is empty or overflowed",standard:"other"},{name:"SIGCHLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"posix"},{name:"SIGCLD",number:17,action:"ignore",description:"Child process terminated, paused or unpaused",standard:"other"},{name:"SIGCONT",number:18,action:"unpause",description:"Unpaused",standard:"posix",forced:!0},{name:"SIGSTOP",number:19,action:"pause",description:"Paused",standard:"posix",forced:!0},{name:"SIGTSTP",number:20,action:"pause",description:'Paused using CTRL-Z or "suspend"',standard:"posix"},{name:"SIGTTIN",number:21,action:"pause",description:"Background process cannot read terminal input",standard:"posix"},{name:"SIGBREAK",number:21,action:"terminate",description:"User interruption with CTRL-BREAK",standard:"other"},{name:"SIGTTOU",number:22,action:"pause",description:"Background process cannot write to terminal output",standard:"posix"},{name:"SIGURG",number:23,action:"ignore",description:"Socket received out-of-band data",standard:"bsd"},{name:"SIGXCPU",number:24,action:"core",description:"Process timed out",standard:"bsd"},{name:"SIGXFSZ",number:25,action:"core",description:"File too big",standard:"bsd"},{name:"SIGVTALRM",number:26,action:"t
${n.message}`:v,E=[y,t,e].filter(Boolean).join("\n");return g?(n.originalMessage=n.message,n.message=E):n=Error(E),n.shortMessage=y,n.command=s,n.escapedCommand=a,n.exitCode=o,n.signal=i,n.signalDescription=h,n.stdout=e,n.stderr=t,n.cwd=d,void 0!==r&&(n.all=r),"bufferedData"in n&&delete n.bufferedData,n.failed=!0,n.timedOut=!!l,n.isCanceled=u,n.killed=p&&!l,n;},ox=["stdin","stdout","stderr"],oO=e=>ox.some(t=>void 0!==e[t]),oS=e=>{if(!e)return;let{stdio:t}=e;if(void 0===t)return ox.map(t=>e[t]);if(oO(e))throw Error("It's not possible to provide `stdio` in combination with one of "+ox.map(e=>`\`${e}\``).join(", "));if("string"==typeof t)return t;if(!Array.isArray(t))throw TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof t}\``);return Array.from({length:Math.max(t.length,ox.length)},(e,r)=>t[r]);};r3={};const oR=function(e){return e&&"object"==typeof e&&"function"==typeof e.removeListener&&"function"==typeof e.emit&&"function"==typeof e.reallyExit&&"function"==typeof e.listeners&&"function"==typeof e.kill&&"number"==typeof e.pid&&"function"==typeof e.on;};if(oR(r4=rk.process)){var oI,oT=rg,oP=rF("bJALw"),oN=/^win/i.test(r4.platform),oA=rv;"function"!=typeof oA&&(oA=oA.EventEmitter),r4.__signal_exit_emitter__?oI=r4.__signal_exit_emitter__:((oI=r4.__signal_exit_emitter__=new oA()).count=0,oI.emitted={}),oI.infinite||(oI.setMaxListeners(1/0),oI.infinite=!0);var o$=function(){ok&&oR(rk.process)&&(ok=!1,oP.forEach(function(e){try{r4.removeListener(e,oL[e]);}catch(e){}}),r4.emit=oU,r4.reallyExit=oj,oI.count-=1);};(r3=function(e,t){if(!oR(rk.process))return function(){};oT.equal(typeof e,"function","a callback must be provided for exit handler"),!1===ok&&oD();var r="exit";return t&&t.alwaysLast&&(r="afterexit"),oI.on(r,e),function(){oI.removeListener(r,e),0===oI.listeners("exit").length&&0===oI.listeners("afterexit").length&&o$();};}).unload=o$;var oC=function(e,t,r){oI.emitted[e]||(oI.emitted[e]=!0,oI.emit(e,t,r));},oL={};oP.forEach(function(e){oL[e]=function(){oR(rk.process)&&r4.listeners(e).length===oI.count&&(o$(),oC("exit",null,e),oC("afterexit",null,e),oN&&"SIGHUP"===e&&(e="SIGINT"),r4.kill(r4.pid,e));};}),r3.signals=function(){return oP;};var ok=!1,oD=function(){!ok&&oR(rk.process)&&(ok=!0,oI.count+=1,oP=oP.filter(function(e){try{return r4.on(e,oL[e]),!0;}catch(e){return!1;}}),r4.emit=oM,r4.reallyExit=oF);};r3.load=oD;var oj=r4.reallyExit,oF=function(e){oR(rk.process)&&(r4.exitCode=e||0,oC("exit",r4.exitCode,null),oC("afterexit",r4.exitCode,null),oj.call(r4,r4.exitCode));},oU=r4.emit,oM=function(e,t){if(!("exit"===e&&oR(rk.process)))return oU.apply(this,arguments);void 0!==t&&(r4.exitCode=t);var r=oU.apply(this,arguments);return oC("exit",r4.exitCode,null),oC("afterexit",r4.exitCode,null),r;};}else r3=function(){return function(){};};const oG=(e,t="SIGTERM",r={})=>{let n=e(t);return oB(e,t,r,n),n;},oB=(e,t,r,n)=>{if(!oH(t,r,n))return;let i=setTimeout(()=>{e("SIGKILL");},oz(r));i.unref&&i.unref();},oH=(e,{forceKillAfterTimeout:t},r)=>oq(e)&&!1!==t&&r,oq=e=>e===c(rT).constants.signals.SIGTERM||"string"==typeof e&&"SIGTERM"===e.toUpperCase(),oz=({forceKillAfterTimeout:e=!0})=>{if(!0===e)return 5e3;if(!Number.isFinite(e)||e<0)throw TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);return e;},oV=(e,t)=>{e.kill()&&(t.isCanceled=!0);},oX=(e,t,r)=>{e.kill(t),r(Object.assign(Error("Timed out"),{timedOut:!0,signal:t}));},oW=(e,{timeout:t,killSignal:r="SIGTERM"},n)=>{let i;return 0===t||void 0===t?n:Promise.race([new Promise((n,o)=>{i=setTimeout(()=>{oX(e,r,o);},t);}),n.finally(()=>{clearTimeout(i);})]);},oY=({timeout:e})=>{if(void 0!==e&&(!Number.isFinite(e)||e<0))throw TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${e}\` (${typeof e})`);},oJ=async(e,{cleanup:t,detached:r},n)=>{if(!t||r)return n;let i=c(r3)(()=>{e.kill();});return n.finally(()=>{i();});},oK=e=>e instanceof rS.ChildProcess&&"function"==typeof e.then,oZ=(e,t,r)=>{if("string"==typeof r)return e[t].pipe((0,rE.createWriteStream)(r)),e;if(g
`);},sy=({env:e,extendEnv:t,preferLocal:r,localDir:n,execPath:i})=>{let o=t?{...c(rR).env,...e}:e;return r?ot({env:o,cwd:n,execPath:i}):o;},sE=(e,t,r={})=>{let n=c(rH)._parse(e,t,r);return e=n.command,t=n.args,(r={maxBuffer:1e8,buffer:!0,stripFinalNewline:!0,extendEnv:!0,preferLocal:!1,localDir:(r=n.options).cwd||c(rR).cwd(),execPath:c(rR).execPath,encoding:"utf8",reject:!0,cleanup:!0,all:!1,windowsHide:!0,verbose:sh,...r}).env=sy(r),r.stdio=oS(r),"win32"===c(rR).platform&&"cmd"===c(rO).basename(e,".exe")&&t.unshift("/q"),{file:e,args:t,options:r,parsed:n};},sw=(e,t,r)=>"string"==typeof t||(0,rx.Buffer).isBuffer(t)?e.stripFinalNewline?function(e){let t="string"==typeof e?"\n":"\n".charCodeAt(),r="string"==typeof e?"\r":"\r".charCodeAt();return e[e.length-1]===t&&(e=e.slice(0,-1)),e[e.length-1]===r&&(e=e.slice(0,-1)),e;}(t):t:void 0===r?void 0:"",s_=({input:e,inputFile:t,stdio:r})=>void 0===e&&void 0===t&&void 0===r?{stdin:"inherit"}:{},sb=(e={})=>({preferLocal:!0,...s_(e),...e});!function e(t){function r(n,...i){if(!Array.isArray(n))return e({...t,...n});let[o,...s]=sd(n,i);return E(o,s,sb(t));}return r.sync=(e,...r)=>{if(!Array.isArray(e))throw TypeError("Please use $(options).sync`command` instead of $.sync(options)`command`.");let[n,...i]=sd(e,r);return w(n,i,sb(t));},r;}(),nr={},l(nn={},"isexe",()=>sx),l(nn,"sync",()=>sO),ni=rF("6vN83");const sx=async(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return sS(await(0,ni.stat)(e),t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},sO=(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return sS((0,iJ.statSync)(e),t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},sS=(e,t)=>e.isFile()&&sR(e,t),sR=(e,t)=>{var r,n,i,o,s,a,l,c,u,p,f;let d=null!==(l=t.uid)&&void 0!==l?l:null===(r=(n=process).getuid)||void 0===r?void 0:r.call(n),h=null!==(u=null!==(c=t.groups)&&void 0!==c?c:null===(i=(o=process).getgroups)||void 0===i?void 0:i.call(o))&&void 0!==u?u:[],m=null!==(f=null!==(p=t.gid)&&void 0!==p?p:null===(s=(a=process).getgid)||void 0===s?void 0:s.call(a))&&void 0!==f?f:h[0];if(void 0===d||void 0===m)throw Error("cannot get uid or gid");let v=new Set([m,...h]),g=e.mode,y=e.uid,E=e.gid,w=parseInt("100",8),_=parseInt("010",8);return!!(g&parseInt("001",8)||g&_&&v.has(E)||g&w&&y===d||g&(w|_)&&0===d);};l(no={},"isexe",()=>sI),l(no,"sync",()=>sT),ni=rF("6vN83");const sI=async(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return sN(await(0,ni.stat)(e),e,t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},sT=(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return sN((0,iJ.statSync)(e),e,t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},sP=(e,t)=>{let{pathExt:r=process.env.PATHEXT||""}=t,n=r.split(";");if(-1!==n.indexOf(""))return!0;for(let t=0;t<n.length;t++){let r=n[t].toLowerCase(),i=e.substring(e.length-r.length).toLowerCase();if(r&&i===r)return!0;}return!1;},sN=(e,t,r)=>e.isFile()&&sP(t,r),sA="win32"===(process.env._ISEXE_TEST_PLATFORM_||process.platform)?no:nn,s$=sA.isexe,sC=sA.sync;ns=iY.join,na=iY.delimiter,nl=iY.sep,nc=iY.posix;const sL="win32"===process.platform,sk=new RegExp(`[${nc.sep}${nl===nc.sep?"":nl}]`.replace(/(\\)/g,"\\$1")),sD=RegExp("^\\."+sk.source),sj=e=>Object.assign(Error("not found: "+e),{code:"ENOENT"}),sF=(e,{path:t=process.env.PATH,pathExt:r=process.env.PATHEXT,delimiter:n=na})=>{let i=e.match(sk)?[""]:[...(sL?[process.cwd()]:[]),...(t||"").split(n)];if(sL){let t=r||[".EXE",".CMD",".BAT",".COM"].join(n),o=t.split(n).flatMap(e=>[e,e.toLowerCase()]);return e.includes(".")&&""!==o[0]&&o.unshift(""),{pathEnv:i,pathExt:o,pathExtExe:t};}return{pathEnv:i,pathExt:[""]};},sU=(e,t)=>{let r=/^".*"$/.test(e)?e.slice(1,-1):e;return(!r&&sD.test(t)?t.slice(0,2):"")+ns(r,t);},sM=async(e,t={})=>{let{pathEnv:r,pathExt:n,pathExtExe:i}=sF(e,t),o=[];for(let s of r){let r=sU(s,e);for(let e of n){let n=r+e;if(await s$(n,{pathExt:i,ignoreErrors:!0})){if(!t.all)return n;o.push(n);}}}if(t.all&&o.length)return o;if(t.nothrow)return null;throw sj(e);};nr=sM,sM.sync=(e,t={})=>{let{pathEnv:r,pathExt:n,pathExtExe:i}=sF(e,t),o=[];for(let s of r){let r=sU(s,e);for(let e of n){let n=r+e;if(sC(n,{pathExt:
2023-07-16 06:41:58 +08:00
//# sourceMappingURL=setup-cpp.js.map