add_library(sequtils sequtils.cpp)

set(PLATFORM_LIBS)
if(HAVE_NEON)
    add_library(sequtils_neon neon.c)
    string(STRIP "${NEON_C_FLAGS}" IMPL_FLAGS)
    if(IMPL_FLAGS)
        target_compile_options(sequtils_neon PRIVATE ${IMPL_FLAGS})
    endif()
    set(PLATFORM_LIBS ${PLATFORM_LIBS} sequtils_neon)
    target_compile_definitions(sequtils PUBLIC NEON_BUILD_SUPPORT)
endif()
if(HAVE_SSE2)
    add_library(sequtils_sse2 sse2.c)
    string(STRIP "${SSE2_C_FLAGS}" IMPL_FLAGS)
    if(IMPL_FLAGS)
        target_compile_options(sequtils_sse2 PRIVATE ${IMPL_FLAGS})
    endif()
    set(PLATFORM_LIBS ${PLATFORM_LIBS} sequtils_sse2)
    target_compile_definitions(sequtils PUBLIC SSE2_BUILD_SUPPORT)
endif()
if(HAVE_SSSE3)
    add_library(sequtils_ssse3 ssse3.c)
    string(STRIP "${SSSE3_C_FLAGS}" IMPL_FLAGS)
    if(IMPL_FLAGS)
        target_compile_options(sequtils_ssse3 PRIVATE ${IMPL_FLAGS})
    endif()
    set(PLATFORM_LIBS ${PLATFORM_LIBS} sequtils_ssse3)
    target_compile_definitions(sequtils PUBLIC SSSE3_BUILD_SUPPORT)
endif()



target_link_libraries(sequtils PUBLIC cpu_features ${PLATFORM_LIBS})

cmake_path(GET CMAKE_CURRENT_LIST_DIR PARENT_PATH PARENT_DIR)
target_include_directories(sequtils PUBLIC ${PARENT_DIR} ${CMAKE_CURRENT_LIST_DIR})
