]> granicus.if.org Git - esp-idf/commitdiff
cmake: Add sdkconfig.h directory to include paths list not just compiler args
authorAngus Gratton <angus@espressif.com>
Tue, 8 May 2018 07:33:21 +0000 (15:33 +0800)
committerAngus Gratton <gus@projectgus.com>
Tue, 29 May 2018 06:34:45 +0000 (16:34 +1000)
Also move into 'build/config/' subdir, remove creation of empty include/config dir.

components/esp32/CMakeLists.txt
docs/en/api-guides/build-system.rst
tools/cmake/idf_functions.cmake
tools/cmake/kconfig.cmake

index 2c4fc74298082fb3076d221e82547bc5a2a23df2..3a514d9905b11932125446818108d18834a43d55 100644 (file)
@@ -65,8 +65,8 @@ else()
     set(LD_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ld)
     add_custom_command(
         OUTPUT esp32_out.ld
-        COMMAND "${CMAKE_C_COMPILER}" -C -P -x c -E -o esp32_out.ld -I ${CMAKE_BINARY_DIR} ${LD_DIR}/esp32.ld
-        MAIN_DEPENDENCY ${LD_DIR}/esp32.ld
+        COMMAND "${CMAKE_C_COMPILER}" -C -P -x c -E -o esp32_out.ld -I ${CONFIG_DIR} ${LD_DIR}/esp32.ld
+        MAIN_DEPENDENCY ${LD_DIR}/esp32.ld ${SDKCONFIG_H}
         COMMENT "Generating linker script..."
         VERBATIM)
     add_custom_target(esp32_linker_script DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/esp32_out.ld)
index 2135ca0a2af7b68a1fcb550cce1b4d6493d571e7..d63c54c2e9dc04cce6ad161dff28ffeb6f70283e 100644 (file)
@@ -825,7 +825,7 @@ For integration into IDEs and other build systems, when cmake runs the build pro
 - ``project_description.json`` contains some general information about the ESP-IDF project, configured paths, etc.
 - ``flasher_args.json`` contains esptool.py arguments to flash the project's binary files. There are also ``flash_*_args`` files which can be used directly with esptool.py. See `Flash arguments`_.
 - ``CMakeCache.txt`` is the CMake cache file which contains other information about the CMake process, toolchain, etc.
-- ``sdkconfig.json`` is a JSON-formatted version of the project configuration values.
+- ``config/sdkconfig.json`` is a JSON-formatted version of the project configuration values.
 
 .. _esp-idf-template: https://github.com/espressif/esp-idf-template
 .. _cmake: https://cmake.org
index 3415f9da295c013611e83e36831d40825a1b67be..bd0aea6e5510e0f5689accb3916d56d35cd21138 100644 (file)
@@ -98,8 +98,6 @@ function(idf_set_global_compiler_options)
     # go into the final binary so have no impact on size)
     add_compile_options(-ggdb)
 
-    add_compile_options("-I${CMAKE_BINARY_DIR}") # for sdkconfig.h
-
     # Enable ccache if it's on the path
     if(NOT CCACHE_DISABLE)
         find_program(CCACHE_FOUND ccache)
index 10894f6ad4601a02f2bfe37ca461ab8457db6f50..f20002e1a5a99a793d7e5e327bd3e4bae1d9af4b 100644 (file)
@@ -1,14 +1,18 @@
 include(ExternalProject)
 
 macro(kconfig_set_variables)
+    set(CONFIG_DIR ${CMAKE_BINARY_DIR}/config)
     set_default(SDKCONFIG ${PROJECT_PATH}/sdkconfig)
-    set(SDKCONFIG_HEADER ${CMAKE_BINARY_DIR}/sdkconfig.h)
-    set(SDKCONFIG_CMAKE ${CMAKE_BINARY_DIR}/sdkconfig.cmake)
-    set(SDKCONFIG_JSON ${CMAKE_BINARY_DIR}/sdkconfig.json)
+    set(SDKCONFIG_HEADER ${CONFIG_DIR}/sdkconfig.h)
+    set(SDKCONFIG_CMAKE ${CONFIG_DIR}/sdkconfig.cmake)
+    set(SDKCONFIG_JSON ${CONFIG_DIR}/sdkconfig.json)
 
     set(ROOT_KCONFIG ${IDF_PATH}/Kconfig)
 
     set_default(SDKCONFIG_DEFAULTS "${SDKCONFIG}.defaults")
+
+    # ensure all source files can include sdkconfig.h
+    include_directories("${CONFIG_DIR}")
 endmacro()
 
 if(CMAKE_HOST_WIN32)
@@ -48,7 +52,7 @@ endif()
 
 # Find all Kconfig files for all components
 function(kconfig_process_config)
-    file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/include/config")
+    file(MAKE_DIRECTORY "${CONFIG_DIR}")
     set(kconfigs)
     set(kconfigs_projbuild)