Milerius/shiva

View on GitHub
cmake/shiva-config.cmake.in

Summary

Maintainability
Test Coverage
@PACKAGE_INIT@

MESSAGE(STATUS ${CMAKE_CURRENT_LIST_DIR})

include("${CMAKE_CURRENT_LIST_DIR}/shiva-range-targets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/shiva-timer-targets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/shiva-pp-targets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/shiva-enums-targets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/shiva-meta-targets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/shiva-reflection-targets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/shiva-input-targets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/shiva-json-targets.cmake")

find_package(Threads REQUIRED)
find_package(spdlog CONFIG REQUIRED)
find_package(fmt CONFIG REQUIRED)
include("${CMAKE_CURRENT_LIST_DIR}/shiva-shiva-spdlog-targets.cmake")

include("${CMAKE_CURRENT_LIST_DIR}/shiva-entt-targets.cmake")

find_package(Boost COMPONENTS filesystem system REQUIRED)
include("${CMAKE_CURRENT_LIST_DIR}/shiva-stacktrace-targets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/shiva-filesystem-targets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/shiva-dll-targets.cmake")

include("${CMAKE_CURRENT_LIST_DIR}/shiva-error-targets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/shiva-event-targets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/shiva-ecs-targets.cmake")

##! Lua
find_package(sol2 CONFIG REQUIRED)
find_package(Lua 5.3)
if (MSVC)
find_file(LFSDLL lfs.dll PATH_SUFFIXES bin)
file(COPY ${LFSDLL}
     DESTINATION ${CMAKE_SOURCE_DIR}/bin)
endif()
include("${CMAKE_CURRENT_LIST_DIR}/shiva-lua-targets.cmake")

find_package(pybind11 CONFIG REQUIRED)
include("${CMAKE_CURRENT_LIST_DIR}/shiva-pyscripting-targets.cmake")

include("${CMAKE_CURRENT_LIST_DIR}/shiva-world-targets.cmake")
include("${CMAKE_CURRENT_LIST_DIR}/shiva-targets.cmake")

##! Lua plugins
get_property(result TARGET shiva::range PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
list (GET result 0 HEAD)
get_filename_component(PARENT_DIR ${HEAD} DIRECTORY)
message(STATUS "location -> ${PARENT_DIR}")
configure_file(${PARENT_DIR}/scenes/shiva/scenes/scenes_system.lua
${CMAKE_SOURCE_DIR}/bin/assets/scripts/systems/lua/scenes_system.lua
COPYONLY)
configure_file(${PARENT_DIR}/error/shiva/error/shiva_error_code.cpp
${CMAKE_SOURCE_DIR}/prerequisites/shiva_error_code.cpp
COPYONLY)



##! O Dependancies
check_required_components("range")
check_required_components("timer")
check_required_components("pp")
check_required_components("enums")
check_required_components("meta")
check_required_components("reflection")

##! 1 Dependancies

# input dependancies: enums
check_required_components("input")
check_required_components("json")
check_required_components("shiva-spdlog")
check_required_components("entt")
check_required_components("stacktrace")
check_required_components("filesystem")
check_required_components("dll")
check_required_components("error")
check_required_components("event")
check_required_components("ecs")
check_required_components("lua")
check_required_components("pyscripting")
check_required_components("world")
check_required_components("shiva")