cmake_minimum_required(VERSION 3.10)

project(Engine)

# VARIABLES
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

set(BUILD_SHARED_LIBS ON)

if(CMAKE_HOST_WIN32)
	# Export both *.lib and *.dll on Windows
	set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
endif()

set(CMAKE_INSTALL_BINDIR bin)
set(CMAKE_INSTALL_LIBDIR lib)
set(CMAKE_INSTALL_INCLUDEDIR include)
set(CMAKE_INSTALL_RPATH "$ORIGIN;$ORIGIN/../lib")

# TARGETS
add_library(${PROJECT_NAME} SHARED src/engine.c)

target_include_directories(${PROJECT_NAME} PUBLIC
	include
	extern/SDL2/SDL/include
	extern/SDL2/SDL_mixer/include
	extern/SDL2/SDL_image
	extern/SDL2/SDL_ttf
)
target_link_libraries(${PROJECT_NAME} PUBLIC
	SDL2
	SDL2_image
	SDL2_mixer
	SDL2_ttf
)

install(FILES include/engine.h
	CONFIGURATIONS Release
	DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
)
install(TARGETS ${PROJECT_NAME}
	CONFIGURATIONS Release
	RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
	ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
	LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
)

# SUB-DIRECTORIES
add_subdirectory(extern)
