1set(CTEST_PROJECT_NAME "tokudb") 2get_filename_component(CTEST_SOURCE_DIRECTORY "${CTEST_SCRIPT_DIRECTORY}/.." ABSOLUTE) 3 4## given an executable, follows symlinks and resolves paths until it runs 5## out of symlinks, then gives you the basename 6macro(real_executable_name filename_input out) 7 set(res 0) 8 set(filename ${filename_input}) 9 while(NOT(res)) 10 execute_process( 11 COMMAND which ${filename} 12 RESULT_VARIABLE res 13 OUTPUT_VARIABLE full_filename 14 OUTPUT_STRIP_TRAILING_WHITESPACE) 15 if(NOT(res)) 16 execute_process( 17 COMMAND readlink ${full_filename} 18 RESULT_VARIABLE res 19 OUTPUT_VARIABLE link_target 20 OUTPUT_STRIP_TRAILING_WHITESPACE) 21 if(NOT(res)) 22 execute_process( 23 COMMAND dirname ${full_filename} 24 OUTPUT_VARIABLE filepath 25 OUTPUT_STRIP_TRAILING_WHITESPACE) 26 set(filename "${filepath}/${link_target}") 27 else() 28 set(filename ${full_filename}) 29 endif() 30 else() 31 set(filename ${filename}) 32 endif() 33 endwhile() 34 execute_process( 35 COMMAND basename ${filename} 36 OUTPUT_VARIABLE real_filename 37 OUTPUT_STRIP_TRAILING_WHITESPACE) 38 set(${out} ${real_filename}) 39endmacro(real_executable_name) 40 41## gives you `uname ${flag}` 42macro(uname flag out) 43 execute_process( 44 COMMAND uname ${flag} 45 OUTPUT_VARIABLE ${out} 46 OUTPUT_STRIP_TRAILING_WHITESPACE) 47endmacro(uname) 48 49## gather machine info 50uname("-m" machine_type) 51get_filename_component(branchname "${CTEST_SOURCE_DIRECTORY}" NAME) 52 53set(ncpus 2) 54execute_process( 55 COMMAND grep bogomips /proc/cpuinfo 56 COMMAND wc -l 57 RESULT_VARIABLE res 58 OUTPUT_VARIABLE proc_ncpus 59 OUTPUT_STRIP_TRAILING_WHITESPACE 60 ) 61if(NOT res) 62 set(ncpus ${proc_ncpus}) 63endif() 64 65## construct BUILDNAME 66set(BUILDNAME "${branchname} ${CMAKE_SYSTEM} ${machine_type}" CACHE STRING "CTest build name" FORCE) 67set(CTEST_BUILD_NAME "${BUILDNAME}") 68set(CTEST_CMAKE_GENERATOR "Unix Makefiles") 69site_name(CTEST_SITE) 70 71find_program(CTEST_SVN_COMMAND NAMES svn) 72find_program(CTEST_MEMORYCHECK_COMMAND NAMES valgrind) 73find_program(CTEST_COVERAGE_COMMAND NAMES gcov) 74 75list(APPEND CTEST_NOTES_FILES 76 "${CTEST_SCRIPT_DIRECTORY}/${CTEST_SCRIPT_NAME}" 77 "${CMAKE_CURRENT_LIST_FILE}" 78 ) 79 80set(all_opts 81 -DBUILD_TESTING=ON 82 -DUSE_CILK=OFF 83 ) 84set(rel_opts 85 ${all_opts} 86 -DCMAKE_BUILD_TYPE=Release 87 ) 88set(dbg_opts 89 ${all_opts} 90 -DCMAKE_BUILD_TYPE=Debug 91 ) 92set(cov_opts 93 ${all_opts} 94 -DCMAKE_BUILD_TYPE=Debug 95 -DUSE_GCOV=ON 96 ) 97 98set(CTEST_BINARY_DIRECTORY "${CTEST_SOURCE_DIRECTORY}/NightlyRelease") 99ctest_empty_binary_directory(${CTEST_BINARY_DIRECTORY}) 100ctest_start(Nightly ${CTEST_SOURCE_DIRECTORY} ${CTEST_BINARY_DIRECTORY}) 101ctest_update(SOURCE ${CTEST_SOURCE_DIRECTORY}) 102ctest_configure(BUILD ${CTEST_BINARY_DIRECTORY} SOURCE ${CTEST_SOURCE_DIRECTORY} 103 OPTIONS "${rel_opts}") 104configure_file("${CTEST_SOURCE_DIRECTORY}/CTestConfig.cmake" "${CTEST_BINARY_DIRECTORY}/CTestConfig.cmake") 105configure_file("${CTEST_SOURCE_DIRECTORY}/CTestCustom.cmake" "${CTEST_BINARY_DIRECTORY}/CTestCustom.cmake") 106ctest_build(BUILD ${CTEST_BINARY_DIRECTORY}) 107ctest_read_custom_files("${CTEST_BINARY_DIRECTORY}") 108ctest_test(BUILD ${CTEST_BINARY_DIRECTORY} PARALLEL_LEVEL ${ncpus}) 109ctest_submit() 110 111set(CTEST_BINARY_DIRECTORY "${CTEST_SOURCE_DIRECTORY}/NightlyDebug") 112ctest_empty_binary_directory(${CTEST_BINARY_DIRECTORY}) 113ctest_start(Nightly ${CTEST_SOURCE_DIRECTORY} ${CTEST_BINARY_DIRECTORY}) 114ctest_configure(BUILD ${CTEST_BINARY_DIRECTORY} SOURCE ${CTEST_SOURCE_DIRECTORY} 115 OPTIONS "${dbg_opts}") 116configure_file("${CTEST_SOURCE_DIRECTORY}/CTestConfig.cmake" "${CTEST_BINARY_DIRECTORY}/CTestConfig.cmake") 117configure_file("${CTEST_SOURCE_DIRECTORY}/CTestCustom.cmake" "${CTEST_BINARY_DIRECTORY}/CTestCustom.cmake") 118ctest_build(BUILD ${CTEST_BINARY_DIRECTORY}) 119ctest_read_custom_files("${CTEST_BINARY_DIRECTORY}") 120ctest_test(BUILD ${CTEST_BINARY_DIRECTORY} PARALLEL_LEVEL ${ncpus}) 121ctest_memcheck(BUILD ${CTEST_BINARY_DIRECTORY} PARALLEL_LEVEL ${ncpus}) 122ctest_submit() 123 124set(CTEST_BINARY_DIRECTORY "${CTEST_SOURCE_DIRECTORY}/NightlyCoverage") 125ctest_empty_binary_directory(${CTEST_BINARY_DIRECTORY}) 126ctest_start(Nightly ${CTEST_SOURCE_DIRECTORY} ${CTEST_BINARY_DIRECTORY}) 127ctest_configure(BUILD ${CTEST_BINARY_DIRECTORY} SOURCE ${CTEST_SOURCE_DIRECTORY} 128 OPTIONS "${cov_opts}") 129configure_file("${CTEST_SOURCE_DIRECTORY}/CTestConfig.cmake" "${CTEST_BINARY_DIRECTORY}/CTestConfig.cmake") 130configure_file("${CTEST_SOURCE_DIRECTORY}/CTestCustom.cmake" "${CTEST_BINARY_DIRECTORY}/CTestCustom.cmake") 131ctest_build(BUILD ${CTEST_BINARY_DIRECTORY}) 132ctest_read_custom_files("${CTEST_BINARY_DIRECTORY}") 133ctest_test(BUILD ${CTEST_BINARY_DIRECTORY} PARALLEL_LEVEL ${ncpus}) 134ctest_coverage(BUILD ${CTEST_BINARY_DIRECTORY} LABELS RUN_GCOV) 135ctest_submit() 136