cmake_minimum_required(VERSION 2.6)
project(Unset C)

# Local variable
set(x 42)
if(NOT x EQUAL 42)
  message(FATAL_ERROR "x!=42")
endif()

if(NOT DEFINED x)
  message(FATAL_ERROR "x should be defined!")
endif()

unset(x)
if(DEFINED x)
  message(FATAL_ERROR "x should be undefined now!")
endif()

# Local variable test unset via set()
set(x 43)
if(NOT x EQUAL 43)
  message(FATAL_ERROR "x!=43")
endif()
set(x)
if(DEFINED x)
  message(FATAL_ERROR "x should be undefined now!")
endif()

# Cache variable
set(BAR "test" CACHE STRING "documentation")
if(NOT DEFINED BAR)
  message(FATAL_ERROR "BAR not defined")
endif()

# Test interaction of cache entries with variables.
set(BAR "test-var")
if(NOT "$CACHE{BAR}" STREQUAL "test")
  message(FATAL_ERROR "\$CACHE{BAR} changed by variable BAR")
endif()
if(NOT "${BAR}" STREQUAL "test-var")
  message(FATAL_ERROR "\${BAR} not separate from \$CACHE{BAR}")
endif()
unset(BAR)
if(NOT "${BAR}" STREQUAL "test")
  message(FATAL_ERROR "\${BAR} does not fall through to \$CACHE{BAR}")
endif()

# Test unsetting of CACHE entry.
unset(BAR CACHE)
if(DEFINED BAR)
  message(FATAL_ERROR "BAR still defined")
endif()

# Test unset(... PARENT_SCOPE)
function(unset_zots)
  if(NOT DEFINED ZOT1)
    message(FATAL_ERROR "ZOT1 is not defined inside function")
  endif()
  if(NOT DEFINED ZOT2)
    message(FATAL_ERROR "ZOT2 is not defined inside function")
  endif()
  unset(ZOT1)
  unset(ZOT2 PARENT_SCOPE)
  if(DEFINED ZOT1)
    message(FATAL_ERROR "ZOT1 is defined inside function after unset")
  endif()
  if(NOT DEFINED ZOT2)
    message(FATAL_ERROR
      "ZOT2 is not defined inside function after unset(... PARENT_SCOPE)")
  endif()
endfunction()
set(ZOT1 1)
set(ZOT2 2)
unset_zots()
if(NOT DEFINED ZOT1)
  message(FATAL_ERROR "ZOT1 is not still defined after function")
endif()
if(DEFINED ZOT2)
  message(FATAL_ERROR "ZOT2 is still defined after function unset PARENT_SCOPE")
endif()

add_executable(Unset unset.c)
