2019-02-22 01:20:11 +00:00
|
|
|
if(CONFIG_SPIRAM_CACHE_WORKAROUND)
|
|
|
|
# We do this here as well as in CMakeLists.txt, because targets that
|
|
|
|
# are not part of the ESP-IDF build system (for cases where a generic
|
|
|
|
# non-IDF CMakeLists.txt file is imported into a component) don't depend
|
|
|
|
# on the esp32 component so don't get the extra flag. This handles that case.
|
2019-05-10 02:53:08 +00:00
|
|
|
idf_build_set_property(COMPILE_OPTIONS "-mfix-esp32-psram-cache-issue" APPEND)
|
2019-12-18 06:36:58 +00:00
|
|
|
# note that we don't need to set link options as the library linked is independent of this
|
|
|
|
if(CONFIG_SPIRAM_CACHE_WORKAROUND_STRATEGY_DUPLDST)
|
|
|
|
idf_build_set_property(COMPILE_OPTIONS "-mfix-esp32-psram-cache-strategy=dupldst" APPEND)
|
|
|
|
endif()
|
|
|
|
if(CONFIG_SPIRAM_CACHE_WORKAROUND_STRATEGY_MEMW)
|
|
|
|
idf_build_set_property(COMPILE_OPTIONS "-mfix-esp32-psram-cache-strategy=memw" APPEND)
|
|
|
|
endif()
|
|
|
|
if(CONFIG_SPIRAM_CACHE_WORKAROUND_STRATEGY_NOPS)
|
|
|
|
idf_build_set_property(COMPILE_OPTIONS "-mfix-esp32-psram-cache-strategy=nops" APPEND)
|
|
|
|
endif()
|
2019-02-22 01:20:11 +00:00
|
|
|
endif()
|
|
|
|
|
2019-05-10 02:53:08 +00:00
|
|
|
# Check toolchain is configured properly in cmake
|
|
|
|
if(NOT ( ${CMAKE_SYSTEM_NAME} STREQUAL "Generic" AND ${CMAKE_C_COMPILER} MATCHES xtensa))
|
|
|
|
message(FATAL_ERROR "Internal error, toolchain has not been set correctly by project "
|
|
|
|
"(or an invalid CMakeCache.txt file has been generated somehow)")
|
|
|
|
endif()
|
|
|
|
|
|
|
|
#
|
|
|
|
# Warn if the toolchain version doesn't match
|
|
|
|
#
|
|
|
|
# TODO: make these platform-specific for diff toolchains
|
|
|
|
get_expected_ctng_version(expected_toolchain expected_gcc)
|
|
|
|
gcc_version_check("${expected_gcc}")
|
|
|
|
crosstool_version_check("${expected_toolchain}")
|