ctkMacroCheckExternalProjectDependencyTest.cmake 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR} ${CMAKE_MODULE_PATH})
  2. include(ctkMacroCheckExternalProjectDependency)
  3. #
  4. # cmake -DTEST_superbuild_cmakevar_to_cmakearg_test:BOOL=ON -P ctkMacroCheckExternalProjectDependencyTest.cmake
  5. #
  6. function(superbuild_cmakevar_to_cmakearg_test)
  7. function(check_test_result id current_output expected_output
  8. current_varname expected_varname
  9. current_vartype expected_vartype)
  10. if(NOT "${current_output}" STREQUAL "${expected_output}")
  11. message(FATAL_ERROR "Problem with superbuild_cmakevar_to_cmakearg() - See testcase: ${id}\n"
  12. "current_output:${current_output}\n"
  13. "expected_output:${expected_output}")
  14. endif()
  15. if(NOT "${current_varname}" STREQUAL "${expected_varname}")
  16. message(FATAL_ERROR "Problem with superbuild_cmakevar_to_cmakearg() - See testcase: ${id}\n"
  17. "current_varname:${current_varname}\n"
  18. "expected_varname:${expected_varname}")
  19. endif()
  20. if(NOT "${current_vartype}" STREQUAL "${expected_vartype}")
  21. message(FATAL_ERROR "Problem with superbuild_cmakevar_to_cmakearg() - See testcase: ${id}\n"
  22. "current_vartype:${current_vartype}\n"
  23. "expected_vartype:${expected_vartype}")
  24. endif()
  25. endfunction()
  26. set(id 1)
  27. set(case${id}_input "Hello")
  28. set(case${id}_expected_varname "")
  29. set(case${id}_expected_vartype "")
  30. set(case${id}_expected_cmake_arg_var "-Dcase${id}_input:STRING=${case${id}_input}")
  31. superbuild_cmakevar_to_cmakearg("case${id}_input:STRING"
  32. case${id}_cmake_arg_var CMAKE_CACHE
  33. )
  34. check_test_result(${id}
  35. "${case${id}_cmake_arg_var}" "${case${id}_expected_cmake_arg_var}"
  36. "${case${id}_varname}" "${case${id}_expected_varname}"
  37. "${case${id}_vartype}" "${case${id}_expected_vartype}")
  38. set(id 2)
  39. set(case${id}_input "Hello")
  40. set(case${id}_expected_varname "case${id}_input")
  41. set(case${id}_expected_vartype "STRING")
  42. set(case${id}_expected_cmake_arg_var "-Dcase${id}_input:STRING=${case${id}_input}")
  43. superbuild_cmakevar_to_cmakearg("case${id}_input:STRING"
  44. case${id}_cmake_arg_var CMAKE_CACHE
  45. case${id}_varname case${id}_vartype)
  46. check_test_result(${id}
  47. "${case${id}_cmake_arg_var}" "${case${id}_expected_cmake_arg_var}"
  48. "${case${id}_varname}" "${case${id}_expected_varname}"
  49. "${case${id}_vartype}" "${case${id}_expected_vartype}")
  50. set(id 3)
  51. set(case${id}_input Hello World)
  52. set(case${id}_expected_varname "case${id}_input")
  53. set(case${id}_expected_vartype "STRING")
  54. set(case${id}_expected_cmake_arg_var "-Dcase${id}_input:STRING=${case${id}_input}")
  55. superbuild_cmakevar_to_cmakearg("case${id}_input:STRING"
  56. case${id}_cmake_arg_var CMAKE_CACHE
  57. case${id}_varname case${id}_vartype)
  58. check_test_result(${id}
  59. "${case${id}_cmake_arg_var}" "${case${id}_expected_cmake_arg_var}"
  60. "${case${id}_varname}" "${case${id}_expected_varname}"
  61. "${case${id}_vartype}" "${case${id}_expected_vartype}")
  62. set(id 4)
  63. set(case${id}_input Hello World)
  64. set(case${id}_expected_varname "case${id}_input")
  65. set(case${id}_expected_vartype "STRING")
  66. set(case${id}_expected_cmake_arg_var "-Dcase${id}_input:STRING=Hello^^World")
  67. superbuild_cmakevar_to_cmakearg("case${id}_input:STRING"
  68. case${id}_cmake_arg_var CMAKE_CMD
  69. case${id}_varname case${id}_vartype)
  70. check_test_result(${id}
  71. "${case${id}_cmake_arg_var}" "${case${id}_expected_cmake_arg_var}"
  72. "${case${id}_varname}" "${case${id}_expected_varname}"
  73. "${case${id}_vartype}" "${case${id}_expected_vartype}")
  74. message("SUCCESS")
  75. endfunction()
  76. if(TEST_superbuild_cmakevar_to_cmakearg_test)
  77. superbuild_cmakevar_to_cmakearg_test()
  78. endif()