# Gather all src files file(GLOB_RECURSE CORE_UTIL_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/CoreUtilities/*.cpp) file(GLOB_RECURSE CHARACTER_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/Character/*.cpp) file(GLOB_RECURSE ECS_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/ECS/*.cpp) file(GLOB_RECURSE EVENTS_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/Events/*.cpp) file(GLOB_RECURSE LOADERS_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/Loaders/*.cpp) file(GLOB_RECURSE RESOURCES_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/Resources/*.cpp) file(GLOB_RECURSE SCENE_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/Scene/*.cpp) file(GLOB_RECURSE SCRIPTING_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/Scripting/*.cpp) file(GLOB_RECURSE STATES_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/States/*.cpp) file(GLOB_RECURSE SYSTEMS_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/Systems/*.cpp) set( COMMON_CORE_SRC ${CORE_UTIL_SRC} ${CHARACTER_SRC} ${ECS_SRC} ${EVENTS_SRC} ${LOADERS_SRC} ${RESOURCES_SRC} ${SCENE_SRC} ${SCRIPTING_SRC} ${STATES_SRC} ${SYSTEMS_SRC} ) add_library( SCION_CORE ${COMMON_CORE_SRC} ) target_include_directories( SCION_CORE PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include PRIVATE ${SOL2_INCLUDE_DIRS} ) target_precompile_headers(SCION_CORE REUSE_FROM PCH) target_link_libraries(SCION_CORE PUBLIC glm::glm EnTT::EnTT sol2::sol2 ${LUA_LIBRARIES} $ $,SDL2::SDL2,SDL2::SDL2-static> SCION_LOGGER SCION_UTILITIES SCION_PHYSICS SCION_RENDERING SCION_FILESYSTEM SCION_SOUNDS SCION_WINDOW) target_compile_options( SCION_CORE PRIVATE $<$:${CXX_COMPILE_FLAGS}>) find_package(SDL2_image) ## SCION_CORE_EDITOR - Editor Compile Flag is set add_library( SCION_CORE_EDITOR ${COMMON_CORE_SRC} ) target_compile_definitions(SCION_CORE_EDITOR PUBLIC IN_SCION_EDITOR) target_include_directories( SCION_CORE_EDITOR PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include PRIVATE ${SOL2_INCLUDE_DIRS} ) target_precompile_headers(SCION_CORE_EDITOR REUSE_FROM PCH) target_link_libraries(SCION_CORE_EDITOR PUBLIC glm::glm EnTT::EnTT sol2::sol2 ${LUA_LIBRARIES} $ $,SDL2::SDL2,SDL2::SDL2-static> $,SDL2_image::SDL2_image,SDL2_image::SDL2_image-static> SCION_LOGGER SCION_UTILITIES SCION_PHYSICS SCION_RENDERING SCION_FILESYSTEM SCION_SOUNDS SCION_WINDOW) target_compile_options( SCION_CORE_EDITOR PRIVATE $<$:${CXX_COMPILE_FLAGS}>)