cmake_minimum_required(VERSION 3.10) project(orbital_simulator) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) # Find required packages find_package(Boost REQUIRED COMPONENTS program_options) find_package(nlohmann_json REQUIRED) # Add source files set(SOURCES src/main.cpp src/body.cpp src/calc.cpp src/simulator.cpp ) # Add header files set(HEADERS src/body.hpp src/calc.hpp src/simulator.hpp src/units.hpp ) # Create executable add_executable(orbital_simulator ${SOURCES} ${HEADERS}) # Link libraries target_link_libraries(orbital_simulator PRIVATE Boost::program_options nlohmann_json::nlohmann_json ) # Include directories target_include_directories(orbital_simulator PRIVATE ${CMAKE_SOURCE_DIR}/src ) # Optional: Enable ncurses for terminal plotting option(ENABLE_NCURSES "Enable terminal plotting with ncurses" OFF) if(ENABLE_NCURSES) find_package(Curses REQUIRED) target_compile_definitions(orbital_simulator PRIVATE NCURSES_ENABLED) target_link_libraries(orbital_simulator PRIVATE ${CURSES_LIBRARIES}) endif()