2013-07-18 16:12:07 +00:00
|
|
|
configure_file("${LEAN_SOURCE_DIR}/shell/version.h.in" "${LEAN_BINARY_DIR}/version.h")
|
2013-07-17 05:10:18 +00:00
|
|
|
include_directories("${LEAN_BINARY_DIR}")
|
|
|
|
add_executable(lean lean.cpp)
|
2013-12-04 19:21:26 +00:00
|
|
|
add_dependencies(lean githash)
|
2013-07-18 16:12:07 +00:00
|
|
|
target_link_libraries(lean ${EXTRA_LIBS})
|
2013-12-06 05:54:55 +00:00
|
|
|
|
2013-12-24 06:04:19 +00:00
|
|
|
function(add_extra_dependency indir file)
|
|
|
|
get_filename_component(FNAME ${file} NAME)
|
|
|
|
add_custom_command(OUTPUT ${LEAN_BINARY_DIR}/shell/${indir}/${FNAME}
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy ${file} ${LEAN_BINARY_DIR}/shell/${indir}/${FNAME}
|
|
|
|
MAIN_DEPENDENCY ${file})
|
|
|
|
add_custom_target("${FNAME}_extra" DEPENDS ${LEAN_BINARY_DIR}/shell/${indir}/${FNAME})
|
|
|
|
add_dependencies(lean "${FNAME}_extra")
|
|
|
|
endfunction()
|
|
|
|
|
2013-12-23 05:00:32 +00:00
|
|
|
function(add_extra_module indir)
|
|
|
|
file(GLOB EXTRA_LUA_FILES "${LEAN_SOURCE_DIR}/extra/${indir}/*.lua")
|
|
|
|
foreach(FILE ${EXTRA_LUA_FILES})
|
2013-12-24 06:04:19 +00:00
|
|
|
add_extra_dependency(${indir} ${FILE})
|
|
|
|
endforeach(FILE)
|
|
|
|
file(GLOB EXTRA_LEAN_FILES "${LEAN_SOURCE_DIR}/extra/${indir}/*.lean")
|
|
|
|
foreach(FILE ${EXTRA_LEAN_FILES})
|
|
|
|
add_extra_dependency(${indir} ${FILE})
|
2013-12-23 05:00:32 +00:00
|
|
|
endforeach(FILE)
|
|
|
|
endfunction()
|
|
|
|
|
|
|
|
add_extra_module(.)
|
|
|
|
|
2013-12-09 20:17:43 +00:00
|
|
|
add_test(example1_stdin1 ${LEAN_SOURCE_DIR}/cmake/redirect.sh ${CMAKE_CURRENT_BINARY_DIR}/lean "${LEAN_SOURCE_DIR}/../tests/lean/single.lean")
|
|
|
|
add_test(example1_stdin2 ${LEAN_SOURCE_DIR}/cmake/redirect.sh ${CMAKE_CURRENT_BINARY_DIR}/lean "-l" "${LEAN_SOURCE_DIR}/../tests/lean/single.lean")
|
|
|
|
add_test(example1_stdin3 ${LEAN_SOURCE_DIR}/cmake/redirect.sh ${CMAKE_CURRENT_BINARY_DIR}/lean "--lean" "${LEAN_SOURCE_DIR}/../tests/lean/single.lean")
|
|
|
|
add_test(lean_help1 ${CMAKE_CURRENT_BINARY_DIR}/lean --help)
|
|
|
|
add_test(lean_help2 ${CMAKE_CURRENT_BINARY_DIR}/lean --h)
|
|
|
|
add_test(lean_version1 ${CMAKE_CURRENT_BINARY_DIR}/lean --version)
|
|
|
|
add_test(lean_version2 ${CMAKE_CURRENT_BINARY_DIR}/lean --v)
|
|
|
|
add_test(lean_ghash1 ${CMAKE_CURRENT_BINARY_DIR}/lean -g)
|
|
|
|
add_test(lean_ghash2 ${CMAKE_CURRENT_BINARY_DIR}/lean --githash)
|
2013-12-23 01:56:53 +00:00
|
|
|
add_test(lean_path1 ${CMAKE_CURRENT_BINARY_DIR}/lean -p)
|
|
|
|
add_test(lean_path2 ${CMAKE_CURRENT_BINARY_DIR}/lean --path)
|
2013-12-09 20:17:43 +00:00
|
|
|
add_test(lean_luahook1 ${CMAKE_CURRENT_BINARY_DIR}/lean --luahook=100 "${LEAN_SOURCE_DIR}/../tests/lua/big.lua")
|
|
|
|
add_test(lean_luahook2 ${CMAKE_CURRENT_BINARY_DIR}/lean -c 100 "${LEAN_SOURCE_DIR}/../tests/lua/big.lua")
|
|
|
|
add_test(lean_lua1 ${LEAN_SOURCE_DIR}/cmake/redirect.sh "${CMAKE_CURRENT_BINARY_DIR}/lean" "--lua" "${LEAN_SOURCE_DIR}/../tests/lua/single.lua")
|
|
|
|
add_test(lean_lua2 ${LEAN_SOURCE_DIR}/cmake/redirect.sh "${CMAKE_CURRENT_BINARY_DIR}/lean" "-u" "${LEAN_SOURCE_DIR}/../tests/lua/single.lua")
|
|
|
|
add_test(lean_unknown_option ${LEAN_SOURCE_DIR}/cmake/check_failure.sh "${CMAKE_CURRENT_BINARY_DIR}/lean" "-z")
|
2013-12-10 18:53:31 +00:00
|
|
|
add_test(lean_unknown_file1 ${LEAN_SOURCE_DIR}/cmake/check_failure.sh "${CMAKE_CURRENT_BINARY_DIR}/lean" "boofoo.lean")
|
|
|
|
add_test(lean_unknown_file2 ${LEAN_SOURCE_DIR}/cmake/check_failure.sh "${CMAKE_CURRENT_BINARY_DIR}/lean" "boofoo.lua")
|
2013-12-09 20:17:43 +00:00
|
|
|
|
2013-12-06 05:54:55 +00:00
|
|
|
# LEAN EXAMPLES
|
|
|
|
file(GLOB LEANEXAMPLES "${LEAN_SOURCE_DIR}/../examples/lean/*.lean")
|
|
|
|
FOREACH(T ${LEANEXAMPLES})
|
|
|
|
GET_FILENAME_COMPONENT(T_NAME ${T} NAME)
|
|
|
|
add_test(NAME "leanex_${T_NAME}"
|
|
|
|
COMMAND ${CMAKE_CURRENT_BINARY_DIR}/lean ${T})
|
|
|
|
ENDFOREACH(T)
|
|
|
|
|
2013-12-06 00:56:20 +00:00
|
|
|
# LEAN TESTS
|
2013-11-18 23:02:12 +00:00
|
|
|
file(GLOB LEANTESTS "${LEAN_SOURCE_DIR}/../tests/lean/*.lean")
|
|
|
|
FOREACH(T ${LEANTESTS})
|
|
|
|
GET_FILENAME_COMPONENT(T_NAME ${T} NAME)
|
|
|
|
add_test(NAME "leantest_${T_NAME}"
|
|
|
|
WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/lean"
|
|
|
|
COMMAND "./test_single.sh" "${CMAKE_CURRENT_BINARY_DIR}/lean" ${T})
|
|
|
|
ENDFOREACH(T)
|
2013-12-20 00:16:56 +00:00
|
|
|
|
|
|
|
# LEAN PP TESTS
|
|
|
|
# For making sure that Lean can parse the output produced by its pretty printer
|
|
|
|
file(GLOB LEANPPTESTS "${LEAN_SOURCE_DIR}/../tests/lean/*.lean")
|
|
|
|
FOREACH(T ${LEANPPTESTS})
|
|
|
|
GET_FILENAME_COMPONENT(T_NAME ${T} NAME)
|
|
|
|
add_test(NAME "leanpptest_${T_NAME}"
|
|
|
|
WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/lean"
|
|
|
|
COMMAND "./test_single_pp.sh" "${CMAKE_CURRENT_BINARY_DIR}/lean" ${T})
|
|
|
|
ENDFOREACH(T)
|
2013-11-18 23:02:12 +00:00
|
|
|
|
2013-12-06 00:56:20 +00:00
|
|
|
# LEAN INTERACTIVE TESTS
|
|
|
|
file(GLOB LEANINTERACTIVETESTS "${LEAN_SOURCE_DIR}/../tests/lean/interactive/*.lean")
|
|
|
|
FOREACH(T ${LEANINTERACTIVETESTS})
|
|
|
|
GET_FILENAME_COMPONENT(T_NAME ${T} NAME)
|
|
|
|
add_test(NAME "leaninteractivetest_${T_NAME}"
|
|
|
|
WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/lean/interactive"
|
|
|
|
COMMAND "./test_single.sh" "${CMAKE_CURRENT_BINARY_DIR}/lean" ${T})
|
|
|
|
ENDFOREACH(T)
|
|
|
|
|
|
|
|
# LEAN SLOW TESTS
|
2013-11-18 23:02:12 +00:00
|
|
|
file(GLOB LEANSLOWTESTS "${LEAN_SOURCE_DIR}/../tests/lean/slow/*.lean")
|
|
|
|
FOREACH(T ${LEANSLOWTESTS})
|
|
|
|
GET_FILENAME_COMPONENT(T_NAME ${T} NAME)
|
|
|
|
add_test(NAME "leanslowtest_${T_NAME}"
|
|
|
|
WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/lean/slow"
|
|
|
|
COMMAND "../test_single.sh" "${CMAKE_CURRENT_BINARY_DIR}/lean" ${T})
|
|
|
|
ENDFOREACH(T)
|
2013-11-20 00:47:47 +00:00
|
|
|
|
2013-12-06 00:56:20 +00:00
|
|
|
# LEAN LUA TESTS
|
2013-11-20 00:47:47 +00:00
|
|
|
file(GLOB LEANLUATESTS "${LEAN_SOURCE_DIR}/../tests/lua/*.lua")
|
|
|
|
FOREACH(T ${LEANLUATESTS})
|
|
|
|
GET_FILENAME_COMPONENT(T_NAME ${T} NAME)
|
|
|
|
add_test(NAME "leanluatest_${T_NAME}"
|
|
|
|
WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/lua"
|
|
|
|
COMMAND "./test_single.sh" "${CMAKE_CURRENT_BINARY_DIR}/lean" ${T})
|
|
|
|
ENDFOREACH(T)
|
|
|
|
|
2013-12-06 00:56:20 +00:00
|
|
|
# LEAN LUA DOCS
|
2013-11-20 00:47:47 +00:00
|
|
|
file(GLOB LEANLUADOCS "${LEAN_SOURCE_DIR}/../doc/lua/*.md")
|
|
|
|
FOREACH(T ${LEANLUADOCS})
|
|
|
|
GET_FILENAME_COMPONENT(T_NAME ${T} NAME)
|
|
|
|
add_test(NAME "leanluadoc_${T_NAME}"
|
|
|
|
WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../doc/lua"
|
|
|
|
COMMAND "./test_single.sh" "${CMAKE_CURRENT_BINARY_DIR}/lean" ${T})
|
|
|
|
ENDFOREACH(T)
|
|
|
|
|
2013-12-06 00:56:20 +00:00
|
|
|
# LEAN LUA THREAD TESTS
|
2013-11-20 00:47:47 +00:00
|
|
|
if((${CYGWIN} EQUAL "1") OR (${CMAKE_SYSTEM_NAME} MATCHES "Linux"))
|
2013-12-09 22:56:48 +00:00
|
|
|
if ((NOT (${CMAKE_CXX_COMPILER} MATCHES "clang")) AND (${MULTI_THREAD} MATCHES "ON"))
|
2013-11-27 23:06:07 +00:00
|
|
|
file(GLOB LEANLUATHREADTESTS "${LEAN_SOURCE_DIR}/../tests/lua/threads/*.lua")
|
|
|
|
FOREACH(T ${LEANLUATHREADTESTS})
|
|
|
|
GET_FILENAME_COMPONENT(T_NAME ${T} NAME)
|
|
|
|
add_test(NAME "leanluathreadtest_${T_NAME}"
|
|
|
|
WORKING_DIRECTORY "${LEAN_SOURCE_DIR}/../tests/lua/threads"
|
|
|
|
COMMAND "../test_single.sh" "${CMAKE_CURRENT_BINARY_DIR}/lean" ${T})
|
|
|
|
ENDFOREACH(T)
|
2013-11-20 00:47:47 +00:00
|
|
|
endif()
|
|
|
|
endif()
|