1
0

CMakeLists.txt 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. # a simple C only test case
  2. PROJECT (littleMacroTest)
  3. SET(CMAKE_C_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_C_FLAGS}")
  4. MACRO(FAILED testname)
  5. MESSAGE(SEND_ERROR "${testname} failed ${ARGN}")
  6. ENDMACRO(FAILED)
  7. MACRO(PASS testname)
  8. MESSAGE("${testname} passed ${ARGN}")
  9. ENDMACRO(PASS)
  10. # test ARGC
  11. MACRO(weird_name)
  12. IF("${ARGC}" EQUAL "3")
  13. PASS("ARGC")
  14. ELSE("${ARGC}" EQUAL "3")
  15. FAILED("ARGC" "Got: ${ARGC}")
  16. ENDIF("${ARGC}" EQUAL "3")
  17. ENDMACRO(weird_name)
  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("${ARGN}" EQUAL "3")
  24. FAILED("ARGN" "Got: ${ARGN}")
  25. ENDIF("${ARGN}" EQUAL "3")
  26. ENDMACRO(test_argn_macro)
  27. Test_Argn_Macro(ignored 3)
  28. # case test
  29. MACRO(strange_macro m)
  30. SET("${m}" strange_macro)
  31. ENDMACRO(strange_macro m)
  32. STRANGE_MACRO(var)
  33. set(second_var "second_var")
  34. IF("${var}" EQUAL "strange_macro" AND "${second_var}" EQUAL "second_var")
  35. PASS("Case Test" "(${var} ${second_var})")
  36. ELSE("${var}" EQUAL "strange_macro" AND "${second_var}" EQUAL "second_var")
  37. FAILED("Case test" "(${var} ${second_var})")
  38. ENDIF("${var}" EQUAL "strange_macro" AND "${second_var}" EQUAL "second_var")
  39. # test backing up command
  40. MACRO(ADD_EXECUTABLE exec)
  41. _ADD_EXECUTABLE("mini${exec}" ${ARGN})
  42. ENDMACRO(ADD_EXECUTABLE)
  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(SOME_CHECK)
  61. MESSAGE(FATAL_ERROR "CheckCSourceCompiles does not work")
  62. ENDIF(SOME_CHECK)
  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(SOME_CHECK)
  75. MESSAGE(FATAL_ERROR "CheckCXXSourceCompiles does not work")
  76. ENDIF(SOME_CHECK)
  77. ADD_EXECUTABLE(MacroTest macroTest.c)