Files
p-rad/CMakeLists.txt
T
2026-08-05 10:34:14 +02:00

59 lines
1.7 KiB
CMake

cmake_minimum_required(VERSION 3.13)
option(BUILD_FOR_PICO "Build for Raspberry Pi Pico" ON)
set(GEOGRAPHICLIB_DIR ${CMAKE_CURRENT_SOURCE_DIR}/geographiclib)
# Configure GeographicLib before adding it, to skip docs/tools/tests
set(GEOGRAPHICLIB_LIB_TYPE "STATIC" CACHE STRING "" FORCE)
set(BUILD_DOCUMENTATION OFF CACHE BOOL "" FORCE)
set(BUILD_BOTH_LIBRARIES OFF CACHE BOOL "" FORCE)
set(PACKAGE_DEBIAN OFF CACHE BOOL "" FORCE)
if(BUILD_FOR_PICO)
set(PICO_BOARD pico_w CACHE STRING "Board type")
include(pico_sdk_import.cmake)
project(p-rad C CXX ASM)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
pico_sdk_init()
add_subdirectory(${GEOGRAPHICLIB_DIR} EXCLUDE_FROM_ALL)
target_compile_options(GeographicLib PUBLIC -fexceptions -frtti)
add_executable(p-rad
src/main.cpp
src/core/logic.cpp
src/hal/hal_pico.cpp
)
target_compile_definitions(p-rad PRIVATE PICO_BUILD)
target_include_directories(p-rad PRIVATE src)
target_link_libraries(p-rad pico_stdlib pico_cyw43_arch_lwip_threadsafe_background hardware_rtc GeographicLib)
pico_enable_stdio_usb(p-rad 1)
pico_enable_stdio_uart(p-rad 0)
pico_add_extra_outputs(p-rad)
else()
project(p-rad CXX)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
add_subdirectory(${GEOGRAPHICLIB_DIR} EXCLUDE_FROM_ALL)
add_executable(p-rad
src/main.cpp
src/core/logic.cpp
src/hal/hal_linux.cpp
)
target_include_directories(p-rad PRIVATE src)
find_package(Threads REQUIRED)
find_package(SDL3 REQUIRED CONFIG)
find_package(CURL REQUIRED)
target_link_libraries(p-rad Threads::Threads SDL3::SDL3 CURL::libcurl GeographicLib)
endif()