# Copyright (c) 2023, AgiBot Inc.
# All rights reserved.

include(FetchContent)

message(STATUS "get yaml-cpp ...")

set(yaml-cpp_DOWNLOAD_URL
    "https://github.com/jbeder/yaml-cpp/archive/0.8.0.tar.gz"
    CACHE STRING "")

if(yaml-cpp_LOCAL_SOURCE)
  FetchContent_Declare(
    yaml-cpp
    SOURCE_DIR ${yaml-cpp_LOCAL_SOURCE}
    OVERRIDE_FIND_PACKAGE)
else()
  FetchContent_Declare(
    yaml-cpp
    URL ${yaml-cpp_DOWNLOAD_URL}
    DOWNLOAD_EXTRACT_TIMESTAMP TRUE
    OVERRIDE_FIND_PACKAGE)
endif()

# Wrap it in a function to restrict the scope of the variables
function(get_yaml_cpp)
  FetchContent_GetProperties(yaml-cpp)
  if(NOT yaml-cpp_POPULATED)
    set(BUILD_TESTING OFF)

    set(YAML_CPP_BUILD_TESTS OFF)

    set(YAML_CPP_BUILD_TOOLS OFF)

    set(YAML_CPP_INSTALL ON)

    set(YAML_CPP_FORMAT_SOURCE OFF)

    set(YAML_CPP_BUILD_CONTRIB OFF)

    FetchContent_MakeAvailable(yaml-cpp)
  endif()
endfunction()

get_yaml_cpp()

# import targets:
# yaml-cpp::yaml-cpp
