summaryrefslogtreecommitdiff
path: root/Tests/MacroTest/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Tests/MacroTest/CMakeLists.txt')
-rw-r--r--Tests/MacroTest/CMakeLists.txt91
1 files changed, 91 insertions, 0 deletions
diff --git a/Tests/MacroTest/CMakeLists.txt b/Tests/MacroTest/CMakeLists.txt
new file mode 100644
index 000000000..ef673fd85
--- /dev/null
+++ b/Tests/MacroTest/CMakeLists.txt
@@ -0,0 +1,91 @@
+# a simple C only test case
+cmake_minimum_required (VERSION 2.6)
+PROJECT (MacroTest)
+
+MACRO(FAILED testname)
+ MESSAGE(SEND_ERROR "${testname} failed ${ARGN}")
+ENDMACRO(FAILED)
+
+MACRO(PASS testname)
+ MESSAGE("${testname} passed ${ARGN}")
+ENDMACRO(PASS)
+
+# test ARGC
+MACRO(weird_name)
+ IF("${ARGC}" EQUAL "3")
+ PASS("ARGC")
+ ELSE("${ARGC}" EQUAL "3")
+ FAILED("ARGC" "Got: ${ARGC}")
+ ENDIF("${ARGC}" EQUAL "3")
+ENDMACRO(weird_name)
+WeIrD_nAmE(a1 a2 a3)
+
+# test ARGN
+MACRO(test_argn_macro argument)
+ IF("${ARGN}" EQUAL "3")
+ PASS("ARGN")
+ ELSE("${ARGN}" EQUAL "3")
+ FAILED("ARGN" "Got: ${ARGN}")
+ ENDIF("${ARGN}" EQUAL "3")
+ENDMACRO(test_argn_macro)
+Test_Argn_Macro(ignored 3)
+
+# case test
+MACRO(strange_macro m)
+ SET("${m}" strange_macro)
+ENDMACRO(strange_macro m)
+STRANGE_MACRO(var)
+set(second_var "second_var")
+IF("${var}" STREQUAL "strange_macro" AND "${second_var}" STREQUAL "second_var")
+ PASS("Case Test" "(${var} ${second_var})")
+ELSE("${var}" STREQUAL "strange_macro" AND "${second_var}" STREQUAL "second_var")
+ FAILED("Case test" "(${var} ${second_var})")
+ENDIF("${var}" STREQUAL "strange_macro" AND "${second_var}" STREQUAL "second_var")
+
+# test backing up command
+MACRO(ADD_EXECUTABLE exec)
+ _ADD_EXECUTABLE("mini${exec}" ${ARGN})
+ENDMACRO(ADD_EXECUTABLE)
+
+INCLUDE(CheckCSourceCompiles)
+Check_C_Source_Compiles(
+"
+#include <stdio.h>
+#ifdef __CLASSIC_C__
+int main(){
+ int ac;
+ char*av[];
+#else
+int main(int ac, char*av[]){
+#endif
+ if(ac > 1000){return *av[0];}
+ return 0;
+}"
+SOME_CHECK)
+IF(SOME_CHECK)
+ MESSAGE("CheckCSourceCompiles works")
+ELSE(SOME_CHECK)
+ MESSAGE(FATAL_ERROR "CheckCSourceCompiles does not work")
+ENDIF(SOME_CHECK)
+
+INCLUDE(CheckCXXSourceCompiles)
+Check_CXX_Source_Compiles(
+"
+#include <stdio.h>
+int main(int ac, char*av[]){
+ if(ac > 1000){return *av[0];}
+ return 0;
+}"
+SOME_CHECK)
+IF(SOME_CHECK)
+ MESSAGE("CheckCXXSourceCompiles works")
+ELSE(SOME_CHECK)
+ MESSAGE(FATAL_ERROR "CheckCXXSourceCompiles does not work")
+ENDIF(SOME_CHECK)
+
+ADD_EXECUTABLE(MacroTest macroTest.c)
+
+MACRO(GET_CURRENT_FILE var)
+ SET(${var} ${CMAKE_CURRENT_LIST_FILE})
+ENDMACRO(GET_CURRENT_FILE)
+INCLUDE(context.cmake)