Просмотр исходного кода

added floating scan and print support

Also allow combining nano.specs and nosys.specs
Robin Mueller 4 лет назад
Родитель
Сommit
e6cd8c1ee3
1 измененных файлов с 14 добавлено и 8 удалено
  1. 14 8
      cmake/stm32/common.cmake

+ 14 - 8
cmake/stm32/common.cmake

@@ -228,20 +228,26 @@ if(NOT (TARGET STM32::NoSys))
     add_library(STM32::NoSys INTERFACE IMPORTED)
     add_library(STM32::NoSys INTERFACE IMPORTED)
     target_compile_options(STM32::NoSys INTERFACE $<$<C_COMPILER_ID:GNU>:--specs=nosys.specs>)
     target_compile_options(STM32::NoSys INTERFACE $<$<C_COMPILER_ID:GNU>:--specs=nosys.specs>)
     target_link_options(STM32::NoSys INTERFACE $<$<C_COMPILER_ID:GNU>:--specs=nosys.specs>)
     target_link_options(STM32::NoSys INTERFACE $<$<C_COMPILER_ID:GNU>:--specs=nosys.specs>)
-    #This custom property is used to check that specs is not set yet on a target linking to this one
-    set_property(TARGET STM32::NoSys PROPERTY INTERFACE_CUSTOM_GCC_SPECS "NOSYS")
-    set_property(TARGET STM32::NoSys APPEND PROPERTY
-        COMPATIBLE_INTERFACE_STRING CUSTOM_GCC_SPECS)
 endif()
 endif()
 
 
 if(NOT (TARGET STM32::Nano))
 if(NOT (TARGET STM32::Nano))
     add_library(STM32::Nano INTERFACE IMPORTED)
     add_library(STM32::Nano INTERFACE IMPORTED)
     target_compile_options(STM32::Nano INTERFACE $<$<C_COMPILER_ID:GNU>:--specs=nano.specs>)
     target_compile_options(STM32::Nano INTERFACE $<$<C_COMPILER_ID:GNU>:--specs=nano.specs>)
     target_link_options(STM32::Nano INTERFACE $<$<C_COMPILER_ID:GNU>:--specs=nano.specs>)
     target_link_options(STM32::Nano INTERFACE $<$<C_COMPILER_ID:GNU>:--specs=nano.specs>)
-    #This custom property is used to check that specs is not set yet on a target linking to this one
-    set_property(TARGET STM32::Nano PROPERTY INTERFACE_CUSTOM_GCC_SPECS "NANO")
-    set_property(TARGET STM32::Nano APPEND PROPERTY
-        COMPATIBLE_INTERFACE_STRING CUSTOM_GCC_SPECS)
+endif()
+
+if(NOT (TARGET STM32::Nano::FloatPrint))
+    add_library(STM32::Nano::FloatPrint INTERFACE IMPORTED)
+    target_link_options(STM32::Nano::FloatPrint INTERFACE
+        $<$<C_COMPILER_ID:GNU>:-Wl,--undefined,_printf_float>
+    )
+endif()
+
+if(NOT (TARGET STM32::Nano::FloatScan))
+    add_library(STM32::Nano::FloatScan INTERFACE IMPORTED)
+    target_link_options(STM32::Nano::FloatPrint INTERFACE
+        $<$<C_COMPILER_ID:GNU>:-Wl,--undefined,_scanf_float>
+    )
 endif()
 endif()
 
 
 include(stm32/utilities)
 include(stm32/utilities)