ctkMacroCheckExternalProjectDependencyTest.cmake 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  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. 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. _sb_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. _sb_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. _sb_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. _sb_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__sb_cmakevar_to_cmakearg_test)
  77. _sb_cmakevar_to_cmakearg_test()
  78. endif()
  79. #
  80. # cmake -DTEST__sb_extract_varname_and_vartype_test:BOOL=ON -P ctkMacroCheckExternalProjectDependencyTest.cmake
  81. #
  82. function(_sb_extract_varname_and_vartype_test)
  83. function(check_test_result id current_varname expected_varname
  84. current_vartype expected_vartype)
  85. if(NOT "${current_varname}" STREQUAL "${expected_varname}")
  86. message(FATAL_ERROR "Problem with _sb_extract_varname_and_vartype() - See testcase: ${id}\n"
  87. "current_varname:${current_varname}\n"
  88. "expected_varname:${expected_varname}")
  89. endif()
  90. if(NOT "${current_vartype}" STREQUAL "${expected_vartype}")
  91. message(FATAL_ERROR "Problem with _sb_extract_varname_and_vartype() - See testcase: ${id}\n"
  92. "current_vartype:${current_vartype}\n"
  93. "expected_vartype:${expected_vartype}")
  94. endif()
  95. endfunction()
  96. set(id 1)
  97. set(case${id}_input "VAR:STRING")
  98. set(case${id}_expected_varname "VAR")
  99. set(case${id}_expected_vartype "STRING")
  100. _sb_extract_varname_and_vartype("${case${id}_input}"
  101. case${id}_varname case${id}_vartype)
  102. check_test_result(${id}
  103. "${case${id}_varname}" "${case${id}_expected_varname}"
  104. "${case${id}_vartype}" "${case${id}_expected_vartype}")
  105. set(id 2)
  106. set(case${id}_input "VAR:STRING")
  107. set(case${id}_expected_varname "VAR")
  108. set(case${id}_expected_vartype "")
  109. _sb_extract_varname_and_vartype("${case${id}_input}"
  110. case${id}_varname)
  111. check_test_result(${id}
  112. "${case${id}_varname}" "${case${id}_expected_varname}"
  113. "${case${id}_vartype}" "${case${id}_expected_vartype}")
  114. message("SUCCESS")
  115. endfunction()
  116. if(TEST__sb_extract_varname_and_vartype_test)
  117. _sb_extract_varname_and_vartype_test()
  118. endif()