cmake_minimum_required(VERSION 3.6)

project(SnakeGame CXX)

set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

set(SDLIMAGE_AVIF OFF CACHE BOOL "" FORCE)
set(SDLIMAGE_AVIF_SHARED OFF CACHE BOOL "" FORCE)
set(SDLIMAGE_AVIF_STATIC OFF CACHE BOOL "" FORCE)

set(JNI_DIR "${CMAKE_SOURCE_DIR}/android-project/app/jni")
add_subdirectory("${JNI_DIR}")

set(SourcesDir "${JNI_DIR}/src")
include("${JNI_DIR}/src/Sources.cmake")

add_executable(${PROJECT_NAME} ${Sources})

target_include_directories(${PROJECT_NAME} PRIVATE
    "${JNI_DIR}/src"
    "${JNI_DIR}/SDL/include"
    "${JNI_DIR}/SDL_image/include"
    "${JNI_DIR}/SDL_ttf/include"
    "${JNI_DIR}/SDL_mixer/include"
)

if(NOT TARGET SDL3::SDL3)
    find_package(SDL3 CONFIG REQUIRED)
endif()
if(NOT TARGET SDL3_image::SDL3_image)
    find_package(SDL3_image CONFIG REQUIRED)
endif()
if(NOT TARGET SDL3_ttf::SDL3_ttf)
    find_package(SDL3_ttf CONFIG REQUIRED)
endif()
if(NOT TARGET SDL3_mixer::SDL3_mixer)
    find_package(SDL3_mixer CONFIG REQUIRED)
endif()

target_link_libraries(${PROJECT_NAME} PRIVATE SDL3::SDL3 SDL3_image::SDL3_image SDL3_ttf::SDL3_ttf SDL3_mixer::SDL3_mixer)

add_custom_command(TARGET ${PROJECT_NAME}
	POST_BUILD
	COMMAND "${PROJECT_SOURCE_DIR}/android-project/install.bat"
	COMMAND ${CMAKE_COMMAND} -E copy "${PROJECT_SOURCE_DIR}/android-project/app/src/main/assets/allerrg.ttf" "${PROJECT_BINARY_DIR}/allerrg.ttf"
	COMMAND ${CMAKE_COMMAND} -E copy "${PROJECT_SOURCE_DIR}/android-project/app/src/main/assets/snake.png" "${PROJECT_BINARY_DIR}/snake.png"
	COMMAND ${CMAKE_COMMAND} -E copy "${PROJECT_SOURCE_DIR}/android-project/app/src/main/assets/fruits.png" "${PROJECT_BINARY_DIR}/fruits.png"
	COMMAND ${CMAKE_COMMAND} -E copy "${PROJECT_SOURCE_DIR}/android-project/app/src/main/assets/snakehead.png" "${PROJECT_BINARY_DIR}/snakehead.png"
	COMMAND ${CMAKE_COMMAND} -E copy "${PROJECT_SOURCE_DIR}/android-project/app/src/main/assets/LoopingSound.ogg" "${PROJECT_BINARY_DIR}/LoopingSound.ogg"
	COMMAND ${CMAKE_COMMAND} -E copy "${PROJECT_SOURCE_DIR}/android-project/app/src/main/assets/score.txt" "${PROJECT_BINARY_DIR}/score.txt"
)
