##
## Copyright (c) 2017, Alliance for Open Media. All rights reserved
##
## This source code is subject to the terms of the BSD 2 Clause License and
## the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
## was not distributed with this source code in the LICENSE file, you can
## obtain it at www.aomedia.org/license/software. If the Alliance for Open
## Media Patent License 1.0 was not distributed with this source code in the
## PATENTS file, you can obtain it at www.aomedia.org/license/patent.
##
cmake_minimum_required(VERSION 3.5)

# Converts spaces in $in_string to semicolons and writes the output to
# $out_string. In CMake's eyes this converts the input string to a list.
function (listify_string in_string out_string)
  string(REPLACE " " ";" ${out_string} ${in_string})
  set(${out_string} "${${out_string}}" PARENT_SCOPE)
endfunction ()

set(REQUIRED_ARGS "AOM_ROOT" "AOM_CONFIG_DIR" "AOM_DIST_DIR" "AOM_DIST_INCLUDES"
    "AOM_DIST_LIBS" "ENABLE_DOCS")

foreach (arg ${REQUIRED_ARGS})
  if ("${${arg}}" STREQUAL "")
    message(FATAL_ERROR "${arg} must not be empty.")
  endif ()
endforeach ()

if (ENABLE_DOCS)
  file(INSTALL "${AOM_CONFIG_DIR}/docs" DESTINATION "${AOM_DIST_DIR}")
endif ()

if (AOM_DIST_EXAMPLES)
  listify_string("${AOM_DIST_EXAMPLES}" "AOM_DIST_EXAMPLES")
  foreach (example ${AOM_DIST_EXAMPLES})
    if (NOT "${example}" MATCHES "aomdec\|aomenc")
      file(INSTALL "${example}" DESTINATION "${AOM_DIST_DIR}/bin/examples")
    endif ()
  endforeach ()
endif ()

if (AOM_DIST_TOOLS)
  foreach (tool ${AOM_DIST_TOOLS})
    file(INSTALL "${tool}" DESTINATION "${AOM_DIST_DIR}/bin/tools")
  endforeach ()
endif ()

if (AOM_DIST_APPS)
  listify_string("${AOM_DIST_APPS}" "AOM_DIST_APPS")
  foreach (app ${AOM_DIST_APPS})
    file(INSTALL "${app}" DESTINATION "${AOM_DIST_DIR}/bin")
  endforeach ()
endif ()

listify_string("${AOM_DIST_INCLUDES}" "AOM_DIST_INCLUDES")
foreach (inc ${AOM_DIST_INCLUDES})
  file(INSTALL "${inc}" DESTINATION "${AOM_DIST_DIR}/include/aom")
endforeach ()

listify_string("${AOM_DIST_LIBS}" "AOM_DIST_LIBS")
foreach (lib ${AOM_DIST_LIBS})
  file(INSTALL "${lib}" DESTINATION "${AOM_DIST_DIR}/lib")
endforeach ()
