# Procedural 3D Engine - Base Library
# Copyright (c) 2025 Your Project
# Licensed under the MIT License
# Based on Vulkan examples by Sascha Willems (MIT License)
file(GLOB_RECURSE BASE_SRC
"*.cpp"
"*.hpp"
"*.h"
"device/*.cpp"
"device/*.h"
"memory/*.cpp"
"memory/*.h"
"core/*.cpp"
"core/*.hpp"
"core/*.h"
"foundation/*.cpp"
"foundation/*.h"
)
file(GLOB_RECURSE BASE_HEADERS
set(KTX_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../external/ktx)
set(KTX_SOURCES
${KTX_DIR}/lib/texture.c
${KTX_DIR}/lib/hashlist.c
${KTX_DIR}/lib/checkheader.c
${KTX_DIR}/lib/swap.c
${KTX_DIR}/lib/memstream.c
${KTX_DIR}/lib/filestream.c
${KTX_DIR}/lib/vkloader.c)
add_library(base STATIC ${BASE_SRC} ${KTX_SOURCES})
if(WIN32)
target_link_libraries(base ${Vulkan_LIBRARY} ${WINLIBS})
else(WIN32)
target_link_libraries(base ${Vulkan_LIBRARY} ${XCB_LIBRARIES} ${WAYLAND_CLIENT_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
endif(WIN32)