cmake_minimum_required(VERSION 3.22)
project(recomp_game VERSION 0.1 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# Embed ROM path at compile time
if(NOT DEFINED ROM_PATH)
  set(ROM_PATH "${CMAKE_SOURCE_DIR}/../roms/zt.bin" CACHE PATH "Path to Genesis ROM")
endif()
add_compile_definitions(ROM_PATH="${ROM_PATH}")

# Collect all generated function sources
file(GLOB FUNC_SOURCES "${CMAKE_SOURCE_DIR}/func_*.cpp")
file(GLOB TABLE_SOURCES "${CMAKE_SOURCE_DIR}/func_table.cpp")

add_executable(zt_recomp
  recomp_runtime.cpp
  ${FUNC_SOURCES}
  ${TABLE_SOURCES}
)

target_include_directories(zt_recomp PRIVATE ${CMAKE_SOURCE_DIR})
target_compile_options(zt_recomp PRIVATE -fexceptions)
