{"id":22175,"date":"2018-10-03T06:41:14","date_gmt":"2018-10-03T05:41:14","guid":{"rendered":"https:\/\/sysprogs.com\/w\/?p=22175"},"modified":"2020-04-21T19:29:06","modified_gmt":"2020-04-21T18:29:06","slug":"introducing-cmake-support-for-esp-idf-projects","status":"publish","type":"post","link":"https:\/\/sysprogs.com\/w\/introducing-cmake-support-for-esp-idf-projects\/","title":{"rendered":"Introducing CMake support for ESP-IDF Projects"},"content":{"rendered":"<p>Today we are proud to release VisualGDB 5.4 Preview 6 introducing support to the new CMake-based version of the Espressif&#8217;s ESP-IDF framework and out-of-the-box compatibility with the MSYS2-based toolchain. The CMake-based ESP-IDF projects, powered by the Ninja build system, build much faster than the regular Make-based projects and offer a higher degree of customization in the Solution Explorer:<a href=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/idf.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-22176\" src=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/idf.png\" alt=\"idf\" width=\"1201\" height=\"707\" srcset=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/idf.png 1201w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/idf-300x177.png 300w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/idf-768x452.png 768w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/idf-1024x603.png 1024w\" sizes=\"(max-width: 1201px) 100vw, 1201px\" \/><\/a><\/p>\n<p><!--more--><\/p>\n<h2>Build Speed<\/h2>\n<p>VisualGDB supports advanced ESP-IDF projects since early preview builds of v5.4. Compared to the traditional MSBuild-based projects, the advanced ESP-IDF projects allow using unmodified versions of the ESP-IDF framework and are fully integrated with the sophisticated ESP-IDF configuration system. As a side effect, this project type also inherited relatively slow build speed limited by the GNU Make tool that has been around for over 40 years. The new CMake-based ESP-IDF project type solves exactly this problem &#8211; instead of the slow GNU Make, it builds projects with Ninja &#8211; a modern build tool heavily optimized for performance. It gets even better &#8211; both tools do not rely on the Cygwin environment that trades in performance for better compatibility. As a result, the new CMake-based ESP-IDF projects build 2x-3x faster than the older Make-based type.<\/p>\n<h2>Easy Configuration<\/h2>\n<p>Although the new ESP-IDF is based on CMake, it utilizes its own system of macros and variables to control various properties of the project components. VisualGDB takes it into account and offers a convenient Property Sheet-based GUI for changing the common properties:<a href=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/props.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-22177\" src=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/props.png\" alt=\"props\" width=\"838\" height=\"581\" srcset=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/props.png 838w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/props-300x208.png 300w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/props-768x532.png 768w\" sizes=\"(max-width: 838px) 100vw, 838px\" \/><\/a><\/p>\n<p>The properties will be automatically translated to ESP-IDF-specific constructs like COMPONENT_ADD_INCLUDEDIRS, so you won&#8217;t need to memorize their syntax. The CMake-based ESP-IDF project subsystem also includes the convenient graphical editor for various ESP-IDF properties, so you can quickly find the relevant settings without going through several layers of &#8220;make menuconfig&#8221;: <a href=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/cfggui.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-22178\" src=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/cfggui.png\" alt=\"cfggui\" width=\"1068\" height=\"690\" srcset=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/cfggui.png 1068w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/cfggui-300x194.png 300w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/cfggui-768x496.png 768w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/cfggui-1024x662.png 1024w\" sizes=\"(max-width: 1068px) 100vw, 1068px\" \/><\/a><\/p>\n<h2>Other CMake improvements<\/h2>\n<p>This release also introduces a few usability improvements to all Advanced CMake projects. We added support for better sorting, grouping and reordering of source files in Solution Explorer and if your project relies on resources stored in separate files, you can now pin the resource folder in Solution Explorer to conveniently navigate its contents:<a href=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/rsrc.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-22179\" src=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/rsrc.png\" alt=\"rsrc\" width=\"620\" height=\"222\" srcset=\"https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/rsrc.png 620w, https:\/\/sysprogs.com\/w\/wp-content\/uploads\/2018\/10\/rsrc-300x107.png 300w\" sizes=\"(max-width: 620px) 100vw, 620px\" \/><\/a><\/p>\n<h2>Try it out<\/h2>\n<p>You can download VisualGDB 5.4 Preview 6 on the\u00a0<a href=\"http:\/\/visualgdb.com\/download\/\">download page<\/a>. Don&#8217;t forget to install the latest ESP32 toolchain via the VisualGDB Package Manager.<br \/>\nIf you have any feedback, don\u2019t hesitate to use our\u00a0<a href=\"https:\/\/sysprogs.com\/support\/\">support form<\/a>\u00a0or the\u00a0<a href=\"https:\/\/sysprogs.com\/w\/forums\/forum\/visualgdb\/\">VisualGDB forum<\/a>.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today we are proud to release VisualGDB 5.4 Preview 6 introducing support to the new CMake-based version of the Espressif&#8217;s ESP-IDF framework and out-of-the-box compatibility with the MSYS2-based toolchain. The CMake-based ESP-IDF projects, powered by the Ninja build system, build much faster than the regular Make-based projects and offer a higher degree of customization in &hellip; <a href=\"https:\/\/sysprogs.com\/w\/introducing-cmake-support-for-esp-idf-projects\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Introducing CMake support for ESP-IDF Projects<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/sysprogs.com\/w\/wp-json\/wp\/v2\/posts\/22175"}],"collection":[{"href":"https:\/\/sysprogs.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sysprogs.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sysprogs.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sysprogs.com\/w\/wp-json\/wp\/v2\/comments?post=22175"}],"version-history":[{"count":3,"href":"https:\/\/sysprogs.com\/w\/wp-json\/wp\/v2\/posts\/22175\/revisions"}],"predecessor-version":[{"id":22186,"href":"https:\/\/sysprogs.com\/w\/wp-json\/wp\/v2\/posts\/22175\/revisions\/22186"}],"wp:attachment":[{"href":"https:\/\/sysprogs.com\/w\/wp-json\/wp\/v2\/media?parent=22175"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sysprogs.com\/w\/wp-json\/wp\/v2\/categories?post=22175"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sysprogs.com\/w\/wp-json\/wp\/v2\/tags?post=22175"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}