cmake_minimum_required(VERSION 3.19)
project(filaflat)

set(TARGET         filaflat)
set(PUBLIC_HDR_DIR include)

# ==================================================================================================
# Sources and headers
# ==================================================================================================
file(GLOB_RECURSE HDRS include/filaflat/*.h)

set(SRCS
        src/ChunkContainer.cpp
        src/DictionaryReader.cpp
        src/MaterialChunk.cpp
        src/Unflattener.cpp)

# ==================================================================================================
# Include and target definitions
# ==================================================================================================
include_directories(${PUBLIC_HDR_DIR})

add_library(${TARGET} ${HDRS} ${SRCS})
target_include_directories(${TARGET} PUBLIC ${PUBLIC_HDR_DIR})
set_target_properties(${TARGET} PROPERTIES FOLDER Libs)

target_link_libraries(${TARGET} filabridge utils)

if (FILAMENT_SUPPORTS_VULKAN)
    target_link_libraries(${TARGET} smol-v)
endif()

# ==================================================================================================
# Installation
# ==================================================================================================
# We do not need filaflat headers in the install directory
# install(DIRECTORY ${PUBLIC_HDR_DIR}/filaflat DESTINATION include)
install(TARGETS ${TARGET} ARCHIVE DESTINATION lib/${DIST_DIR})

# ==================================================================================================
# Tests
# ==================================================================================================
if (FILAMENT_BUILD_TESTING AND IS_HOST_PLATFORM)
    project(test_filaflat)
    set(TARGET test_filaflat)
    set(SRCS
            tests/test_filaflat.cpp)

    add_executable(${TARGET} ${SRCS})
    target_include_directories(${TARGET} PRIVATE src)
    target_link_libraries(${TARGET} filaflat gtest)
    set_target_properties(${TARGET} PROPERTIES FOLDER Tests)
endif()
