#---------------------------------------------------------------------------------------------------
# Copyright (c) 2019 Marcus Geelnard
#
# This software is provided 'as-is', without any express or implied warranty. In no event will the
# authors be held liable for any damages arising from the use of this software.
#
# Permission is granted to anyone to use this software for any purpose, including commercial
# applications, and to alter it and redistribute it freely, subject to the following restrictions:
#
#  1. The origin of this software must not be misrepresented; you must not claim that you wrote
#     the original software. If you use this software in a product, an acknowledgment in the
#     product documentation would be appreciated but is not required.
#
#  2. Altered source versions must be plainly marked as such, and must not be misrepresented as
#     being the original software.
#
#  3. This notice may not be removed or altered from any source distribution.
#---------------------------------------------------------------------------------------------------

#---------------------------------------------------------------------------------------------------
# buildcache_add_test: Add a test executable.
#
# Usage:
#   buildcache_add_test(
#       NAME <test name>
#       SOURCES <sources>
#       LIBRARIES <libraries>
#   )
#---------------------------------------------------------------------------------------------------
function(buildcache_add_test)
  set(_options)
  set(oneValueArgs NAME)
  set(multiValueArgs SOURCES LIBRARIES)
  cmake_parse_arguments("" "${_options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})

  add_executable(${_NAME} ${_SOURCES})
  target_link_libraries(${_NAME} ${_LIBRARIES} doctest)
  add_test(NAME ${_NAME} COMMAND ${_NAME})
endfunction()
