cmake_minimum_required(VERSION 3.9)

project(SelectLibraryConfigurations NONE)

include(${CMAKE_ROOT}/Modules/SelectLibraryConfigurations.cmake)

macro(check_slc basename expect)
  message(STATUS "checking select_library_configurations(${basename})")
  select_library_configurations(${basename})
  if (NOT ${basename}_LIBRARY STREQUAL "${expect}")
    message(SEND_ERROR "select_library_configurations(${basename}) returned '${${basename}_LIBRARY}' but '${expect}' was expected")
  endif ()
  if (NOT ${basename}_LIBRARY STREQUAL "${${basename}_LIBRARIES}")
    message(SEND_ERROR "select_library_configurations(${basename}) LIBRARY: '${${basename}_LIBRARY}' LIBRARIES: '${${basename}_LIBRARIES}'")
  endif ()
endmacro(check_slc)

get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
if (NOT _isMultiConfig AND NOT CMAKE_BUILD_TYPE)
  set(NOTYPE_RELONLY_LIBRARY_RELEASE "opt")
  check_slc(NOTYPE_RELONLY "opt")

  set(NOTYPE_DBGONLY_LIBRARY_DEBUG "dbg")
  check_slc(NOTYPE_DBGONLY "dbg")

  set(NOTYPE_RELDBG_LIBRARY_RELEASE "opt")
  set(NOTYPE_RELDBG_LIBRARY_DEBUG "dbg")
  check_slc(NOTYPE_RELDBG "opt")

  set(CMAKE_BUILD_TYPE Debug)
endif ()

check_slc(empty "empty_LIBRARY-NOTFOUND")

set(OPTONLY_LIBRARY_RELEASE "opt")
check_slc(OPTONLY "opt")

set(DBGONLY_LIBRARY_RELEASE "dbg")
check_slc(DBGONLY "dbg")

set(SAME_LIBRARY_RELEASE "same")
set(SAME_LIBRARY_DEBUG "same")
check_slc(SAME "same")

set(OPTONLYLIST_LIBRARY_RELEASE "opt1;opt2")
check_slc(OPTONLYLIST "opt1;opt2")

set(DBGONLYLIST_LIBRARY_RELEASE "dbg1;dbg2")
check_slc(DBGONLYLIST "dbg1;dbg2")

set(OPT1DBG1_LIBRARY_RELEASE "opt")
set(OPT1DBG1_LIBRARY_DEBUG "dbg")
check_slc(OPT1DBG1 "optimized;opt;debug;dbg")

set(OPT1DBG2_LIBRARY_RELEASE "opt")
set(OPT1DBG2_LIBRARY_DEBUG "dbg1;dbg2")
check_slc(OPT1DBG2 "optimized;opt;debug;dbg1;debug;dbg2")

set(OPT2DBG1_LIBRARY_RELEASE "opt1;opt2")
set(OPT2DBG1_LIBRARY_DEBUG "dbg")
check_slc(OPT2DBG1 "optimized;opt1;optimized;opt2;debug;dbg")

set(OPT2DBG2_LIBRARY_RELEASE "opt1;opt2")
set(OPT2DBG2_LIBRARY_DEBUG "dbg1;dbg2")
check_slc(OPT2DBG2 "optimized;opt1;optimized;opt2;debug;dbg1;debug;dbg2")
