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

45 lines
272 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);});});}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=rX.sync(e.command,{path:n[rK({env:n})],pathExt:t?iK.delimiter:void 0});}catch(e){}finally{s&&process.chdir(i);}return r&&(r=iK.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 i7&&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=r5(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),oK(i.options);try{n=c(rO).spawn(i.file,i.args,i.options);}catch(t){let e=new(c(rO).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=oY(n,i.options,l),p={isCanceled:!1};n.kill=oG.bind(null,n.kill.bind(n)),n.cancel=oX.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=o7(n,i.options),oZ(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=o3(i.options);try{n=c(rO).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(){return(process.getuid?.()===0||!!process.env.CI)&&null!==c(nr).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),$(t,T("~/.bashrc")),$(t,T("~/.profile"))]);}catch(e){(0,rG.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,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 $(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 N(e){if(await(0,nG.pathExists)(e.rcPath)){let t=[...new Set((await sq(e.rcPath,"utf-8")).split("\n").reverse())].reverse();await sV(e.rcPath,t.join("\n")),await I(e.rcPath);}}async function C(e,t,r={}){let n={escapeSpace:!1,overwrite:!0,rcPath:sX,...r},i=function(e,t=!1){let r=t?c(nB)(e):e;return c(nH)(r,'"',"\\");}(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=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 sz(r),r.overwrite?(await sJ(r.rcPath,`
export ${e}="${n}"
`),(0,rG.info)(`${e}="${n}" was added to "${r.rcPath}`)):(await sJ(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={}){var r;let n={rcPath:sX,...t};if(r=e,!(sZ.some(e=>e.test(r))&&(process.env.PATH?.split(iK.delimiter)??[]).includes(r))){process.env.PATH=`${e}${iK.delimiter}${process.env.PATH}`;try{if(rM.GITHUB_ACTIONS)try{(0,rB.addPath)(e);}catch(t){(0,rG.error)(t),await D(e,n);}else await D(e,n);}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 sz(t),await sQ(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 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(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 R("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 sz(r),await s0(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(nr).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,id.default)(t)}-${(0,id.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 s2?3:(s4(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,rG.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){s4(e);let t=await Y([{name:"ca-certificates"},{name:"gnupg"},{name:"apt-utils"}],e);0!==t.length&&x(e,["install","-y","--fix-broken","-o",s1,...t],{...sG,env:V(e)});}async function et(e,t=z()){await s3(t),await er(t),x("add-apt-repository",["-y","--no-update",e],{...sG,env:V(t)}),s4.clear(),s4(t);}async function er(e){(await W("software-properties-common"))||x(e,["install","-y","--fix-broken","-o",s1,"software-properties-common"],{...sG,env:V(e)});}async function en(e,t=!1){let r=z();for(let{name:t,version:n}of e)(0,rG.info)(`Installing ${t} ${n??""} via ${r}`);t&&s4(r),await ei(r,e);let n=await Y(e,r);if(0===n.length)return(0,rG.info)("All packages are already installed"),{binDir:"/usr/bin/"};await s3(r);try{await eo(e),x(r,["install","--fix-broken","-y",...n],{...sG,env:V(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: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=s7,fileName:r,keyStorePath:n=s7}){try{ec(r);let i=(0,iK.join)(n,r);return(await(0,nG.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,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,iK.join)(r,t);if(!(await(0,nG.pathExists)(n))){el(),await en([{name:"ca-certificates"}]);let r=(0,iK.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 r=await c(nr)("brew",{nothrow:!0});if(null!==r)return
apt-get update -o ${s1} -y`),a=r,c=1===o?s.replace(/ -y \$PKG/g," -y clang-format-"+a):s,l=c=await tz(c),c=X()?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 tz(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 K(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 tK(e,t,r){let n=`${t}${e}${r}`;return`https://releases.llvm.org/${e}/${n}`;}async function tY(e){let t;if(a4.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=tK(e,r,n),(await ik(t))||(o=!0)),(o||!i)&&(t=tW(e,r,n)),t;}function tJ(e,t){switch(e){case"darwin":return function(e){if(a3.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")?tK(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[a7],(0,rG.warning)(`Falling back to LLVM version ${a7} ${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"))?tK(n,o,r):tW(n,o,r);}(t);case"win32":return tY(t);default:return null;}}async function tQ(e,t,r){let[n,i]=await eK(a2,t,e,tJ);return(0,rG.info)("specific llvm version: "+n),{url:i,extractedFolderName:"",binRelativeDir:"bin",binFileName:(0,im.addExeExt)("clang"),extractFunction:"win32"===t?ej:(e,t)=>eF(e,t,1)};}async function tZ(e,t,r){let n=await a5(e,t,r);return await t3(n.installDir??t),n;}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=iV.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 tV(i,n);}catch(e){(0,rG.info)("Failed to install llvm via system package manager "+e);}let o=await eG("llvm",e,tQ,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 t4(e){"linux"===process.platform&&(await tI(tr("gcc",void 0,await aF()),"",e,40));}async function t3(e){let t=process.env.LD_LIBRARY_PATH??"",r=process.env.DYLD_LIBRARY_PATH??"",n=[C("LLVM_PATH",e,lo),C("LD_LIBRARY_PATH",`${e}/lib${iK.delimiter}${t}`,lo),C("DYLD_LIBRARY_PATH",`${e}/lib${iK.delimiter}${r}`,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),tR()];em()&&n.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(n);}async function t6(){if(rM.GITHUB_ACTIONS){let e=(0,im.join)(iX,"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/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=nX.create({autoloadLocales:!0});nX.addLocale(c(nz)),nq.addLocale(c(nV));let p=await aF();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,rG.error)("The same version must be used for llvm, clangformat and clangtidy"),1;eh()&&"string"==typeof i.cppcheck&&"string"==typeof i.gcovr&&((0,rG.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 ln){if(rM.isCI&&0!==l.length){d=!0;break;}let n=i[e];void 0!==n&&(t=Date.now(),f=await tH(e,n,p,o,s,a,l,6e4*Number.parseFloat(i.timeout??"20")),r=Date.now(),(0,rG.info)("took "+(u.format(t,r)||"0 seconds")));}if(!d){let e=i.compiler;if(void 0!==e){let t=Date.now();await ru(e,p,s,o,a,f,l);let r=Date.now();(0,rG.info)("took "+(u.format(t,r)||"0 seconds"));}}if(await N(lo),0===a.length&&0===l.length)return(0,rG.warning)("setup-cpp was called without any arguments. Nothing to do."),0;for(let e of a)(0,rG.success)(e);for(let e of l)(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 n,0===l.length?0:1;}var rf,rd,rh,rm,rv,rg,ry,rE,rw,r_,rb,rx,rR,rO,rS,rI,rT,rP,rA,r$,rN,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,n$,nN,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,i$,iN,iC,iL,ik,iD,ij,iU,iF,iM,iG,iB,iH,iq,iV,iX,iz,iW=require("os"),iK=require("path"),iY=require("fs"),iJ=require("crypto"),iQ=require("http"),iZ=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"),rR=require("path"),rO=require("child_process"),rS=require("process"),rI=require("url"),rT=require("os"),rP=require("buffer"),rA=require("stream"),r$=require("util"),rN=require("process"),rC=require("url"),rL=require("console"),rD={},rj={},null==(rU=(rk=globalThis).parcelRequire810d)&&((rU=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=rU),(rF=rU.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=rU("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=rU("kPBPC"),Object.defineProperty(e.exports,"summary",{enumerable:!0,get:function(){return p.summary;}}),p=rU("kPBPC"),Object.defineProperty(e.exports,"markdownSummary",{enumerable:!0,get:function(){return p.markdownSummary;}}),f=rU("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;}});}),rF("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(iW);o=rU("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")));}}}),rF("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}:{};};}),rF("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;}),rF("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(iQ),f=i(iZ),d=i(rU("bBH88")),h=i(rU("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}`,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"],oR=e=>ox.some(t=>void 0!==e[t]),oO=e=>{if(!e)return;let{stdio:t}=e;if(void 0===t)return ox.map(t=>e[t]);if(oR(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]);};r4={};const oS=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(oS(r3=rk.process)){var oI,oT=rg,oP=rU("1YMV0"),oA=/^win/i.test(r3.platform),o$=rv;"function"!=typeof o$&&(o$=o$.EventEmitter),r3.__signal_exit_emitter__?oI=r3.__signal_exit_emitter__:((oI=r3.__signal_exit_emitter__=new o$()).count=0,oI.emitted={}),oI.infinite||(oI.setMaxListeners(1/0),oI.infinite=!0);var oN=function(){ok&&oS(rk.process)&&(ok=!1,oP.forEach(function(e){try{r3.removeListener(e,oL[e]);}catch(e){}}),r3.emit=oF,r3.reallyExit=oj,oI.count-=1);};(r4=function(e,t){if(!oS(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&&oN();};}).unload=oN;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(){oS(rk.process)&&r3.listeners(e).length===oI.count&&(oN(),oC("exit",null,e),oC("afterexit",null,e),oA&&"SIGHUP"===e&&(e="SIGINT"),r3.kill(r3.pid,e));};}),r4.signals=function(){return oP;};var ok=!1,oD=function(){!ok&&oS(rk.process)&&(ok=!0,oI.count+=1,oP=oP.filter(function(e){try{return r3.on(e,oL[e]),!0;}catch(e){return!1;}}),r3.emit=oM,r3.reallyExit=oU);};r4.load=oD;var oj=r3.reallyExit,oU=function(e){oS(rk.process)&&(r3.exitCode=e||0,oC("exit",r3.exitCode,null),oC("afterexit",r3.exitCode,null),oj.call(r3,r3.exitCode));},oF=r3.emit,oM=function(e,t){if(!("exit"===e&&oS(rk.process)))return oF.apply(this,arguments);void 0!==t&&(r3.exitCode=t);var r=oF.apply(this,arguments);return oC("exit",r3.exitCode,null),oC("afterexit",r3.exitCode,null),r;};}else r4=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");},oV(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(),oV=({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;},oX=(e,t)=>{e.kill()&&(t.isCanceled=!0);},oz=(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(()=>{oz(e,r,o);},t);}),n.finally(()=>{clearTimeout(i);})]);},oK=({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})`);},oY=async(e,{cleanup:t,detached:r},n)=>{if(!t||r)return n;let i=c(r4)(()=>{e.kill();});return n.finally(()=>{i();});},oJ=e=>e instanceof rO.ChildProcess&&"function"==typeof e.then,oQ=(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(rS).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(rS).cwd(),execPath:c(rS).execPath,encoding:"utf8",reject:!0,cleanup:!0,all:!1,windowsHide:!0,verbose:sh,...r}).env=sy(r),r.stdio=oO(r),"win32"===c(rS).platform&&"cmd"===c(rR).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",()=>sR),ni=rU("4oHc1");const sx=async(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return sO(await(0,ni.stat)(e),t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},sR=(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return sO((0,iY.statSync)(e),t);}catch(e){if(r||"EACCES"===e.code)return!1;throw e;}},sO=(e,t)=>e.isFile()&&sS(e,t),sS=(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(no={},"isexe",()=>sI),l(no,"sync",()=>sT),ni=rU("4oHc1");const sI=async(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return sA(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 sA((0,iY.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;},sA=(e,t,r)=>e.isFile()&&sP(t,r),s$="win32"===(process.env._ISEXE_TEST_PLATFORM_||process.platform)?no:nn,sN=s$.isexe,sC=s$.sync;ns=iK.join,na=iK.delimiter,nl=iK.sep,nc=iK.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"}),sU=(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:[""]};},sF=(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}=sU(e,t),o=[];for(let s of r){let r=sF(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 sj(e);};nr=sM,sM.sync=(e,t={})=>{let{pathEnv:r,pathExt:n,pathExtExe:i}=sU(e,t),o=[];for(let s of r){let r=sF(s,e);for(let e of n){let n=r+e;if(sC(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);};const sG={stdio:"inherit",shell:!0};rG=rU("ER74K"),nu={},np=rU("3a7Qq"),nf={},nd=rU("6u4nl"),nf=function(e,t,r){return isNaN(e)?t>=0?r&&t?t-1:t:1:
//# sourceMappingURL=setup-cpp.js.map