kea_util_lib = shared_library(
    'kea-util',
    'boost_time_utils.cc',
    'chrono_time_utils.cc',
    'csv_file.cc',
    'dhcp_space.cc',
    'encode/encode.cc',
    'encode/utf8.cc',
    'filesystem.cc',
    'labeled_value.cc',
    'memory_segment_local.cc',
    'multi_threading_mgr.cc',
    'pid_file.cc',
    'reconnect_ctl.cc',
    'state_model.cc',
    'stopwatch.cc',
    'stopwatch_impl.cc',
    'str.cc',
    'versioned_csv_file.cc',
    'watched_thread.cc',
    'watch_socket.cc',
    include_directories: [include_directories('.')] + INCLUDES,
    install: true,
    install_dir: LIBDIR,
    install_rpath: INSTALL_RPATH,
    build_rpath: BUILD_RPATH,
    link_with: LIBS_BUILT_SO_FAR,
    version: '100.0.0',
)
subdir('io')
subdir('unittests')
LIBS_BUILT_SO_FAR = [kea_util_lib] + LIBS_BUILT_SO_FAR
subdir('tests')
subdir('python')
kea_util_headers = [
    'bigints.h',
    'boost_time_utils.h',
    'buffer.h',
    'chrono_time_utils.h',
    'csv_file.h',
    'dhcp_space.h',
    'doubles.h',
    'encode/encode.h',
    'encode/utf8.h',
    'filesystem.h',
    'io/fd.h',
    'io/pktinfo_utilities.h',
    'io/sockaddr_util.h',
    'hash.h',
    'io.h',
    'labeled_value.h',
    'memory_segment.h',
    'memory_segment_local.h',
    'multi_threading_mgr.h',
    'optional.h',
    'pid_file.h',
    'pointer_util.h',
    'range_utilities.h',
    'readwrite_mutex.h',
    'reconnect_ctl.h',
    'staged_value.h',
    'state_model.h',
    'stopwatch.h',
    'stopwatch_impl.h',
    'str.h',
    'thread_pool.h',
    'triplet.h',
    'unlock_guard.h',
    'versioned_csv_file.h',
    'watched_thread.h',
    'watch_socket.h',
]
install_headers(kea_util_headers, preserve_path: true, subdir: 'kea/util')
