cmake_minimum_required(VERSION 3.18)
if(APPLE AND NOT DEFINED CMAKE_OSX_DEPLOYMENT_TARGET)
  set(CMAKE_OSX_DEPLOYMENT_TARGET "11.0" CACHE STRING "Minimum macOS version")
endif()
project(lavendersim_native VERSION 0.2.0 LANGUAGES CXX)

add_library(lavendersim SHARED engine/physics.cpp)
target_compile_features(lavendersim PRIVATE cxx_std_17)
set_target_properties(lavendersim PROPERTIES
  OUTPUT_NAME lavendersim
  CXX_EXTENSIONS OFF
  POSITION_INDEPENDENT_CODE ON
)

if(MSVC)
  target_compile_options(lavendersim PRIVATE /O2 /W4 /EHs-c- /GR-)
else()
  target_compile_options(lavendersim PRIVATE
    -O3 -Wall -Wextra -Werror -fno-exceptions -fno-rtti
    -fno-threadsafe-statics -fno-builtin
  )
endif()

install(TARGETS lavendersim
  LIBRARY DESTINATION lavendersim
  RUNTIME DESTINATION lavendersim
  ARCHIVE DESTINATION lavendersim
)
