CINXE.COM

History of CMake

<!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/history/" /> <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>History of CMake</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='Bill Hoffman created CMake in response to the need for a powerful, cross-platform build environment for The Insight Toolkit (ITK) and the Visualization Toolkit (VTK).' /> <meta property='og:title' content='History of CMake' /> <meta property='og:description' content='Bill Hoffman created CMake in response to the need for a powerful, cross-platform build environment for The Insight Toolkit (ITK) and the Visualization Toolkit (VTK).' /> <meta property='og:url' content='https://cmake.org/history/' /> <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-74" 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 current-menu-ancestor current-menu-parent current_page_parent current_page_ancestor 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 current-menu-item page_item page-item-74 current_page_item menu-item-76"><a href="https://cmake.org/history/" aria-current="page">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 &#038; 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/about/' target='' class=''>About </a></li><li><a href='https://cmake.org/history/'>History</a></li></ul></div> <h1>History of CMake</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__content'><p>CMake was created in 2000 in response to the need for a powerful, cross-platform build environment for The <a href="https://itk.org/" rel="noopener" target="_blank">Insight Toolkit (ITK)</a> and the <a href="http://www.vtk.org/" rel="noopener" target="_blank">Visualization Toolkit (VTK)</a>. It has evolved over the last two decades with many improvements and new features. It continues to be supported by a strong user community, including original author and lead architect, BIll Hoffman, and the in-house experts at Kitware.</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">Timeline</h2> <!-- KW-BLOCKS-TIMELINE --> <style>.kwBlocksTimeline{position:relative}.layout .kwBlocksTimeline .layout{padding:0}</style> <section class='kwBlocksTimeline'> <div class="layout"> <article class="cardTimeline"> <div class="cardTimeline__date"> <div class="cardTimeline__hexagons"> <div class="cardTimeline__hex4"></div> <div class="cardTimeline__hex3"></div> <div class="cardTimeline__hex2"></div> <div class="cardTimeline__hex1">2000</div> </div> </div> <div class="cardTimeline__content"> <div class="cardTimeline__box"><p>CMake is created for the National Library of Medicine’s (NLM) <a href="http://www.itk.org" target="_blank" rel="noopener">Insight Toolkit Project</a></p> <ul> <li>NLM put Kitware on a team of three commercial companies and three universities to create an open source C++ toolkit for segmentation and registration of medical data. Kitware was awarded this because of the success of <a href="https://vtk.org/" target="_blank" rel="noopener">VTK</a>.</li> <li>The contract allowed for innovation, only specifying that the C++ toolkit had to be portable to Unix, Windows, and Mac. After a decade of using autotools and gmake at GE Research, Bill Hoffman felt that a new tool for building C++ was needed. The tool had some basic rules: <ul> <li>Support native build tools like the Visual Studio IDE</li> <li>One input file to build on all supported platforms</li> <li>Depend only on a C++ compiler so that it is easy to port and bootstrap on new systems</li> <li>Support for code generators so tools can be used to wrap C++ into other languages.</li> </ul> </li> </ul> </div> </div> </article> <article class="cardTimeline"> <div class="cardTimeline__date"> <div class="cardTimeline__hexagons"> <div class="cardTimeline__hex4"></div> <div class="cardTimeline__hex3"></div> <div class="cardTimeline__hex2"></div> <div class="cardTimeline__hex1">2002</div> </div> </div> <div class="cardTimeline__content"> <div class="cardTimeline__box"><p>After successfully using CMake for ITK, CMake went on to replace the build system in VTK and <a href="https://paraview.org/" target="_blank" rel="noopener">ParaView</a>.</p> <ul> <li>The adoption of CMake by VTK and ParaView brought in collaborators and funding streams from national labs, including Los Alamos, Sandia, and Livermore.</li> </ul> </div> </div> </article> <article class="cardTimeline"> <div class="cardTimeline__date"> <div class="cardTimeline__hexagons"> <div class="cardTimeline__hex4"></div> <div class="cardTimeline__hex3"></div> <div class="cardTimeline__hex2"></div> <div class="cardTimeline__hex1">2003</div> </div> </div> <div class="cardTimeline__content"> <div class="cardTimeline__box"><p><a href="https://www.amazon.com/Mastering-CMake-Ken-Martin/dp/1930934319/ref=as_sl_pc_tf_til?tag=kitinc-20&amp;linkCode=w00&amp;linkId=Y6TGYCDQX32HMXQS&amp;creativeASIN=1930934319" target="_blank" rel="noopener">Mastering CMake: A Cross-Platform Build System</a> was written by Ken Martin and Bill Hoffman (the book is <a href="https://github.com/Akagi201/learning-cmake/blob/master/docs/mastering-cmake.pdf" target="_blank" rel="noopener">now available open source</a>); CMake is featured in <a href="https://ftp.math.utah.edu/pub/tex/bib/toc/dr-dobbs-2000.html#28(1):January:2003" target="_blank" rel="noopener">Dr. Dobb’s Journal of Software Tools</a> and <a href="https://www.linuxjournal.com/article/6700" target="_blank" rel="noopener">Linux Journal</a>.</p> </div> </div> </article> <article class="cardTimeline"> <div class="cardTimeline__date"> <div class="cardTimeline__hexagons"> <div class="cardTimeline__hex4"></div> <div class="cardTimeline__hex3"></div> <div class="cardTimeline__hex2"></div> <div class="cardTimeline__hex1">2004</div> </div> </div> <div class="cardTimeline__content"> <div class="cardTimeline__box"><p>CMake received substantial development funding from The National Alliance for Medical Image Computing (NA-MIC).</p> <ul> <li>Slowly, CMake started to be adopted by other open source projects.</li> </ul> </div> </div> </article> <article class="cardTimeline"> <div class="cardTimeline__date"> <div class="cardTimeline__hexagons"> <div class="cardTimeline__hex4"></div> <div class="cardTimeline__hex3"></div> <div class="cardTimeline__hex2"></div> <div class="cardTimeline__hex1">2006</div> </div> </div> <div class="cardTimeline__content"> <div class="cardTimeline__box"><p><a href="https://lwn.net/Articles/188693/" target="_blank" rel="noopener">KDE switches to CMake</a></p> <ul> <li>KDE developer Alexander Neundorf was the champion that helped KDE adopt CMake.</li> <li>Kitware worked hard to create a prototype build system in a few short weeks.</li> <li>CMake was able to quickly build more of KDE than the scons system they were using previously.</li> <li>KDE was able to port applications to Windows and Apple very quickly with CMake.</li> <li>CMake got new features, including shared library versioning and installation rpath re-writes without relinking.</li> <li>CMake was distributed by all major linux distributions to support KDE.</li> </ul> <p><img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-925" src="https://cmake.org/wp-content/uploads/2023/08/image1.png" alt="" width="1433" height="766" /></p> </div> </div> </article> <article class="cardTimeline"> <div class="cardTimeline__date"> <div class="cardTimeline__hexagons"> <div class="cardTimeline__hex4"></div> <div class="cardTimeline__hex3"></div> <div class="cardTimeline__hex2"></div> <div class="cardTimeline__hex1">2007</div> </div> </div> <div class="cardTimeline__content"> <div class="cardTimeline__box"><p><a href="https://doi.org/10.1109/MS.2007.5" target="_blank" rel="noopener">An Open Source Approach to Developing Software in a Small Organization</a>, written by Ken Martin and Bill Hoffman, was published in the IEEE Software Journal</p> </div> </div> </article> <article class="cardTimeline"> <div class="cardTimeline__date"> <div class="cardTimeline__hexagons"> <div class="cardTimeline__hex4"></div> <div class="cardTimeline__hex3"></div> <div class="cardTimeline__hex2"></div> <div class="cardTimeline__hex1">2008</div> </div> </div> <div class="cardTimeline__content"> <div class="cardTimeline__box"><p>First CMakeLists.txt for the LLVM Compiler</p> </div> </div> </article> <article class="cardTimeline"> <div class="cardTimeline__date"> <div class="cardTimeline__hexagons"> <div class="cardTimeline__hex4"></div> <div class="cardTimeline__hex3"></div> <div class="cardTimeline__hex2"></div> <div class="cardTimeline__hex1">2009</div> </div> </div> <div class="cardTimeline__content"> <div class="cardTimeline__box"><p>ExternalProject is added to CMake ARL funded </p> </div> </div> </article> <article class="cardTimeline"> <div class="cardTimeline__date"> <div class="cardTimeline__hexagons"> <div class="cardTimeline__hex4"></div> <div class="cardTimeline__hex3"></div> <div class="cardTimeline__hex2"></div> <div class="cardTimeline__hex1">2011</div> </div> </div> <div class="cardTimeline__content"> <div class="cardTimeline__box"><p>ninja generator is added to CMake</p> </div> </div> </article> <article class="cardTimeline"> <div class="cardTimeline__date"> <div class="cardTimeline__hexagons"> <div class="cardTimeline__hex4"></div> <div class="cardTimeline__hex3"></div> <div class="cardTimeline__hex2"></div> <div class="cardTimeline__hex1">2012</div> </div> </div> <div class="cardTimeline__content"> <div class="cardTimeline__box"><p><a href="https://steveire.wordpress.com/2017/11/05/embracing-modern-cmake/" target="_blank" rel="noopener">Modern CMake</a> is written by Stephen Kelly</p> <ul> <li>Comprehensive usage requirements, started by Stephen Kelly&#8217;s Modern CMake, allowed projects to package up &#8220;how to use me&#8221; in a nice way (cf. VTK&#8217;s build system rewrite to use them &#8220;everywhere&#8221; in 2019).</li> </ul> </div> </div> </article> <article class="cardTimeline"> <div class="cardTimeline__date"> <div class="cardTimeline__hexagons"> <div class="cardTimeline__hex4"></div> <div class="cardTimeline__hex3"></div> <div class="cardTimeline__hex2"></div> <div class="cardTimeline__hex1">2016</div> </div> </div> <div class="cardTimeline__content"> <div class="cardTimeline__box"><p>LLVM switches to CMake, removing autoconf</p> </div> </div> </article> <article class="cardTimeline"> <div class="cardTimeline__date"> <div class="cardTimeline__hexagons"> <div class="cardTimeline__hex4"></div> <div class="cardTimeline__hex3"></div> <div class="cardTimeline__hex2"></div> <div class="cardTimeline__hex1">2017</div> </div> </div> <div class="cardTimeline__content"> <div class="cardTimeline__box"><p>Microsoft Visual Studio introduces <a href="https://devblogs.microsoft.com/cppblog/cmake-support-in-visual-studio/" target="_blank" rel="noopener">integrated support</a> for CMake projects</p> </div> </div> </article> <article class="cardTimeline"> <div class="cardTimeline__date"> <div class="cardTimeline__hexagons"> <div class="cardTimeline__hex4"></div> <div class="cardTimeline__hex3"></div> <div class="cardTimeline__hex2"></div> <div class="cardTimeline__hex1">2018</div> </div> </div> <div class="cardTimeline__content"> <div class="cardTimeline__box"><p>Professional CMake: A Practical Guide is written by Craig Scott</p> </div> </div> </article> <article class="cardTimeline"> <div class="cardTimeline__date"> <div class="cardTimeline__hexagons"> <div class="cardTimeline__hex4"></div> <div class="cardTimeline__hex3"></div> <div class="cardTimeline__hex2"></div> <div class="cardTimeline__hex1">2019</div> </div> </div> <div class="cardTimeline__content"> <div class="cardTimeline__box"><p><a href="https://www.qt.io/blog/qt-and-cmake-the-past-the-present-and-the-future" target="_blank" rel="noopener">The Qt Group switches to CMake</a></p> </div> </div> </article> <article class="cardTimeline"> <div class="cardTimeline__date"> <div class="cardTimeline__hexagons"> <div class="cardTimeline__hex4"></div> <div class="cardTimeline__hex3"></div> <div class="cardTimeline__hex2"></div> <div class="cardTimeline__hex1">2020</div> </div> </div> <div class="cardTimeline__content"> <div class="cardTimeline__box"><p><a href="https://www.kitware.com/minecraft-cmake-collaboration/">CMake Presets are incorporated</a> into Microsoft Visual Studio; <a href="https://www.kitware.com/multi-config-ninja-generator-in-cmake-3-17/">ninja multi config is added to CMake</a>; Ongoing project begins to add C++ 20 Modules to CMake with support for Bloomberg</p> </div> </div> </article> <article class="cardTimeline"> <div class="cardTimeline__date"> <div class="cardTimeline__hexagons"> <div class="cardTimeline__hex4"></div> <div class="cardTimeline__hex3"></div> <div class="cardTimeline__hex2"></div> <div class="cardTimeline__hex1">2022</div> </div> </div> <div class="cardTimeline__content"> <div class="cardTimeline__box"><p>CMake is called the standard build system by Bryce Adelstein Lelbach during his C++Now conference talk “What Belongs In The C++ Standard Library?”</p> <ul> <li>Bryce also served as the chair of the Standard C++ Library Evolution group. His talk stated that we actually have a standard build system! It’s CMake.</li> </ul> </div> </div> </article> <article class="cardTimeline"> <div class="cardTimeline__date"> <div class="cardTimeline__hexagons"> <div class="cardTimeline__hex4"></div> <div class="cardTimeline__hex3"></div> <div class="cardTimeline__hex2"></div> <div class="cardTimeline__hex1">2023</div> </div> </div> <div class="cardTimeline__content"> <div class="cardTimeline__box"><p>CMake drives the standards format for compilers to describe C++20 module dependency information. p1689 has been implemented by Visual Studio, Clang, and GCC, and is used by CMake to support the building of C++ 20 modules. </p> </div> </div> </article> </div> </section> <!-- /KW-BLOCKS-TIMELINE --> </div> <div class="pageSidebar__sidebar"> <div class="pageSidebar__slide"> <div class="cardSidebar "> <ul> <li> <a href='https://cmake.org/about/' target='' class='heading' > About </a> </li> <li> <a href='https://cmake.org/features/' target='' class='bullet' > Features </a> </li> <li> <a href='https://cmake.org/history/' target='' class='bullet' > History </a> </li> </ul> </div> <div class="cardSidebar cardSidebar__primary"> <div class='cardSidebar__content'> <h2>A CMake Built for You</h2> <p>Kitware can work with you to develop a CMake software build system that is tailored to your requirements.</p> </div> <div class='cardSidebar__link'><a href='https://cmake.org/contact-us/' class='btn btn-primary btn-sm' target=''>Contact Us</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":"731f721140"}; /* ]]> */ </script> <script type="text/javascript" src="https://www.google.com/recaptcha/api.js?render=6LeN1p8qAAAAALb3pZmcQ5NN7Yq4CQhI7QrdHaRm&amp;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@1743987794 -->

Pages: 1 2 3 4 5 6 7 8 9 10