123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- # Prepare variable definitions.
- set(VAR_UNDEFINED)
- set(VAR_PATH /some/path/to/a/file.txt)
- set(FALSE_NAMES OFF NO FALSE N FOO-NOTFOUND IGNORE Off No False Ignore off n no false ignore)
- set(TRUE_NAMES ON YES TRUE Y On Yes True on yes true y)
- foreach(_arg "" 0 1 2 ${TRUE_NAMES} ${FALSE_NAMES})
- set(VAR_${_arg} "${_arg}")
- endforeach()
- macro(test_vars _old)
- # Variables set to false or not set.
- foreach(_var "" 0 ${FALSE_NAMES} UNDEFINED)
- if(VAR_${_var})
- message(FATAL_ERROR "${_old}if(VAR_${_var}) is true!")
- else()
- message(STATUS "${_old}if(VAR_${_var}) is false")
- endif()
- if(NOT VAR_${_var})
- message(STATUS "${_old}if(NOT VAR_${_var}) is true")
- else()
- message(FATAL_ERROR "${_old}if(NOT VAR_${_var}) is false!")
- endif()
- endforeach()
- # Variables set to true.
- foreach(_var 1 2 ${TRUE_NAMES} PATH)
- if(VAR_${_var})
- message(STATUS "${_old}if(VAR_${_var}) is true")
- else()
- message(FATAL_ERROR "${_old}if(VAR_${_var}) is false!")
- endif()
- if(NOT VAR_${_var})
- message(FATAL_ERROR "${_old}if(NOT VAR_${_var}) is true!")
- else()
- message(STATUS "${_old}if(NOT VAR_${_var}) is false")
- endif()
- endforeach()
- endmacro()
- #-----------------------------------------------------------------------------
- # Test the OLD behavior of CMP0012.
- cmake_policy(SET CMP0012 OLD)
- # False constants not recognized (still false).
- foreach(_false "" ${FALSE_NAMES})
- if("${_false}")
- message(FATAL_ERROR "OLD if(${_false}) is true!")
- else()
- message(STATUS "OLD if(${_false}) is false")
- endif()
- if(NOT "${_false}")
- message(STATUS "OLD if(NOT ${_false}) is true")
- else()
- message(FATAL_ERROR "OLD if(NOT ${_false}) is false!")
- endif()
- endforeach()
- # True constants not recognized.
- foreach(_false ${TRUE_NAMES})
- if(${_false})
- message(FATAL_ERROR "OLD if(${_false}) is true!")
- else()
- message(STATUS "OLD if(${_false}) is false")
- endif()
- if(NOT ${_false})
- message(STATUS "OLD if(NOT ${_false}) is true")
- else()
- message(FATAL_ERROR "OLD if(NOT ${_false}) is false!")
- endif()
- endforeach()
- # Numbers not recognized properly.
- foreach(_num 2 -2 2.0 -2.0 2x -2x)
- if(${_num})
- message(FATAL_ERROR "OLD if(${_num}) is true!")
- else()
- message(STATUS "OLD if(${_num}) is false")
- endif()
- if(NOT ${_num})
- message(FATAL_ERROR "OLD if(NOT ${_num}) is true!")
- else()
- message(STATUS "OLD if(NOT ${_num}) is false")
- endif()
- endforeach()
- test_vars("OLD ")
- #-----------------------------------------------------------------------------
- # Test the NEW behavior of CMP0012.
- cmake_policy(SET CMP0012 NEW)
- # Test false constants.
- foreach(_false "" 0 ${FALSE_NAMES})
- if("${_false}")
- message(FATAL_ERROR "if(${_false}) is true!")
- else()
- message(STATUS "if(${_false}) is false")
- endif()
- if(NOT "${_false}")
- message(STATUS "if(NOT ${_false}) is true")
- else()
- message(FATAL_ERROR "if(NOT ${_false}) is false!")
- endif()
- endforeach()
- # Test true constants.
- foreach(_true 1 ${TRUE_NAMES})
- if(${_true})
- message(STATUS "if(${_true}) is true")
- else()
- message(FATAL_ERROR "if(${_true}) is false!")
- endif()
- if(NOT ${_true})
- message(FATAL_ERROR "if(NOT ${_true}) is true!")
- else()
- message(STATUS "if(NOT ${_true}) is false")
- endif()
- endforeach()
- # Numbers recognized properly.
- foreach(_num 2 -2 2.0 -2.0)
- if(${_num})
- message(STATUS "if(${_num}) is true")
- else()
- message(FATAL_ERROR "if(${_num}) is false!")
- endif()
- if(NOT ${_num})
- message(FATAL_ERROR "if(NOT ${_num}) is true!")
- else()
- message(STATUS "if(NOT ${_num}) is false")
- endif()
- endforeach()
- # Bad numbers not recognized.
- foreach(_bad 2x -2x)
- if(${_bad})
- message(FATAL_ERROR "if(${_bad}) is true!")
- else()
- message(STATUS "if(${_bad}) is false")
- endif()
- if(NOT ${_bad})
- message(STATUS "if(NOT ${_bad}) is true")
- else()
- message(FATAL_ERROR "if(NOT ${_bad}) is false!")
- endif()
- endforeach()
- test_vars("")
|