ctkMacroCheckExternalProjectDependencyTest.cmake 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR} ${CMAKE_MODULE_PATH})
  2. include(ctkMacroCheckExternalProjectDependency)
  3. #
  4. # cmake -DTEST__sb_cmakevar_to_cmakearg_test:BOOL=ON -P ctkMacroCheckExternalProjectDependencyTest.cmake
  5. #
  6. function(_sb_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 _sb_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 _sb_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 _sb_cmakevar_to_cmakearg() - See testcase: ${id}\n"
  22. "current_vartype:${current_vartype}\n"
  23. "expected_vartype:${expected_vartype}")
  24. endif()
  25. endfunction()
  26. function(check_variable id var_name expected_value)
  27. if(NOT "x${${var_name}}" STREQUAL "x${expected_value}")
  28. message(FATAL_ERROR "Problem with _sb_cmakevar_to_cmakearg() - See testcase: ${id}\n"
  29. "CMake variable [${var_name}] has wrong value !\n"
  30. "current:${${var_name}}\n"
  31. "expected:${expected_value}")
  32. endif()
  33. endfunction()
  34. set(id 1)
  35. set(case${id}_input "Hello")
  36. set(case${id}_expected_varname "")
  37. set(case${id}_expected_vartype "")
  38. set(case${id}_expected_cmake_arg_var "-Dcase${id}_input:STRING=${case${id}_input}")
  39. _sb_cmakevar_to_cmakearg("case${id}_input:STRING"
  40. case${id}_cmake_arg_var CMAKE_CACHE
  41. )
  42. check_test_result(${id}
  43. "${case${id}_cmake_arg_var}" "${case${id}_expected_cmake_arg_var}"
  44. "${case${id}_varname}" "${case${id}_expected_varname}"
  45. "${case${id}_vartype}" "${case${id}_expected_vartype}")
  46. check_variable(${id} case${id}_input "Hello")
  47. set(id 2)
  48. set(case${id}_input "Hello")
  49. set(case${id}_expected_varname "case${id}_input")
  50. set(case${id}_expected_vartype "STRING")
  51. set(case${id}_expected_cmake_arg_var "-Dcase${id}_input:STRING=${case${id}_input}")
  52. _sb_cmakevar_to_cmakearg("case${id}_input:STRING"
  53. case${id}_cmake_arg_var CMAKE_CACHE
  54. case${id}_varname case${id}_vartype)
  55. check_test_result(${id}
  56. "${case${id}_cmake_arg_var}" "${case${id}_expected_cmake_arg_var}"
  57. "${case${id}_varname}" "${case${id}_expected_varname}"
  58. "${case${id}_vartype}" "${case${id}_expected_vartype}")
  59. check_variable(${id} case${id}_input "Hello")
  60. set(id 3)
  61. set(case${id}_input Hello World)
  62. set(case${id}_expected_varname "case${id}_input")
  63. set(case${id}_expected_vartype "STRING")
  64. set(case${id}_expected_cmake_arg_var "-Dcase${id}_input:STRING=${case${id}_input}")
  65. _sb_cmakevar_to_cmakearg("case${id}_input:STRING"
  66. case${id}_cmake_arg_var CMAKE_CACHE
  67. case${id}_varname case${id}_vartype)
  68. check_test_result(${id}
  69. "${case${id}_cmake_arg_var}" "${case${id}_expected_cmake_arg_var}"
  70. "${case${id}_varname}" "${case${id}_expected_varname}"
  71. "${case${id}_vartype}" "${case${id}_expected_vartype}")
  72. check_variable(${id} case${id}_input "Hello;World")
  73. set(id 4)
  74. set(case${id}_input Hello World)
  75. set(case${id}_expected_varname "case${id}_input")
  76. set(case${id}_expected_vartype "STRING")
  77. set(case${id}_expected_cmake_arg_var "-Dcase${id}_input:STRING=Hello^^World")
  78. _sb_cmakevar_to_cmakearg("case${id}_input:STRING"
  79. case${id}_cmake_arg_var CMAKE_CMD
  80. case${id}_varname case${id}_vartype)
  81. check_test_result(${id}
  82. "${case${id}_cmake_arg_var}" "${case${id}_expected_cmake_arg_var}"
  83. "${case${id}_varname}" "${case${id}_expected_varname}"
  84. "${case${id}_vartype}" "${case${id}_expected_vartype}")
  85. check_variable(${id} case${id}_input "Hello;World")
  86. message("SUCCESS")
  87. endfunction()
  88. if(TEST__sb_cmakevar_to_cmakearg_test)
  89. _sb_cmakevar_to_cmakearg_test()
  90. endif()
  91. #
  92. # cmake -DTEST__sb_extract_varname_and_vartype_test:BOOL=ON -P ctkMacroCheckExternalProjectDependencyTest.cmake
  93. #
  94. function(_sb_extract_varname_and_vartype_test)
  95. function(check_test_result id current_varname expected_varname
  96. current_vartype expected_vartype)
  97. if(NOT "${current_varname}" STREQUAL "${expected_varname}")
  98. message(FATAL_ERROR "Problem with _sb_extract_varname_and_vartype() - See testcase: ${id}\n"
  99. "current_varname:${current_varname}\n"
  100. "expected_varname:${expected_varname}")
  101. endif()
  102. if(NOT "${current_vartype}" STREQUAL "${expected_vartype}")
  103. message(FATAL_ERROR "Problem with _sb_extract_varname_and_vartype() - See testcase: ${id}\n"
  104. "current_vartype:${current_vartype}\n"
  105. "expected_vartype:${expected_vartype}")
  106. endif()
  107. endfunction()
  108. set(id 1)
  109. set(case${id}_input "VAR:STRING")
  110. set(case${id}_expected_varname "VAR")
  111. set(case${id}_expected_vartype "STRING")
  112. _sb_extract_varname_and_vartype("${case${id}_input}"
  113. case${id}_varname case${id}_vartype)
  114. check_test_result(${id}
  115. "${case${id}_varname}" "${case${id}_expected_varname}"
  116. "${case${id}_vartype}" "${case${id}_expected_vartype}")
  117. set(id 2)
  118. set(case${id}_input "VAR:STRING")
  119. set(case${id}_expected_varname "VAR")
  120. set(case${id}_expected_vartype "")
  121. _sb_extract_varname_and_vartype("${case${id}_input}"
  122. case${id}_varname)
  123. check_test_result(${id}
  124. "${case${id}_varname}" "${case${id}_expected_varname}"
  125. "${case${id}_vartype}" "${case${id}_expected_vartype}")
  126. message("SUCCESS")
  127. endfunction()
  128. if(TEST__sb_extract_varname_and_vartype_test)
  129. _sb_extract_varname_and_vartype_test()
  130. endif()