set(CORE_NAME Core) find_package(Vulkan REQUIRED) file(GLOB_RECURSE SRC "*.cpp" "*.c" "*.h" "*.hpp") add_library(Core STATIC ${SRC}) target_compile_features(Core PRIVATE cxx_std_17) target_include_directories(Core PUBLIC ${PROJECT_SOURCE_DIR}/FastRTTI ) target_include_directories(Core PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/glfw/Include ${PROJECT_SOURCE_DIR}/RenderEngineSDK ${Vulkan_INCLUDE_DIRS} ) target_link_libraries(Core PRIVATE ${CMAKE_DL_LIBS} # For linux FastRTTI glfw Vulkan::Vulkan ) file(GLOB_RECURSE HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/*.h" "${CMAKE_CURRENT_SOURCE_DIR}/*.hpp" ) foreach (HEADER ${HEADERS}) file(RELATIVE_PATH R_PATH "${CMAKE_CURRENT_SOURCE_DIR}" "${HEADER}" ) get_filename_component(HEADER_DIR ${R_PATH} DIRECTORY) add_custom_command( TARGET Core POST_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/include/${HEADER_DIR}" COMMAND ${CMAKE_COMMAND} -E copy_if_different "${HEADER}" "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/include/${R_PATH}" COMMENT "Copy Core headers" ) endforeach ()