CMakeLists.txt 2.1 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(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}" STREQUAL "strange_macro" AND "${second_var}" STREQUAL "second_var")
  35. PASS("Case Test" "(${var} ${second_var})")
  36. ELSE("${var}" STREQUAL "strange_macro" AND "${second_var}" STREQUAL "second_var")
  37. FAILED("Case test" "(${var} ${second_var})")
  38. ENDIF("${var}" STREQUAL "strange_macro" AND "${second_var}" STREQUAL "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)
  78. MACRO(GET_CURRENT_FILE var)
  79. SET(${var} ${CMAKE_CURRENT_LIST_FILE})
  80. ENDMACRO(GET_CURRENT_FILE)
  81. INCLUDE(context.cmake)