setup-cpp/dist/modern/setup-cpp.js

45 lines
271 KiB
JavaScript
Raw Normal View History

#!/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);});});}rz(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[rW({env:n})],pathExt:t?iW.delimiter:void 0});}catch(e){}finally{s&&process.chdir(i);}return r&&(r=iW.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 i8&&1===e&&!t.file?f(t.original,"spawn"):null;}function h(e,t,r){let n=rH(e,t,r),i=rE.spawn(n.command,n.args,n.options);return r0.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()<=r6.MAX_LENGTH&&(e.bufferedData=n.getBufferedValue()),i(e);};(async()=>{try{await oZ(e,n),t();}catch(e){o(e);}})(),n.on("data",()=>{n.getBufferedLength()>r&&o(new o0());});}),n.getBufferedValue();}function E(e,t,r){let n;let i=sy(e,t,r),o=ss(e,t),s=sa(e,t);sv(s,i.options),oW(i.options);try{n=c(rR).spawn(i.file,i.args,i.options);}catch(t){let e=new(c(rR).ChildProcess)();return sr(e,Promise.reject(o_({error:t,stdout:"",stderr:"",all:"",command:o,escapedCommand:s,parsed:i,timedOut:!1,isCanceled:!1,killed:!1}))),e;}let a=sn(n),l=oz(n,i.options,a),u=oK(n,i.options,l),p={isCanceled:!1};n.kill=oM.bind(null,n.kill.bind(n)),n.cancel=oV.bind(null,n,p);let f=r1(async()=>{let[{error:e,exitCode:t,signal:r,timedOut:a},l,c,f]=await o9(n,i.options,u),d=sE(i.options,l),h=sE(i.options,c),m=sE(i.options,f);if(e||0!==t||null!==r){let l=o_({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 o6(n,i.options),n.all=o8(n,i.options),oQ(n),sr(n,f),n;}function w(e,t,r){let n;let i=sy(e,t,r),o=ss(e,t),s=sa(e,t);sv(s,i.options);let a=o4(i.options);try{n=c(rR).spawnSync(i.file,i.args,{...i.options,input:a});}catch(e){throw o_({error:e,stdout:"",stderr:"",all:"",command:o,escapedCommand:s,parsed:i,timedOut:!1,isCanceled:!1,killed:!1});}let l=sE(i.options,n.stdout,n.error),u=sE(i.options,n.stderr,n.error);if(n.error||0!==n.status||null!==n.signal){let e=o_({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(nt).sync("pwsh",{nothrow:!0});null!==t&&(e=t);let r=c(nt).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(){return(process.getuid?.()===0||!!process.env.CI)&&null!==c(nt).sync("sudo",{nothrow:!0});}fun
source "${e.rcPath}"
`:`
# ${e.guard}
if [[ "$SOURCE_${e.guard.toUpperCase()}RC" != 0 && -f "${e.rcPath}" ]]; then source "${e.rcPath}"; fi
`;try{await Promise.all([A(e),N(t,T("~/.bashrc")),N(t,T("~/.profile"))]);}catch(e){(0,rM.warning)(`Failed to add ${t} to .profile or .bashrc. You should add it manually: ${e}`);}}async function A(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,nM.pathExists)(e.rcPath))&&!(await sH(e.rcPath,"utf8")).includes(t)&&(await sB(e.rcPath,`
${t}
`),(0,rM.info)(`Added ${t} to ${e.rcPath}`));}async function N(e,t){(await(0,nM.pathExists)(t))&&!(await sH(t,"utf-8")).includes(e)&&(await sB(t,e),(0,rM.info)(`${e} was added to ${t}`));}async function $(e){if(await(0,nM.pathExists)(e.rcPath)){let t=[...new Set((await sH(e.rcPath,"utf-8")).split("\n").reverse())].reverse();await sq(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(nG)(e):e;return c(nB)(r,'"',"\\");}(t??"",n.escapeSpace);try{if(rF.GITHUB_ACTIONS)try{if(!n.overwrite&&void 0!==process.env[e]){(0,rM.info)(`Environment variable ${e} is already defined. Skipping.`);return;}(0,rG.exportVariable)(e,i);}catch(t){(0,rM.error)(t),await L(e,i,n);}else await L(e,i,n);}catch(t){(0,rM.error)(`${t}
Failed to export environment variable ${e}=${i}. You should add it manually.`);}}async function L(e,t,r){let n=t??"";switch(process.platform){case"win32":if(!r.overwrite&&void 0!==process.env[e]){(0,rM.info)(`Environment variable ${e} is already defined. Skipping.`);return;}await _(`[Environment]::SetEnvironmentVariable('${e}', '${n}', "User")`),(0,rM.info)(`${e}='${n}' was set in the environment.`);return;case"linux":case"darwin":await sX(r),r.overwrite?(await sY(r.rcPath,`
export ${e}="${n}"
`),(0,rM.info)(`${e}="${n}" was added to "${r.rcPath}`)):(await sY(r.rcPath,`
if [ -z "\${${e}}" ]; then export ${e}="${n}"; fi
`),(0,rM.info)(`if not defined ${e} then ${e}="${n}" was added to "${r.rcPath}`));return;}process.env[e]=n;}async function k(e,t={}){var r;let n={rcPath:sV,...t};if(r=e,!(sQ.some(e=>e.test(r))&&(process.env.PATH?.split(iW.delimiter)??[]).includes(r))){process.env.PATH=`${e}${iW.delimiter}${process.env.PATH}`;try{if(rF.GITHUB_ACTIONS)try{(0,rG.addPath)(e);}catch(t){(0,rM.error)(t),await D(e,n);}else await D(e,n);}catch(t){(0,rM.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,rM.info)(`"${e}" was added to the PATH.`);return;case"linux":case"darwin":await sX(t),await sJ(t.rcPath,`
export PATH="${e}:$PATH"
`),(0,rM.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 U(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 F(){try{await c(nz)({pkg:c(it)});}catch(e){(0,rM.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 R("update-alternatives",["--install","/usr/bin/"+e,e,t,r.toString()]);}async function q(e,t,r,n=40){rF.GITHUB_ACTIONS?await H(e,t,n):(await sX(r),await sZ(r.rcPath,`
if [ $UID -eq 0 ]; then update-alternatives --install /usr/bin/${e} ${e} ${t} ${n}; fi
`));}function V(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 X(){return null!==c(nt).sync("nala",{nothrow:!0});}function z(){let e;return X()?"nala":"apt-get";}async function W(e){try{let{stdout:t}=await E("dpkg",["-s",e],{env:V("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 K(e){try{let{stdout:t}=await E("dpkg",["-l",e],{env:V("apt-get"),stdio:"pipe"});if("string"!=typeof t)return!1;return t.split("\n").some(e=>e.startsWith("ii"));}catch{return!1;}}async function Y(e,t=z()){return(await Promise.all(e.map(e=>J(e,t)))).filter(e=>void 0!==e);}async function J(e,t=z()){let r=await Z(t,e.name,e.version);return(await W(r))?void 0:r;}async function Q(e,t,r){if(void 0!==r&&""!==r){let{stdout:n}=await E("apt-cache",["search","--names-only",`^${(0,ip.default)(t)}-${(0,ip.default)(r)}$`],{env:V(e),stdio:"pipe"});if(""!==n.trim())return 0;try{let{stdout:n}=await E("apt-cache",["show",`${t}=${r}`],{env:V(e)});if(""===n.trim())return 1;}catch{}}try{let{stdout:r}=await E("apt-cache",["show",t],{env:V(e),stdio:"pipe"});if(""!==r.trim())return 2;}catch{}return s1?3:(s2(e),Q(e,t,r));}async function Z(e,t,r){switch(await Q(e,t,r)){case 0:return`${t}-${r}`;case 1:return`${t}=${r}`;case 2:return void 0!==r&&""!==r&&(0,rM.warning)(`Could not find package ${t} with version ${r}. Installing the latest version.`),t;default:throw Error(`Could not find package ${t} ${r??""}`);}}async function ee(e){s2(e);let t=await Y([{name:"ca-certificates"},{name:"gnupg"},{name:"apt-utils"}],e);0!==t.length&&x(e,["install","-y","--fix-broken","-o",s0,...t],{...sM,env:V(e)});}async function et(e,t=z()){await s4(t),await er(t),x("add-apt-repository",["-y","--no-update",e],{...sM,env:V(t)}),s2.clear(),s2(t);}async function er(e){(await W("software-properties-common"))||x(e,["install","-y","--fix-broken","-o",s0,"software-properties-common"],{...sM,env:V(e)});}async function en(e,t=!1){let r=z();for(let{name:t,version:n}of e)(0,rM.info)(`Installing ${t} ${n??""} via ${r}`);t&&s2(r),await ei(r,e);let n=await Y(e,r);if(0===n.length)return(0,rM.info)("All packages are already installed"),{binDir:"/usr/bin/"};await s4(r);try{await eo(e),x(r,["install","--fix-broken","-y",...n],{...sM,env:V(r)});}catch(e){if("string"==typeof e.stderr)s3.some(t=>e.stderr.includes(t))&&((0,rM.warning)(`Failed to install packages ${n}. Retrying...`),x(r,["install","--fix-broken","-y","-o",s0,...n],{...sM,env:V(r)}));else throw e;}return{binDir:"/usr/bin/"};}async function ei(e,t){let r=[...new Set(t.flatMap(e=>e.repository??[]))];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=s8,fileName:r,keyStorePath:n=s8}){try{ec(r);let i=(0,iW.join)(n,r);return(await(0,nM.pathExists)(i))||(el(),await R("gpg",["--no-default-keyring","--keyring","gnupg-ring:"+i,"--keyserver",t,"--recv-keys",e]),await R("chmod",["644",i])),i;}catch(e){(0,rM.warning)(`Failed to add apt key via server ${t}: ${e}`);return;}}async function ea({keyUrl:e,fileName:t,keyStorePath:r=s6}){try{ec(t);let n=(0,iW.join)(r,t);if(!(await(0,nM.pathExists)(n))){el(),await en([{name:"ca-certificates"}]);let r=(0,iW.join)((0,iz.tmpdir)(),t),i=new ir.DownloaderHelper(e,(0,iz.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,rM.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 r=await c(nt)("brew",{nothrow:!0});if(null!==r)return
apt-get update -o ${s0} -y`),a=r,c=1===o?s.replace(/ -y \$PKG/g," -y clang-format-"+a):s,l=c=await tX(c),c=X()?l.replace(/apt-get/g,"nala"):l,await(0,nn.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 ${s0} -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 K(r))&&((0,rC.info)("Removing conflicting package "+r),t=t.replace(e,""));})),t;}function tz(e,t,r){let n=`${t}${e}${r}`;return`https://github.com/llvm/llvm-project/releases/download/llvmorg-${e}/${n}`;}function tW(e,t,r){let n=`${t}${e}${r}`;return`https://releases.llvm.org/${e}/${n}`;}async function tK(e){let t;if(a2.has(e))return null;let r="LLVM-",n=c(iv)(e,"3.7.0")?"-win32.exe":"-win64.exe",i=c(iv)(e,"9.0.1"),o=!1;return i&&(t=tW(e,r,n),(await iL(t))||(o=!0)),(o||!i)&&(t=tz(e,r,n)),t;}function tY(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(iv)(e,"9.0.1")?tW(e,r,n):tz(e,r,n);}(t);case"linux":return function(e){let t,r,n=e,i=a3.get(n);if(void 0!==i&&(n=i),n.includes("ubuntu")){let e=n.replace(/-ubuntu-.*/,"");if(!a1.has(e))throw Error("Unsupported Ubuntu version: "+e);t=n.replace(e,""),n=eW(a1,e)[0];}else""!==n&&n in a6?t=a6[n]:(t=a6[a8],(0,rM.warning)(`Falling back to LLVM version ${a8} ${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(iv)(n,"9.0.1"))?tW(n,o,r):tz(n,o,r);}(t);case"win32":return tK(t);default:return null;}}async function tJ(e,t,r){let[n,i]=await eK(a1,t,e,tY);return(0,rM.info)("specific llvm version: "+n),{url:i,extractedFolderName:"",binRelativeDir:"bin",binFileName:(0,ih.addExeExt)("clang"),extractFunction:"win32"===t?ej:(e,t)=>eF(e,t,1)};}async function tQ(e,t,r){let n=await a7(e,t,r);return await t4(n.installDir??t),n;}async function tZ(e,t,r){let[n,i]=await Promise.all([t0(e,t,r),t3()]);return await a9(r),n;}async function t0(e,t,r,n=iq.All){let i=Number.parseInt(function(e){if(null===c(iD)(e))try{let t=c(im)(e);if(null!==t)return(0,rM.info)(`Coerced version '${e}' to '${t}'`),t.version;}catch(e){}return e;}(e).split(".")[0],10);try{if(em())return await tq(i,n);}catch(e){(0,rM.info)("Failed to install llvm via system package manager "+e);}let o=await eG("llvm",e,tJ,t,r);return await a5(i),o;}async function t1(e){em()&&(e<=10?await en([{name:"libtinfo5"}]):await en([{name:"libtinfo-dev"}]));}async function t2(e){"linux"===process.platform&&(await tI(tr("gcc",void 0,await aU()),"",e,40));}async function t4(e){let t=process.env.LD_LIBRARY_PATH??"",r=process.env.DYLD_LIBRARY_PATH??"",n=[C("LLVM_PATH",e,li),C("LD_LIBRARY_PATH",`${e}/lib${iW.delimiter}${t}`,li),C("DYLD_LIBRARY_PATH",`${e}/lib${iW.delimiter}${r}`,li),C("LDFLAGS",`-L"${e}/lib"`,li),C("CPPFLAGS",`-I"${e}/include"`,li),C("CC",(0,ih.addExeExt)(`${e}/bin/clang`),li),C("CXX",(0,ih.addExeExt)(`${e}/bin/clang++`),li),C("LIBRARY_PATH",`${e}/lib`,li),tR()];em()&&n.push(q("cc",`${e}/bin/clang`,li,60),q("cxx",`${e}/bin/clang++`,li,60),q("clang",`${e}/bin/clang`,li),q("clang++",`${e}/bin/clang++`,li),q("lld",`${e}/bin/lld`,li),q("ld.lld",`${e}/bin/ld.lld`,li),q("llvm-ar",`${e}/bin/llvm-ar`,li)),await Promise.all(n);}async function t3(){if(rF.GITHUB_ACTIONS){let e=(0,ih.join)(iV,"llvm_matcher.json");if(!(await(0,nM.pathExists)(e)))return(0,rM.warning)("the llvm_matcher.json file does not exist in the same folder as setup-cpp.js");(0,rM.info)("::add-matcher::"+e);}}async function t6(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",li),{binDir:"/usr/local/opt/make/libexec/gnubin"};case"linux":if(eh())return e_("make",e);if(ed())return
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.
--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 o=i.architecture??process.arch,s=process.env.SETUP_CPP_DIR??T("~"),a=[],l=[],u=nV.create({autoloadLocales:!0});nV.addLocale(c(nX)),nH.addLocale(c(nq));let p=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;}(i,["llvm","clangtidy","clangformat"]))return(0,rM.error)("The same version must be used for llvm, clangformat and clangtidy"),1;eh()&&"string"==typeof i.cppcheck&&"string"==typeof i.gcovr&&((0,rM.info)("installing python-pygments to avoid conflicts with cppcheck and gcovr on Arch linux"),await e_("python-pygments"));let f=!1,d=!1;for(let e of lr){if(rF.isCI&&0!==l.length){d=!0;break;}let n=i[e];void 0!==n&&(t=Date.now(),f=await tB(e,n,p,o,s,a,l,6e4*Number.parseFloat(i.timeout??"20")),r=Date.now(),(0,rM.info)("took "+(u.format(t,r)||"0 seconds")));}if(!d){let e=i.compiler;if(void 0!==e){let t=Date.now();await rc(e,p,s,o,a,f,l);let r=Date.now();(0,rM.info)("took "+(u.format(t,r)||"0 seconds"));}}if(await $(li),0===a.length&&0===l.length)return(0,rM.warning)("setup-cpp was called without any arguments. Nothing to do."),0;for(let e of a)(0,rM.success)(e);for(let e of l)(0,rM.error)(e);if((0,rM.info)("setup-cpp finished"),!rF.GITHUB_ACTIONS)switch(process.platform){case"win32":(0,rM.warning)("Run `RefreshEnv.cmd` or restart your shell to update the environment.");break;case"linux":case"darwin":(0,rM.warning)("Run `source ~/.cpprc` or restart your shell to update the environment.");}return await n,0===l.length?0:1;}var rp,rf,rd,rh,rm,rv,rg,ry,rE,rw,r_,rb,rx,rR,rO,rS,rI,rT,rP,rA,rN,r$,rC,rL,rk,rD,rj,rU,rF,rM,rG,rB,rH,rq,rV,rX,rz,rW,rK,rY,rJ,rQ,rZ,r0,r1,r2,r4,r3,r6,r8,r7,r5,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,nR,nO,nS,nI,nT,nP,nA,nN,n$,nC,nL,nk,nD,nj,nU,nF,nM,nG,nB,nH,nq,nV,nX,nz,nW,nK,nY,nJ,nQ,nZ,n0,n1,n2,n4,n3,n6,n8,n7,n5,n9,ie,it,ir,ii,io,is,ia,il,ic,iu,ip,id,ih,im,iv,ig,iy,iE,iw,i_,ib,ix,iR,iO,iS,iI,iT,iP,iA,iN,i$,iC,iL,ik,iD,ij,iU,iF,iM,iG,iB,iH,iq,iV,iX,iz=require("os"),iW=require("path"),iK=require("fs"),iY=require("crypto"),iJ=require("http"),iQ=require("https");require("net"),rh=require("tls"),rm=require("events"),rv=require("assert"),rg=require("util"),ry=require("fs"),rE=require("child_process"),rw=require("string_decoder"),r_=require("timers"),rb=require("buffer"),rx=require("path"),rR=require("child_process"),rO=require("process"),rS=require("url"),rI=require("os"),rT=require("buffer"),rP=require("stream"),rA=require("util"),rN=require("process"),r$=require("url"),rC=require("console"),rk={},rD={},null==(rj=(rL=globalThis).parcelRequire810d)&&((rj=function(e){if(e in rk)return rk[e].exports;if(e in rD){var t=rD[e];delete rD[e];var r={id:e,exports:{}};return rk[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){rD[e]=t;},rL.parcelRequire810d=rj),(rU=rj.register)("9ne19",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=rj("elk84");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){case"string":e.exports.isPR=!!i[t.pr];break;case"object":"env"in t.pr?e.
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=rj("kPBPC"),Object.defineProperty(e.exports,"summary",{enumerable:!0,get:function(){return p.summary;}}),p=rj("kPBPC"),Object.defineProperty(e.exports,"markdownSummary",{enumerable:!0,get:function(){return p.markdownSummary;}}),f=rj("fv8Nn"),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("lffbf",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(iz);o=rj("h6Xqd"),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("h6Xqd",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("60EQk",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("lpeQd",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(iJ),f=i(iQ),d=i(rj("bBH88")),h=i(rj("eYDoL"));(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}`,oo=Object.getOwnPropertyDescriptor(Function.prototype,"toString"),os=Object.getOwnPropertyDescriptor(Function.prototype.toString,"name"),oa=(e,t,r)=>{let n=""===r?"":`with ${r.trim()}() `,i=oi.bind(null,n,t.toString());Object.defineProperty(i,"name",os),Object.defineProperty(e,"toString",{...oo,value:i});},ol=new WeakMap(),oc=(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(ol.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))ot(e,t,n,r);on(e,t),oa(e,t,n);}(o,e),ol.set(o,n),o;};oc.callCount=e=>{if(!ol.has(e))throw Error(`The given function \`${e.name}\` is not wrapped by the \`onetime\` package`);return ol.get(e);},r1=oc;const ou=()=>Array.from({length:od-of+1},op),op=(e,t)=>({name:"SIGRT"+(t+1),number:of+t,action:"terminate",description:"Application-specific signal (realtime)",standard:"posix"}),of=34,od=64,oh=[{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;},ob=["stdin","stdout","stderr"],ox=e=>ob.some(t=>void 0!==e[t]),oR=e=>{if(!e)return;let{stdio:t}=e;if(void 0===t)return ob.map(t=>e[t]);if(ox(e))throw Error("It's not possible to provide `stdio` in combination with one of "+ob.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,ob.length)},(e,r)=>t[r]);};r2={};const oO=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(oO(r4=rL.process)){var oS,oI=rv,oT=rj("1YMV0"),oP=/^win/i.test(r4.platform),oA=rm;"function"!=typeof oA&&(oA=oA.EventEmitter),r4.__signal_exit_emitter__?oS=r4.__signal_exit_emitter__:((oS=r4.__signal_exit_emitter__=new oA()).count=0,oS.emitted={}),oS.infinite||(oS.setMaxListeners(1/0),oS.infinite=!0);var oN=function(){oL&&oO(rL.process)&&(oL=!1,oT.forEach(function(e){try{r4.removeListener(e,oC[e]);}catch(e){}}),r4.emit=oU,r4.reallyExit=oD,oS.count-=1);};(r2=function(e,t){if(!oO(rL.process))return function(){};oI.equal(typeof e,"function","a callback must be provided for exit handler"),!1===oL&&ok();var r="exit";return t&&t.alwaysLast&&(r="afterexit"),oS.on(r,e),function(){oS.removeListener(r,e),0===oS.listeners("exit").length&&0===oS.listeners("afterexit").length&&oN();};}).unload=oN;var o$=function(e,t,r){oS.emitted[e]||(oS.emitted[e]=!0,oS.emit(e,t,r));},oC={};oT.forEach(function(e){oC[e]=function(){oO(rL.process)&&r4.listeners(e).length===oS.count&&(oN(),o$("exit",null,e),o$("afterexit",null,e),oP&&"SIGHUP"===e&&(e="SIGINT"),r4.kill(r4.pid,e));};}),r2.signals=function(){return oT;};var oL=!1,ok=function(){!oL&&oO(rL.process)&&(oL=!0,oS.count+=1,oT=oT.filter(function(e){try{return r4.on(e,oC[e]),!0;}catch(e){return!1;}}),r4.emit=oF,r4.reallyExit=oj);};r2.load=ok;var oD=r4.reallyExit,oj=function(e){oO(rL.process)&&(r4.exitCode=e||0,o$("exit",r4.exitCode,null),o$("afterexit",r4.exitCode,null),oD.call(r4,r4.exitCode));},oU=r4.emit,oF=function(e,t){if(!("exit"===e&&oO(rL.process)))return oU.apply(this,arguments);void 0!==t&&(r4.exitCode=t);var r=oU.apply(this,arguments);return o$("exit",r4.exitCode,null),o$("afterexit",r4.exitCode,null),r;};}else r2=function(){return function(){};};const oM=(e,t="SIGTERM",r={})=>{let n=e(t);return oG(e,t,r,n),n;},oG=(e,t,r,n)=>{if(!oB(t,r,n))return;let i=setTimeout(()=>{e("SIGKILL");},oq(r));i.unref&&i.unref();},oB=(e,{forceKillAfterTimeout:t},r)=>oH(e)&&!1!==t&&r,oH=e=>e===c(rI).constants.signals.SIGTERM||"string"==typeof e&&"SIGTERM"===e.toUpperCase(),oq=({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}));},oz=(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);})]);},oW=({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})`);},oK=async(e,{cleanup:t,detached:r},n)=>{if(!t||r)return n;let i=c(r2)(()=>{e.kill();});return n.finally(()=>{i();});},oY=e=>e instanceof rR.ChildProcess&&"function"==typeof e.then,oJ=(e,t,r)=>{if("string"==typeof r)return e[t].pipe((0,ry.createWriteStream)(r)),e;if(g
`);},sg=({env:e,extendEnv:t,preferLocal:r,localDir:n,execPath:i})=>{let o=t?{...c(rO).env,...e}:e;return r?oe({env:o,cwd:n,execPath:i}):o;},sy=(e,t,r={})=>{let n=c(rB)._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(rO).cwd(),execPath:c(rO).execPath,encoding:"utf8",reject:!0,cleanup:!0,all:!1,windowsHide:!0,verbose:sd,...r}).env=sg(r),r.stdio=oR(r),"win32"===c(rO).platform&&"cmd"===c(rx).basename(e,".exe")&&t.unshift("/q"),{file:e,args:t,options:r,parsed:n};},sE=(e,t,r)=>"string"==typeof t||(0,rb.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:"",sw=({input:e,inputFile:t,stdio:r})=>void 0===e&&void 0===t&&void 0===r?{stdin:"inherit"}:{},s_=(e={})=>({preferLocal:!0,...sw(e),...e});!function e(t){function r(n,...i){if(!Array.isArray(n))return e({...t,...n});let[o,...s]=sf(n,i);return E(o,s,s_(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]=sf(e,r);return w(n,i,s_(t));},r;}(),nt={},l(nr={},"isexe",()=>sb),l(nr,"sync",()=>sx),nn=rj("4oHc1");const sb=async(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return sR(await(0,nn.stat)(e),t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},sx=(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return sR((0,iK.statSync)(e),t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},sR=(e,t)=>e.isFile()&&sO(e,t),sO=(e,t)=>{let r=t.uid??process.getuid?.(),n=t.groups??process.getgroups?.()??[],i=t.gid??process.getgid?.()??n[0];if(void 0===r||void 0===i)throw Error("cannot get uid or gid");let o=new Set([i,...n]),s=e.mode,a=e.uid,l=e.gid,c=parseInt("100",8),u=parseInt("010",8);return!!(s&parseInt("001",8)||s&u&&o.has(l)||s&c&&a===r||s&(c|u)&&0===r);};l(ni={},"isexe",()=>sS),l(ni,"sync",()=>sI),nn=rj("4oHc1");const sS=async(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return sP(await(0,nn.stat)(e),e,t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},sI=(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return sP((0,iK.statSync)(e),e,t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},sT=(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;},sP=(e,t,r)=>e.isFile()&&sT(t,r),sA="win32"===(process.env._ISEXE_TEST_PLATFORM_||process.platform)?ni:nr,sN=sA.isexe,s$=sA.sync;no=iW.join,ns=iW.delimiter,na=iW.sep,nl=iW.posix;const sC="win32"===process.platform,sL=new RegExp(`[${nl.sep}${na===nl.sep?"":na}]`.replace(/(\\)/g,"\\$1")),sk=RegExp("^\\."+sL.source),sD=e=>Object.assign(Error("not found: "+e),{code:"ENOENT"}),sj=(e,{path:t=process.env.PATH,pathExt:r=process.env.PATHEXT,delimiter:n=ns})=>{let i=e.match(sL)?[""]:[...(sC?[process.cwd()]:[]),...(t||"").split(n)];if(sC){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&&sk.test(t)?t.slice(0,2):"")+no(r,t);},sF=async(e,t={})=>{let{pathEnv:r,pathExt:n,pathExtExe:i}=sj(e,t),o=[];for(let s of r){let r=sU(s,e);for(let e of n){let n=r+e;if(await sN(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 sD(e);};nt=sF,sF.sync=(e,t={})=>{let{pathEnv:r,pathExt:n,pathExtExe:i}=sj(e,t),o=[];for(let s of r){let r=sU(s,e);for(let e of n){let n=r+e;if(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 sD(e);};const sM={stdio:"inherit",shell:!0};rM=rj("ER74K"),nc={},nu=rj("3a7Qq"),np={},nf=rj("6u4nl"),np=function(e,t,r){return isNaN(e)?t>=0?r&&t?t-1:t:1:
//# sourceMappingURL=setup-cpp.js.map