| option(PICO_DEOPTIMIZED_DEBUG "Build debug builds with -O0" 0) |
| option(PICO_DEBUG_INFO_IN_RELEASE "Include debug info in release builds" 1) |
| |
| get_property(IS_IN_TRY_COMPILE GLOBAL PROPERTY IN_TRY_COMPILE) |
| foreach(LANG IN ITEMS C CXX ASM) |
| set(CMAKE_${LANG}_FLAGS_INIT "${PICO_COMMON_LANG_FLAGS}") |
| unset(CMAKE_${LANG}_FLAGS_DEBUG CACHE) |
| if (PICO_DEOPTIMIZED_DEBUG) |
| set(CMAKE_${LANG}_FLAGS_DEBUG_INIT "-O0") |
| else() |
| set(CMAKE_${LANG}_FLAGS_DEBUG_INIT "-Og") |
| endif() |
| if (PICO_DEBUG_INFO_IN_RELEASE) |
| set(CMAKE_${LANG}_FLAGS_RELEASE_INIT "-g") |
| set(CMAKE_${LANG}_FLAGS_MINSIZEREL_INIT "-g") |
| endif() |
| set(CMAKE_${LANG}_LINK_FLAGS "-Wl,--build-id=none") |
| |
| # try_compile is where the feature testing is done, and at that point, |
| # pico_standard_link is not ready to be linked in to provide essential |
| # functions like _exit. So pass -nostdlib so it doesn't link in an exit() |
| # function at all. |
| if(IS_IN_TRY_COMPILE) |
| set(CMAKE_${LANG}_LINK_FLAGS "${CMAKE_${LANG}_LINK_FLAGS} -nostdlib") |
| endif() |
| endforeach() |