cmake_minimum_required(VERSION 3.10)

if(NOT CMAKE_BUILD_TYPE)
	set(CMAKE_BUILD_TYPE Release)
endif()

if(CMAKE_BUILD_TYPE MATCHES DEBUG)
	add_link_options(-fsanitize=address)
endif()


if(MINGW)
	set(CMAKE_C_FLAGS "-Wno-undef --static -windows")
	set(CMAKE_C_FLAGS_DEBUG "-g -O0")
	set(CMAKE_C_FLAGS_RELEASE "-O2")
else()
	set(CMAKE_C_FLAGS "-Wall -Wextra -pedantic -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wmaybe-uninitialized -Wno-unused-variable")
	set(CMAKE_C_FLAGS_DEBUG "-g -Werror -O0")
	set(CMAKE_C_FLAGS_RELEASE "")
endif()

# generate the compile_commands for vscode / clang
set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE INTERNAL "")

# set the project name
project(LEGEND_OF_ADAME)


set(SRC
	src/main.c
	src/renderer.c
	src/text.c
	src/menu.c
	src/input.c
	src/scaller.c
	src/scene.c
	src/game.c
	src/cinematic.c
)

# add the executable
add_executable(LEGEND_OF_ADAME ${SRC})


target_link_libraries(LEGEND_OF_ADAME SDL2 SDL2_image SDL2_ttf SDL2_mixer m)


set_property(TARGET LEGEND_OF_ADAME PROPERTY C_STANDARD 23)


file(COPY assets DESTINATION ${CMAKE_BINARY_DIR})

if(MINGW)
	target_link_libraries(LEGEND_OF_ADAME ws2_32 windows mingw32 SDLmain SDL)
endif()
