]> granicus.if.org Git - esp-idf/commitdiff
cmake: Automatically include ccache if it's on the path
authorAngus Gratton <angus@espressif.com>
Tue, 27 Feb 2018 02:32:52 +0000 (13:32 +1100)
committerAngus Gratton <gus@projectgus.com>
Sun, 29 Apr 2018 23:59:20 +0000 (09:59 +1000)
docs/en/get-started/linux-setup-cmake.rst
docs/en/get-started/macos-setup-cmake.rst
examples/get-started/blink/CMakeLists.txt [new file with mode: 0644]
tools/cmake/idf_functions.cmake

index 2f54092fec256947b7fe63d835065538feb041c9..2e3bbdbbe10583c24c00fceef5b87761ee5ccef8 100644 (file)
@@ -12,15 +12,15 @@ To compile with ESP-IDF you need to get the following packages:
 
 - CentOS 7::
 
-    sudo yum install git wget ncurses-devel flex bison gperf python pyserial cmake ninja-build
+    sudo yum install git wget ncurses-devel flex bison gperf python pyserial cmake ninja-build ccache
 
 - Ubuntu and Debian::
 
-    sudo apt-get install git wget libncurses-dev flex bison gperf python python-serial cmake ninja-build
+    sudo apt-get install git wget libncurses-dev flex bison gperf python python-serial cmake ninja-build ccache
 
 - Arch::
 
-    sudo pacman -S --needed gcc git make ncurses flex bison gperf python2-pyserial cmake ninja
+    sudo pacman -S --needed gcc git make ncurses flex bison gperf python2-pyserial cmake ninja ccache
 
 .. note::
     CMake version 3.5 or newer is required for use with ESP-IDF. Older Linux distributions may require updating, or enabling of a "backports" repository, or installing of a "cmake3" package not "cmake")
index 91a6c9dc45b8e806d11a436f6fd9be70c7aa57f6..ce5623a53eb7dd790bbaec81d3ebaf4432b86bac 100644 (file)
@@ -24,6 +24,8 @@ Install Prerequisites
 
   Otherwise, consult the CMake_ and Ninja_ home pages for Mac OS installation.
 
+- It is strongly recommended to also install ccache_ for faster builds. If you have HomeBrew, this can be done via ``brew install ccache``.
+
 Toolchain Setup
 ===============
 
@@ -59,3 +61,4 @@ To carry on with development environment setup, proceed to section :ref:`get-sta
 
 .. _cmake: https://cmake.org/
 .. _ninja: https://ninja-build.org/
+.. _ccache: https://ccache.samba.org/
diff --git a/examples/get-started/blink/CMakeLists.txt b/examples/get-started/blink/CMakeLists.txt
new file mode 100644 (file)
index 0000000..5645092
--- /dev/null
@@ -0,0 +1,8 @@
+# The following five lines of boilerplate have to be in your project's
+# CMakeLists in this exact order for cmake to work correctly
+cmake_minimum_required(VERSION 3.5)
+
+set(MAIN_SRCS main/blink.c)
+
+include($ENV{IDF_PATH}/tools/cmake/project.cmake)
+project(blink)
index 9bea6f7607cdff89c7e72217a7620e1e0e65613c..2cb406e18ff75e399e3365bc9a6c85bf0ae5fdf6 100644 (file)
@@ -86,6 +86,13 @@ function(idf_set_global_compiler_options)
 
   add_compile_options("-I${CMAKE_BINARY_DIR}") # for sdkconfig.h
 
+    # Enable ccache if it's on the path
+    find_program(CCACHE_FOUND ccache)
+    if(CCACHE_FOUND)
+        message(STATUS "ccache will be used")
+        set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
+    endif()
+
 endfunction(idf_set_global_compiler_options)