add_subdirectory(aggregate)
add_subdirectory(arithmetic)
add_subdirectory(array)
add_subdirectory(cast)
add_subdirectory(date)
add_subdirectory(gds)
add_subdirectory(list)
add_subdirectory(map)
add_subdirectory(path)
add_subdirectory(pattern)
add_subdirectory(sequence)
add_subdirectory(struct)
add_subdirectory(table)
add_subdirectory(union)
add_subdirectory(utility)
add_subdirectory(string)
add_subdirectory(export)
add_subdirectory(internal_id)
add_subdirectory(timestamp)

add_library(kuzu_function
        OBJECT
        aggregate_function.cpp
        base_lower_upper_operation.cpp
        built_in_function_utils.cpp
        cast_string_non_nested_functions.cpp
        cast_from_string_functions.cpp
        comparison_functions.cpp
        find_function.cpp
        function.cpp
        function_collection.cpp
        scalar_macro_function.cpp
        vector_arithmetic_functions.cpp
        vector_boolean_functions.cpp
        vector_cast_functions.cpp
        vector_date_functions.cpp
        vector_hash_functions.cpp
        vector_null_functions.cpp
        vector_node_rel_functions.cpp
        vector_string_functions.cpp
        vector_timestamp_functions.cpp
        vector_blob_functions.cpp
        vector_uuid_functions.cpp)

set(ALL_OBJECT_FILES
        ${ALL_OBJECT_FILES} $<TARGET_OBJECTS:kuzu_function>
        PARENT_SCOPE)
