cmake_minimum_required(VERSION 3.20)
project(rrmlui LANGUAGES C CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

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

find_package(raylib REQUIRED)
find_package(RmlUi REQUIRED)

add_library(rmlui_backend STATIC
  src/backend/RaylibSystemInterface.cpp
  src/backend/RaylibRenderInterface.cpp
  src/backend/RaylibInput.cpp
)

add_executable(${PROJECT_NAME}
  src/main.cpp
)

target_link_libraries(${PROJECT_NAME} PRIVATE
  raylib
  rmlui_backend
  RmlUi::Core
  RmlUi::Debugger
)

target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/src)

set(ASSET_DIR ${CMAKE_SOURCE_DIR}/assets)

add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
  COMMAND ${CMAKE_COMMAND} -E copy_directory
          ${ASSET_DIR} $<TARGET_FILE_DIR:${PROJECT_NAME}>/assets
  COMMENT "Copying assets to build output"
)

install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin)
install(DIRECTORY ${ASSET_DIR} DESTINATION bin)
