CINXE.COM
Resources
<!doctype html> <html lang="en-US"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1" /> <style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style> <link rel='dns-prefetch' href='//www.google.com' /> <link rel='stylesheet' id='wp-block-library-css' href='https://cmake.org/wp-includes/css/dist/block-library/style.min.css?ver=6.7.2' type='text/css' media='all' /> <style id='classic-theme-styles-inline-css' type='text/css'> /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} </style> <link rel='stylesheet' id='kitwarean-lite-styles-css' href='https://cmake.org/wp-content/themes/kitwarean-lite/_resources/css/styles.min.css' type='text/css' media='all' /> <style id='akismet-widget-style-inline-css' type='text/css'> .a-stats { --akismet-color-mid-green: #357b49; --akismet-color-white: #fff; --akismet-color-light-grey: #f6f7f7; max-width: 350px; width: auto; } .a-stats * { all: unset; box-sizing: border-box; } .a-stats strong { font-weight: 600; } .a-stats a.a-stats__link, .a-stats a.a-stats__link:visited, .a-stats a.a-stats__link:active { background: var(--akismet-color-mid-green); border: none; box-shadow: none; border-radius: 8px; color: var(--akismet-color-white); cursor: pointer; display: block; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen-Sans', 'Ubuntu', 'Cantarell', 'Helvetica Neue', sans-serif; font-weight: 500; padding: 12px; text-align: center; text-decoration: none; transition: all 0.2s ease; } /* Extra specificity to deal with TwentyTwentyOne focus style */ .widget .a-stats a.a-stats__link:focus { background: var(--akismet-color-mid-green); color: var(--akismet-color-white); text-decoration: none; } .a-stats a.a-stats__link:hover { filter: brightness(110%); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06), 0 0 2px rgba(0, 0, 0, 0.16); } .a-stats .count { color: var(--akismet-color-white); display: block; font-size: 1.5em; line-height: 1.4; padding: 0 13px; white-space: nowrap; } </style> <script type="text/javascript"> window._nslDOMReady = function (callback) { if ( document.readyState === "complete" || document.readyState === "interactive" ) { callback(); } else { document.addEventListener( "DOMContentLoaded", callback ); } }; </script><script type="text/javascript" src="https://cmake.org/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script> <script type="text/javascript" src="https://cmake.org/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script> <link rel="canonical" href="https://cmake.org/resources/" /> <style type="text/css" id="wp-custom-css"> :root { background: #FFFFFF; } .wp-block-video { max-height: 52rem; height: 100%; overflow: hidden; } .wp-block-video video { object-position: center; object-fit: cover; max-height: 52rem; } .kwArrow.kwArrow--layout3 { z-index: 10; } .kwSolutions .images { position: relative; z-index: 15; } .home .kwBlocksArrow.kwBlocksArrow--design2 .kwBlocksArrow__img { display: none; } .home .kwBlocksArrow.kwBlocksArrow--design2 .kwBlocksArrow__text { flex-basis: 100%; margin-left: 92px; max-width: 80%; } .home .kwBlocksArrow.kwBlocksArrow--design2 .kwBlocksArrow__text .txt__title { margin-bottom: 1.5rem } .home .kwBlocksArrow.kwBlocksArrow--design2 .kwBlocksArrow__text .txt__content p:first-child { margin-bottom: 2rem;} .cardLogo--size .cardLogo__image img { max-height: 80px; } </style> <title>Resources</title><link rel="preload" data-rocket-preload as="image" href="https://cmake.org/wp-content/themes/kitwarean-lite/_resources/img/layout/subheader-background.svg" fetchpriority="high"> <meta name='Description' content='Since CMake is the most downloaded software build platform, there is an overwhelming number of resources out there. We wanted to pull together some of the best resources so you can easily find what you need no matter where you are in your CMake journey.' /> <meta property='og:title' content='Resources' /> <meta property='og:description' content='Since CMake is the most downloaded software build platform, there is an overwhelming number of resources out there. We wanted to pull together some of the best resources so you can easily find what you need no matter where you are in your CMake journey.' /> <meta property='og:url' content='https://cmake.org/resources/' /> <meta property='og:type' content='website' /> <meta property='og:locale' content='en_US' /> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-ND55CNGS');</script> <!-- End Google Tag Manager --> <meta name="generator" content="WP Rocket 3.18.3" data-wpr-features="wpr_oci wpr_preload_links wpr_desktop" /></head> <body class="page-template page-template-page-sidebar page-template-page-sidebar-php page page-id-23" itemscope itemtype="https://schema.org/WebPage"> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-ND55CNGS" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <a href="#main" class="skip" rel="nofollow">Skip to content</a> <!-- SITE-TOPPER --> <section class="site-topper"> <div class="layout"> <div class="site-topper__logo"> <a href='https://www.kitware.com' target='_BLANK'><svg width="79" height="18" viewBox="0 0 79 18" xmlns="http://www.w3.org/2000/svg"> <path d="M4.41452 1.18715L0.165527 5.99673L1.1981 7.19616L6.77639 0.878387H5.1029C4.84179 0.878387 4.59255 0.985267 4.41452 1.18715Z" /> <path d="M7.67852 1.18715L1.77979 7.86119L2.81236 9.06062L10.0404 0.878387H8.3669C8.10579 0.878387 7.84468 0.985267 7.67852 1.18715Z" /> <path d="M13.2922 0.878387H11.6306C11.3695 0.878387 11.1084 0.997142 10.9303 1.18715L3.38184 9.73752L10.1945 17.6585C10.3725 17.8604 10.6217 17.9791 10.8947 17.9791H12.5326L5.44699 9.7494L13.2922 0.878387Z" /> <path d="M6.088 17.9791L0.165527 11.1032V13.5021L3.74987 17.6585C3.9279 17.8604 4.17714 17.9791 4.45012 17.9791H6.088Z"/> <path d="M9.31628 17.9791L0.165527 7.35056V9.74941L6.97815 17.6585C7.15618 17.8604 7.40543 17.9791 7.67841 17.9791H9.31628Z" /> <path d="M16.1885 2.12531H17.7433V16.7084H16.1885V2.12531ZM22.4907 6.40049H24.4728L20.2001 11.2695L24.9001 16.6966H22.918L18.218 11.2695L22.4907 6.40049Z" /> <path d="M26.8942 1.85217C27.4521 1.85217 27.9031 2.32719 27.9031 2.87347C27.9031 3.43162 27.4521 3.88289 26.8942 3.88289C26.3127 3.88289 25.8735 3.43162 25.8735 2.87347C25.8735 2.30344 26.3245 1.85217 26.8942 1.85217ZM26.1109 6.40049H27.6657V16.7084H26.1109V6.40049Z" /> <path d="M30.0275 3.62161H31.5823V6.40048H35.7007V7.87305H31.5823V13.0864C31.5823 14.8558 32.3775 15.3902 33.5644 15.3902C34.4189 15.3902 35.3209 15.1765 35.9144 14.9033L36.1517 16.3759C35.4634 16.6728 34.5257 16.8628 33.5644 16.8628C31.4873 16.8628 30.0156 15.9009 30.0156 13.0745V3.62161H30.0275Z" /> <path d="M41.2431 14.5946L44.0441 6.40048H45.6227L48.4237 14.5827L51.2128 6.40048H52.8151L49.2308 16.7084H47.6285L44.8275 8.82309L42.0265 16.7084H40.4242L36.8398 6.40048H38.4421L41.2431 14.5946Z" /> <path d="M61.2537 16.2809C60.2923 16.6253 58.7731 16.8747 57.3489 16.8747C54.8683 16.8747 53.2305 16.0434 53.2305 13.7158C53.2305 11.412 54.8802 10.5332 57.6694 10.5332H59.6989V9.52374C59.6989 8.11056 58.7138 7.65929 57.0878 7.65929C55.8891 7.65929 54.9039 7.87305 54.263 8.11056L54.0257 6.67362C54.8565 6.43611 55.9009 6.22235 57.1471 6.22235C59.4971 6.22235 61.2537 7.07739 61.2537 9.6425V16.2809ZM59.6989 11.7682H57.6931C55.7941 11.7682 54.7853 12.2432 54.7853 13.692C54.7853 15.1409 55.7941 15.5328 57.3014 15.5328C58.0492 15.5328 59.0343 15.4496 59.6989 15.2359V11.7682Z" /> <path d="M63.6396 6.82802C64.328 6.50739 65.6099 6.24612 66.8679 6.24612C67.675 6.24612 68.3634 6.32925 68.9212 6.50739L68.6245 7.9562C68.304 7.82557 67.6631 7.71869 66.9154 7.71869C66.0371 7.71869 65.5742 7.82557 65.2063 7.99182V16.6966H63.6515V6.82802H63.6396Z"/> <path d="M77.9648 12.172H70.9267V12.2551C70.9267 14.4402 72.1848 15.4021 74.3211 15.4021C75.5199 15.4021 76.7779 15.1052 77.5494 14.7015L77.7868 16.174C76.7779 16.6253 75.5673 16.8747 74.3093 16.8747C71.0216 16.8747 69.3481 15.224 69.3481 11.5782C69.3481 8.60933 70.4401 6.23422 73.8108 6.23422C76.5287 6.23422 78.131 7.75429 78.131 10.7469C78.131 11.1744 78.0835 11.7207 77.9648 12.172ZM70.9267 10.8538H76.6355V10.7232C76.6355 8.5262 75.5199 7.62366 73.7752 7.62366C72.0423 7.62366 70.9385 8.50244 70.9385 10.7232V10.8538H70.9267Z" /> </svg></a> </div> <div class="site-topper__nav"> <ul id="menu-topper-navigation" class="menu"><li id="menu-item-49" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-49"><a href="https://www.kitware.com">kitware.com</a></li> <li id="menu-item-47" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-47"><a href="https://cmake.org/contact-us/">contact us</a></li> </ul> </div> </div> </section> <!-- /SITE-TOPPER --> <!-- SITE-HEADER --> <header class="site-header layout-header"> <div class="layout"> <div class="logo"> <a href="https://cmake.org/"> <span class='logo__image'><img width="290" height="82" src="https://cmake.org/wp-content/uploads/2023/08/CMake-Logo.svg" class="attachment-full-size size-full-size" alt="CMake Logo" decoding="async" loading="lazy" /></span> </a> </div> <div class="navbar"> <div class="hamburger"> <a href="#"> <div class="icon-hamburger"> <span></span> </div> </a> </div> <nav class="primary"> <ul id="menu-primary-navigation" class="menu"><li id="menu-item-50" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-50"><a href="https://cmake.org/about/">about</a> <ul class="sub-menu"> <li id="menu-item-51" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-51"><a href="https://cmake.org/features/">Features</a></li> <li id="menu-item-76" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-76"><a href="https://cmake.org/history/">History</a></li> <li id="menu-item-58" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-58"><a href="https://cmake.org/news/">News & Updates</a></li> </ul> </li> <li id="menu-item-52" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-52"><a href="https://cmake.org/solutions/">solutions</a> <ul class="sub-menu"> <li id="menu-item-55" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-55"><a href="https://cmake.org/support/">Support</a></li> <li id="menu-item-54" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-54"><a href="https://cmake.org/training/">Training</a></li> </ul> </li> <li id="menu-item-60" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-60"><a href="https://cmake.org/getting-started/">getting started</a></li> <li id="menu-item-1177" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1177"><a href="https://cmake.org/documentation/">documentation</a></li> <li id="menu-item-1058" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1058"><a href="https://cmake.org/contact-us/">customize</a></li> <li id="menu-item-1057" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1057"> <form role='search' method='get' action='https://cmake.org' class='search'> <label class='sr-only' for=''>Search</label> <input type='search' value='' placeholder='Enter Keyword' name='s' /> <button> <div class='iconHex iconHex--secondary-500 iconHex--small'> <span class='iconHex__icon'><svg viewBox='0 0 1.1536 1'></svg><span class='icon-search'></span></span> </div> </button> </form> </li> <li id="menu-item-61" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-61"><a href="/cmake/download" class="btn btn-secondary btn-sm"><span class="icon-download"></span> Download</a></li> </ul> </nav> </div> </div> </header> <!-- /SITE-HEADER --> <!-- PAGE-CONTENT --> <main id="main" class="page layout-sidebar"> <!-- PAGE-HEADER --> <section class="page-header subheader"> <div class="layout"> <div class='breadcrumbs'><ul><li><a href='/'><span class='sr-only'>Home</span><span class='iconHex iconHex--primary iconHex--small'><span class='iconHex__icon'><svg viewBox='0 0 1.1536 1'></svg><span class='icon-home'></span></span></span></a></li><li><a href='https://cmake.org/resources/'>Resources</a></li></ul></div> <h1>Resources</h1> </div> </section> <!-- /PAGE-HEADER --> <!-- PAGE-SUBHEADER --> <section class="page-subheader pageSubheader"> <div class="background"></div> <div class="layout"> <div class='pageSidebar'> <div class='pageSidebar__content'><div class='pageSubheader__header'><div class='pageSubheader__heading '>Everything You Need to </div><div class='pageSubheader__heading pageSubheader__heading--large'>Successfully Use CMake</div></div><div class='pageSubheader__content'><p>Since CMake is the most downloaded software build platform, there is an overwhelming number of resources out there. We wanted to pull together some of the best resources so you can easily find what you need no matter where you are in your CMake journey. </p></dvi></div> </div> </div> </section> <!-- /PAGE-SUBHEADER --> <section class="page-content pageContent pt-2 pb-2"> <div class="layout"> <div class="pageSidebar"> <div class="pageSidebar__content"> <h2 class="wp-block-heading"><strong>Getting Started</strong></h2> <p>All the resources you need to begin your CMake journey, from learning materials to accessing the CMake community.</p> <p class="p-line"><a href="https://cmake.org/getting-started/" data-type="page" data-id="37">Getting Started</a></p> <h2 class="wp-block-heading px-mt-64">Documentation and Community</h2> <p>Whether you are still learning how to use CMake, contributing, or just enjoy being part of the conversation, there is is something here for everyone.</p> <p class="p-line"><a href="https://cmake.org/documentation/" data-type="page" data-id="39">Documentation and Community</a></p> <h2 class="wp-block-heading px-mt-64"><strong>News & Updates</strong></h2> <p>Stay up to date with the latest CMake blog articles and software releases.</p> <p class="p-line"><a href="https://cmake.org/news/" data-type="page" data-id="41">News & Updates</a></p> </div> <div class="pageSidebar__sidebar"> <div class="pageSidebar__slide"> <div class="cardSidebar "> <ul> <li> <a href='https://cmake.org/resources/' target='' class='heading' > Resources </a> </li> <li> <a href='https://cmake.org/getting-started/' target='' class='bullet' > Getting Started </a> </li> <li> <a href='https://cmake.org/documentation/' target='' class='bullet' > Documentation & Community </a> </li> <li> <a href='https://cmake.org/news/' target='' class='bullet' > News & Updates </a> </li> </ul> </div> <div class="cardSidebar cardSidebar__primary"> <div class='cardSidebar__content'> <h2>Advanced Support</h2> <p>As one of the lead developers of CMake, Kitware offers a variety of solutions to help you successfully leverage the platform. Whether you鈥檙e looking for a customized CMake system, paid technical support, or live training, we can provide our expertise to help you get there.</p> </div> <div class='cardSidebar__link'><a href='https://cmake.org/solutions/' class='btn btn-primary btn-sm' target=''>Solutions</a></div></div> </div> </div> </div> </div> </section> </main> <!-- /PAGE-CONTENT --> <!-- SITE-FOOTER --> <footer class="site-footer layout-footer"> <div class="layout"> <div class="footer__left"> <ul id="menu-left-side-footer-navigation" class="menu"><li id="menu-item-64" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-64"><a target="_blank" href="https://www.kitware.com">漏2024 Kitware, Inc</a></li> <li id="menu-item-65" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-65"><a target="_blank" href="https://twitter.com/Kitware"><span class="icon icon-x"></span></a></li> <li id="menu-item-66" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-66"><a target="_blank" href="https://www.linkedin.com/company/kitware-inc-"><span class="icon icon-linkedin"></span></a></li> <li id="menu-item-67" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-67"><a target="_blank" href="https://www.facebook.com/kitware"><span class="icon icon-facebook"></span></a></li> <li id="menu-item-68" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-68"><a target="_blank" href="https://www.paraview.org/vimeo"><span class="icon icon-vimeo"></span></a></li> </ul> </div> <div class="footer__right"> <ul id="menu-right-side-footer-navigation" class="menu"><li id="menu-item-69" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-69"><a href="https://www.kitware.com">kitware.com</a></li> <li id="menu-item-72" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-72"><a href="https://cmake.org/download/">download</a></li> <li id="menu-item-851" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-851"><a href="https://www.kitware.com/privacy/">privacy</a></li> <li id="menu-item-70" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-70"><a href="https://cmake.org/licensing/">license</a></li> <li id="menu-item-73" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-73"><a href="https://cmake.org/contact-us/">contact us</a></li> </ul> </div> </div> </footer> <!-- /SITE-FOOTER --> <div class="dump"></div> <script type="text/javascript" id="rocket-browser-checker-js-after"> /* <![CDATA[ */ "use strict";var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||!1,descriptor.configurable=!0,"value"in descriptor&&(descriptor.writable=!0),Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){return protoProps&&defineProperties(Constructor.prototype,protoProps),staticProps&&defineProperties(Constructor,staticProps),Constructor}}();function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor))throw new TypeError("Cannot call a class as a function")}var RocketBrowserCompatibilityChecker=function(){function RocketBrowserCompatibilityChecker(options){_classCallCheck(this,RocketBrowserCompatibilityChecker),this.passiveSupported=!1,this._checkPassiveOption(this),this.options=!!this.passiveSupported&&options}return _createClass(RocketBrowserCompatibilityChecker,[{key:"_checkPassiveOption",value:function(self){try{var options={get passive(){return!(self.passiveSupported=!0)}};window.addEventListener("test",null,options),window.removeEventListener("test",null,options)}catch(err){self.passiveSupported=!1}}},{key:"initRequestIdleCallback",value:function(){!1 in window&&(window.requestIdleCallback=function(cb){var start=Date.now();return setTimeout(function(){cb({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-start))}})},1)}),!1 in window&&(window.cancelIdleCallback=function(id){return clearTimeout(id)})}},{key:"isDataSaverModeOn",value:function(){return"connection"in navigator&&!0===navigator.connection.saveData}},{key:"supportsLinkPrefetch",value:function(){var elem=document.createElement("link");return elem.relList&&elem.relList.supports&&elem.relList.supports("prefetch")&&window.IntersectionObserver&&"isIntersecting"in IntersectionObserverEntry.prototype}},{key:"isSlowConnection",value:function(){return"connection"in navigator&&"effectiveType"in navigator.connection&&("2g"===navigator.connection.effectiveType||"slow-2g"===navigator.connection.effectiveType)}}]),RocketBrowserCompatibilityChecker}(); /* ]]> */ </script> <script type="text/javascript" id="rocket-preload-links-js-extra"> /* <![CDATA[ */ var RocketPreloadLinksConfig = {"excludeUris":"\/(?:.+\/)?feed(?:\/(?:.+\/?)?)?$|\/(?:.+\/)?embed\/|\/(index.php\/)?(.*)wp-json(\/.*|$)|\/refer\/|\/go\/|\/recommend\/|\/recommends\/","usesTrailingSlash":"1","imageExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|pdf|doc|docx|xls|xlsx|php","fileExt":"jpg|jpeg|gif|png|tiff|bmp|webp|avif|pdf|doc|docx|xls|xlsx|php|html|htm","siteUrl":"https:\/\/cmake.org","onHoverDelay":"100","rateThrottle":"3"}; /* ]]> */ </script> <script type="text/javascript" id="rocket-preload-links-js-after"> /* <![CDATA[ */ (function() { "use strict";var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e=function(){function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}}();function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var t=function(){function n(e,t){i(this,n),this.browser=e,this.config=t,this.options=this.browser.options,this.prefetched=new Set,this.eventTime=null,this.threshold=1111,this.numOnHover=0}return e(n,[{key:"init",value:function(){!this.browser.supportsLinkPrefetch()||this.browser.isDataSaverModeOn()||this.browser.isSlowConnection()||(this.regex={excludeUris:RegExp(this.config.excludeUris,"i"),images:RegExp(".("+this.config.imageExt+")$","i"),fileExt:RegExp(".("+this.config.fileExt+")$","i")},this._initListeners(this))}},{key:"_initListeners",value:function(e){-1<this.config.onHoverDelay&&document.addEventListener("mouseover",e.listener.bind(e),e.listenerOptions),document.addEventListener("mousedown",e.listener.bind(e),e.listenerOptions),document.addEventListener("touchstart",e.listener.bind(e),e.listenerOptions)}},{key:"listener",value:function(e){var t=e.target.closest("a"),n=this._prepareUrl(t);if(null!==n)switch(e.type){case"mousedown":case"touchstart":this._addPrefetchLink(n);break;case"mouseover":this._earlyPrefetch(t,n,"mouseout")}}},{key:"_earlyPrefetch",value:function(t,e,n){var i=this,r=setTimeout(function(){if(r=null,0===i.numOnHover)setTimeout(function(){return i.numOnHover=0},1e3);else if(i.numOnHover>i.config.rateThrottle)return;i.numOnHover++,i._addPrefetchLink(e)},this.config.onHoverDelay);t.addEventListener(n,function e(){t.removeEventListener(n,e,{passive:!0}),null!==r&&(clearTimeout(r),r=null)},{passive:!0})}},{key:"_addPrefetchLink",value:function(i){return this.prefetched.add(i.href),new Promise(function(e,t){var n=document.createElement("link");n.rel="prefetch",n.href=i.href,n.onload=e,n.onerror=t,document.head.appendChild(n)}).catch(function(){})}},{key:"_prepareUrl",value:function(e){if(null===e||"object"!==(void 0===e?"undefined":r(e))||!1 in e||-1===["http:","https:"].indexOf(e.protocol))return null;var t=e.href.substring(0,this.config.siteUrl.length),n=this._getPathname(e.href,t),i={original:e.href,protocol:e.protocol,origin:t,pathname:n,href:t+n};return this._isLinkOk(i)?i:null}},{key:"_getPathname",value:function(e,t){var n=t?e.substring(this.config.siteUrl.length):e;return n.startsWith("/")||(n="/"+n),this._shouldAddTrailingSlash(n)?n+"/":n}},{key:"_shouldAddTrailingSlash",value:function(e){return this.config.usesTrailingSlash&&!e.endsWith("/")&&!this.regex.fileExt.test(e)}},{key:"_isLinkOk",value:function(e){return null!==e&&"object"===(void 0===e?"undefined":r(e))&&(!this.prefetched.has(e.href)&&e.origin===this.config.siteUrl&&-1===e.href.indexOf("?")&&-1===e.href.indexOf("#")&&!this.regex.excludeUris.test(e.href)&&!this.regex.images.test(e.href))}}],[{key:"run",value:function(){"undefined"!=typeof RocketPreloadLinksConfig&&new n(new RocketBrowserCompatibilityChecker({capture:!0,passive:!0}),RocketPreloadLinksConfig).init()}}]),n}();t.run(); }()); /* ]]> */ </script> <script type="text/javascript" src="https://cmake.org/wp-content/themes/kitwarean-lite/_resources/js/jquery-3.6.0.min.js" id="jquery-script-js"></script> <script type="text/javascript" src="https://cmake.org/wp-content/themes/kitwarean-lite/_resources/js/fancybox.4.0.29.min.js" id="fancybox-script-js"></script> <script type="text/javascript" src="https://cmake.org/wp-content/themes/kitwarean-lite/_resources/js/scripts.min.js" id="kitwarean-scripts-js"></script> <script type="text/javascript" id="gforms_recaptcha_recaptcha-js-extra"> /* <![CDATA[ */ var gforms_recaptcha_recaptcha_strings = {"site_key":"6LeN1p8qAAAAALb3pZmcQ5NN7Yq4CQhI7QrdHaRm","ajaxurl":"https:\/\/cmake.org\/wp-admin\/admin-ajax.php","nonce":"7b8134ecd4"}; /* ]]> */ </script> <script type="text/javascript" src="https://www.google.com/recaptcha/api.js?render=6LeN1p8qAAAAALb3pZmcQ5NN7Yq4CQhI7QrdHaRm&ver=1.6.0" id="gforms_recaptcha_recaptcha-js"></script> </body> </html> <!-- This website is like a Rocket, isn't it? Performance optimized by WP Rocket. Learn more: https://wp-rocket.me - Debug: cached@1743908569 -->