1if (NOT TARGET pico_cxx_options) 2 pico_add_library(pico_cxx_options) 3 4 target_sources(pico_cxx_options INTERFACE 5 ${CMAKE_CURRENT_LIST_DIR}/new_delete.cpp 6 ) 7 8 # PICO_CMAKE_CONFIG: PICO_CXX_ENABLE_EXCEPTIONS, Enable CXX exception handling, type=bool, default=0, group=pico_cxx_options 9 # PICO_BUILD_DEFINE: PICO_CXX_ENABLE_EXCEPTIONS, value of CMake var PICO_CXX_ENABLE_EXCEPTIONS, type=string, default=0, group=pico_cxx_options 10 if (NOT PICO_CXX_ENABLE_EXCEPTIONS) 11 target_compile_definitions( pico_cxx_options INTERFACE PICO_CXX_ENABLE_EXCEPTIONS=0) 12 target_compile_options( pico_cxx_options INTERFACE $<$<COMPILE_LANGUAGE:CXX>:-fno-exceptions>) 13 target_compile_options( pico_cxx_options INTERFACE $<$<COMPILE_LANGUAGE:CXX>:-fno-unwind-tables>) 14 else() 15 target_compile_definitions( pico_cxx_options INTERFACE PICO_CXX_ENABLE_EXCEPTIONS=1) 16 endif() 17 18 # PICO_CMAKE_CONFIG: PICO_CXX_ENABLE_RTTI, Enable CXX rtti, type=bool, default=0, group=pico_cxx_options 19 if (NOT PICO_CXX_ENABLE_RTTI) 20 target_compile_options( pico_cxx_options INTERFACE $<$<COMPILE_LANGUAGE:CXX>:-fno-rtti>) 21 endif() 22 23 # PICO_CMAKE_CONFIG: PICO_CXX_ENABLE_CXA_ATEXIT, Enable cxa-atexit, type=bool, default=0, group=pico_cxx_options 24 if (NOT PICO_CXX_ENABLE_CXA_ATEXIT) 25 target_compile_options( pico_cxx_options INTERFACE $<$<COMPILE_LANGUAGE:CXX>:-fno-use-cxa-atexit>) 26 endif() 27endif() 28