cmake_minimum_required(VERSION 3.12) include($ENV{PICO_SDK_PATH}/external/pico_sdk_import.cmake) set(CMAKE_CXX_FLAGS_DEBUG "-pipe -g -O0 -Wfatal-errors -Wpedantic -Wall -Wextra -Wconversion -Wshadow=local -Wdouble-promotion -Wformat=2 -Wformat-overflow=2 -Wformat-nonliteral -Wformat-security -Wformat-truncation=2 -Wnull-dereference -Wimplicit-fallthrough=3 -Wshift-overflow=2 -Wswitch-default -Wunused-parameter -Wunused-const-variable=2 -Wstrict-overflow=4 -Wstringop-overflow=3 -Wsuggest-attribute=pure -Wsuggest-attribute=const -Wsuggest-attribute=noreturn -Wmissing-noreturn -Wsuggest-attribute=malloc -Wsuggest-attribute=format -Wmissing-format-attribute -Wsuggest-attribute=cold -Walloc-zero -Walloca -Wattribute-alias=2 -Wduplicated-branches -Wcast-qual") set(CMAKE_C_FLAGS_DEBUG "-pipe -g -O0 -Wfatal-errors -Wpedantic -Wall -Wextra -Wconversion -Wshadow=local -Wdouble-promotion -Wformat=2 -Wformat-overflow=2 -Wformat-nonliteral -Wformat-security -Wformat-truncation=2 -Wnull-dereference -Wimplicit-fallthrough=3 -Wshift-overflow=2 -Wswitch-default -Wunused-parameter -Wunused-const-variable=2 -Wstrict-overflow=4 -Wstringop-overflow=3 -Wsuggest-attribute=pure -Wsuggest-attribute=const -Wsuggest-attribute=noreturn -Wmissing-noreturn -Wsuggest-attribute=malloc -Wsuggest-attribute=format -Wmissing-format-attribute -Wsuggest-attribute=cold -Walloc-zero -Walloca -Wattribute-alias=2 -Wduplicated-branches -Wcast-qual") project(pico-calc C CXX ASM) set(CMAKE_CXX_FLAGS_RELEASE "-pipe -Os -fno-builtin") set(CMAKE_C_FLAGS_RELEASE "-pipe -Os -fno-builtin") pico_sdk_init() # Dependencies add_library(lcd-i2c ./libs/Pico-I2C-LCD/LCD_I2C.cpp ./libs/Pico-I2C-LCD/LCD_I2C.hpp) add_library(keypad ./libs/pico-keypad/src/keypad.cpp ./libs/pico-keypad/src/keypad.hpp) add_executable(pico-calc ./src/pico-calc.cpp) target_include_directories(pico-calc PUBLIC ./libs) # Dependencies compilation target_link_libraries(keypad pico_stdlib hardware_gpio) target_link_libraries(lcd-i2c pico_stdlib hardware_i2c) # Link libraries target_link_libraries(pico-calc keypad lcd-i2c)