cmake_minimum_required(VERSION 3.21.3 FATAL_ERROR)

project(dataset_utils LANGUAGES CXX)

include(CPM.cmake)

execute_process(COMMAND python3 -c "from sc2_serializer import INCLUDE_DIRECTORY; print(INCLUDE_DIRECTORY)"
                OUTPUT_VARIABLE SC2_INCLUDE_DIRECTORY)
string(STRIP ${SC2_INCLUDE_DIRECTORY} SC2_INCLUDE_DIRECTORY)

cpmaddpackage(
  NAME
  pybind11
  GITHUB_REPOSITORY
  pybind/pybind11
  VERSION
  2.12.0)

cpmaddpackage(
  NAME
  boost_pfr
  GITHUB_REPOSITORY
  boostorg/pfr
  GIT_TAG
  2.2.0)

cpmaddpackage(
  GITHUB_REPOSITORY
  gabime/spdlog
  VERSION
  1.12.0
  OPTIONS
  "SPDLOG_BUILD_PIC ON")

set(WARNING_OPTIONS
    -Wall
    -Wfatal-errors
    -Wextra
    -Wshadow
    -Wcast-align
    -Wpedantic
    -Wconversion
    -Wsign-conversion
    -Wnull-dereference
    -Wdouble-promotion)

pybind11_add_module(dataset_utils utilities.cpp)
target_compile_features(dataset_utils PUBLIC cxx_std_23)
target_link_libraries(dataset_utils PUBLIC Boost::pfr spdlog::spdlog)
target_include_directories(dataset_utils PUBLIC ${SC2_INCLUDE_DIRECTORY})
target_compile_options(
  dataset_utils
  PUBLIC ${WARNING_OPTIONS}
         $<$<CONFIG:Debug>:-O0;-g;>
         $<$<CONFIG:Release>:-O3;-march=native;>
         $<$<CONFIG:RelWithDebInfo>:-O3;-march=native;-g;>)
