CMakeLists.txt 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. # a simple C only test case
  2. cmake_minimum_required (VERSION 2.6)
  3. project (MacroTest)
  4. macro(FAILED testname)
  5. message(SEND_ERROR "${testname} failed ${ARGN}")
  6. endmacro()
  7. macro(PASS testname)
  8. message("${testname} passed ${ARGN}")
  9. endmacro()
  10. # test ARGC
  11. macro(weird_name)
  12. if("${ARGC}" EQUAL "3")
  13. PASS("ARGC")
  14. else()
  15. FAILED("ARGC" "Got: ${ARGC}")
  16. endif()
  17. endmacro()
  18. WeIrD_nAmE(a1 a2 a3)
  19. # test ARGN
  20. macro(test_argn_macro argument)
  21. if("${ARGN}" EQUAL "3")
  22. PASS("ARGN")
  23. else()
  24. FAILED("ARGN" "Got: ${ARGN}")
  25. endif()
  26. endmacro()
  27. Test_Argn_Macro(ignored 3)
  28. # case test
  29. macro(strange_macro m)
  30. set("${m}" strange_macro)
  31. endmacro()
  32. STRANGE_MACRO(var)
  33. set(second_var "second_var")
  34. if("x${var}" STREQUAL "xstrange_macro" AND "x${second_var}" STREQUAL "xsecond_var")
  35. PASS("Case Test" "(${var} ${second_var})")
  36. else()
  37. FAILED("Case test" "(${var} ${second_var})")
  38. endif()
  39. # test backing up command
  40. macro(ADD_EXECUTABLE exec)
  41. _ADD_EXECUTABLE("mini${exec}" ${ARGN})
  42. endmacro()
  43. include(CheckCSourceCompiles)
  44. Check_C_Source_Compiles(
  45. "
  46. #include <stdio.h>
  47. #ifdef __CLASSIC_C__
  48. int main(){
  49. int ac;
  50. char*av[];
  51. #else
  52. int main(int ac, char*av[]){
  53. #endif
  54. if(ac > 1000){return *av[0];}
  55. return 0;
  56. }"
  57. SOME_CHECK)
  58. if(SOME_CHECK)
  59. message("CheckCSourceCompiles works")
  60. else()
  61. message(FATAL_ERROR "CheckCSourceCompiles does not work")
  62. endif()
  63. include(CheckCXXSourceCompiles)
  64. Check_CXX_Source_Compiles(
  65. "
  66. #include <stdio.h>
  67. int main(int ac, char*av[]){
  68. if(ac > 1000){return *av[0];}
  69. return 0;
  70. }"
  71. SOME_CHECK)
  72. if(SOME_CHECK)
  73. message("CheckCXXSourceCompiles works")
  74. else()
  75. message(FATAL_ERROR "CheckCXXSourceCompiles does not work")
  76. endif()
  77. add_executable(MacroTest macroTest.c)
  78. macro(GET_CURRENT_FILE var)
  79. set(${var} ${CMAKE_CURRENT_LIST_FILE})
  80. endmacro()
  81. include(context.cmake)