OrbitalSimulator/CMakeLists.txt
2025-06-01 19:38:37 -04:00

47 lines
1.0 KiB
CMake

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 system)
# 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::system
${Boost_LIBRARIES}
)
# Include directories
target_include_directories(orbital_simulator PRIVATE
${CMAKE_SOURCE_DIR}
${Boost_INCLUDE_DIRS}
)
# 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()