cmake_minimum_required(VERSION 3.16)
project(rod_solver_c C)

set(CMAKE_C_STANDARD 99)
set(CMAKE_C_STANDARD_REQUIRED ON)

add_library(rod_solver STATIC
  src/solver_common.c
  src/json_stdin.c
  src/trajectory.c
  src/solver_diagnostic.c
  src/solver.c
  src/solver_fea.c
  src/solver_fourier.c
)
target_include_directories(rod_solver PUBLIC include)

add_executable(solver_main src/main.c)
target_link_libraries(solver_main PRIVATE rod_solver m)

add_executable(solver_fea_main src/main_fea.c)
target_link_libraries(solver_fea_main PRIVATE rod_solver m)

add_executable(test_solver tests/test_solver.c)
target_link_libraries(test_solver PRIVATE rod_solver m)

enable_testing()
add_test(NAME solver_c_tests COMMAND test_solver)
