added cmake folder

This commit is contained in:
Justin J. Meza 2011-12-31 20:56:23 -08:00
parent 0ec7a7f583
commit f2219a4727
2 changed files with 60 additions and 0 deletions

30
cmake/AddLolTest.cmake Normal file
View File

@ -0,0 +1,30 @@
INCLUDE(ParseArguments)
FUNCTION(ADD_LOL_TEST TEST_NAME)
PARSE_ARGUMENTS(ARG "LOLCODE;OUTPUT;INPUT" "ERROR" ${ARGN})
IF(NOT ARG_LOLCODE)
SET(ARG_LOLCODE ${CMAKE_CURRENT_SOURCE_DIR}/test.lol)
ENDIF(NOT ARG_LOLCODE)
SET( TEST_COMMAND python ${CMAKE_SOURCE_DIR}/test/testDriver.py ${CMAKE_BINARY_DIR}/lci ${ARG_LOLCODE} )
IF(ARG_OUTPUT)
LIST(APPEND TEST_COMMAND -o=${CMAKE_CURRENT_SOURCE_DIR}/${ARG_OUTPUT})
ENDIF(ARG_OUTPUT)
IF(ARG_INPUT)
LIST(APPEND TEST_COMMAND -i=${CMAKE_CURRENT_SOURCE_DIR}/${ARG_INPUT})
ENDIF(ARG_INPUT)
IF(ARG_ERROR)
LIST(APPEND TEST_COMMAND -e)
ENDIF(ARG_ERROR)
IF(PERFORM_MEM_TESTS)
LIST(APPEND TEST_COMMAND -m)
ENDIF(PERFORM_MEM_TESTS)
ADD_TEST(NAME ${TEST_NAME} COMMAND ${TEST_COMMAND})
ENDFUNCTION()

View File

@ -0,0 +1,30 @@
MACRO(PARSE_ARGUMENTS prefix arg_names option_names)
SET(DEFAULT_ARGS)
FOREACH(arg_name ${arg_names})
SET(${prefix}_${arg_name})
ENDFOREACH(arg_name)
FOREACH(option ${option_names})
SET(${prefix}_${option} FALSE)
ENDFOREACH(option)
SET(current_arg_name DEFAULT_ARGS)
SET(current_arg_list)
FOREACH(arg ${ARGN})
SET(larg_names ${arg_names})
LIST(FIND larg_names "${arg}" is_arg_name)
IF (is_arg_name GREATER -1)
SET(${prefix}_${current_arg_name} ${current_arg_list})
SET(current_arg_name ${arg})
SET(current_arg_list)
ELSE (is_arg_name GREATER -1)
SET(loption_names ${option_names})
LIST(FIND loption_names "${arg}" is_option)
IF (is_option GREATER -1)
SET(${prefix}_${arg} TRUE)
ELSE (is_option GREATER -1)
SET(current_arg_list ${current_arg_list} ${arg})
ENDIF (is_option GREATER -1)
ENDIF (is_arg_name GREATER -1)
ENDFOREACH(arg)
SET(${prefix}_${current_arg_name} ${current_arg_list})
ENDMACRO(PARSE_ARGUMENTS)