diff --git a/CMakeLists.txt b/CMakeLists.txt index 5d73a12dd4de454a8ff6dd457fec2c5f4323dc14..ad7425c2dae4a7659c8f9a8d4cb61bbdd1a14154 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,3 +5,16 @@ set(IDF_TARGET esp32s3) include($ENV{IDF_PATH}/tools/cmake/project.cmake) project(flow3r) + +# Make `1.1` literals into single-point precision float instead of double +# precision. Also warn any time something gets promoted to a double. We +# generally don't want doubles, doubles on ESP32 bad. +idf_component_get_property(st3m_lib st3m COMPONENT_LIB) +idf_component_get_property(flow3r_bsp_lib flow3r_bsp COMPONENT_LIB) +if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") + target_compile_options(${st3m_lib} PRIVATE -cl-single-precision-constant -Wdouble-promotion) + target_compile_options(${flow3r_bsp_lib} PRIVATE -cl-single-precision-constant -Wdouble-promotion) +else() + target_compile_options(${st3m_lib} PRIVATE -fsingle-precision-constant -Wdouble-promotion) + target_compile_options(${flow3r_bsp_lib} PRIVATE -fsingle-precision-constant -Wdouble-promotion) +endif()