Resync
[CMakeLuaTailorHgBridge.git] / CMakeLua / Tests / MacroTest / CMakeLists.txt
blob7ec50c7b7c9bc8e081963b21562ad381e376088e
1 # a simple C only test case
2 cmake_minimum_required (VERSION 2.6)
3 PROJECT (MacroTest)
5 SET(CMAKE_C_FLAGS "${CMAKE_ANSI_CFLAGS} ${CMAKE_C_FLAGS}")
7 MACRO(FAILED testname)
8   MESSAGE(SEND_ERROR "${testname} failed ${ARGN}")
9 ENDMACRO(FAILED)
11 MACRO(PASS testname)
12   MESSAGE("${testname} passed ${ARGN}")
13 ENDMACRO(PASS)
15 # test ARGC
16 MACRO(weird_name)
17   IF("${ARGC}" EQUAL "3")
18     PASS("ARGC")
19   ELSE("${ARGC}" EQUAL "3")
20     FAILED("ARGC" "Got: ${ARGC}")
21   ENDIF("${ARGC}" EQUAL "3")
22 ENDMACRO(weird_name)
23 WeIrD_nAmE(a1 a2 a3)
25 # test ARGN
26 MACRO(test_argn_macro argument)
27   IF("${ARGN}" EQUAL "3")
28     PASS("ARGN")
29   ELSE("${ARGN}" EQUAL "3")
30     FAILED("ARGN" "Got: ${ARGN}")
31   ENDIF("${ARGN}" EQUAL "3")
32 ENDMACRO(test_argn_macro)
33 Test_Argn_Macro(ignored 3)
35 # case test
36 MACRO(strange_macro m)
37   SET("${m}" strange_macro)
38 ENDMACRO(strange_macro m)
39 STRANGE_MACRO(var)
40 set(second_var "second_var")
41 IF("${var}" STREQUAL "strange_macro" AND "${second_var}" STREQUAL "second_var")
42   PASS("Case Test" "(${var} ${second_var})")
43 ELSE("${var}" STREQUAL "strange_macro" AND "${second_var}" STREQUAL "second_var")
44   FAILED("Case test" "(${var} ${second_var})")
45 ENDIF("${var}" STREQUAL "strange_macro" AND "${second_var}" STREQUAL "second_var")
47 # test backing up command
48 MACRO(ADD_EXECUTABLE exec)
49   _ADD_EXECUTABLE("mini${exec}" ${ARGN})
50 ENDMACRO(ADD_EXECUTABLE)
52 INCLUDE(CheckCSourceCompiles)
53 Check_C_Source_Compiles(
55 #include <stdio.h>
56 #ifdef __CLASSIC_C__
57 int main(){
58   int ac;
59   char*av[];
60 #else
61 int main(int ac, char*av[]){
62 #endif
63   if(ac > 1000){return *av[0];}
64   return 0;
66 SOME_CHECK)
67 IF(SOME_CHECK)
68   MESSAGE("CheckCSourceCompiles works")
69 ELSE(SOME_CHECK)
70   MESSAGE(FATAL_ERROR "CheckCSourceCompiles does not work")
71 ENDIF(SOME_CHECK)
73 INCLUDE(CheckCXXSourceCompiles)
74 Check_CXX_Source_Compiles(
76 #include <stdio.h>
77 int main(int ac, char*av[]){
78   if(ac > 1000){return *av[0];}
79   return 0;
81 SOME_CHECK)
82 IF(SOME_CHECK)
83   MESSAGE("CheckCXXSourceCompiles works")
84 ELSE(SOME_CHECK)
85   MESSAGE(FATAL_ERROR "CheckCXXSourceCompiles does not work")
86 ENDIF(SOME_CHECK)
88 ADD_EXECUTABLE(MacroTest macroTest.c)
90 MACRO(GET_CURRENT_FILE var)
91   SET(${var} ${CMAKE_CURRENT_LIST_FILE})
92 ENDMACRO(GET_CURRENT_FILE)
93 INCLUDE(context.cmake)