|
| 1 | +# ========================== |
| 2 | +# = libtuntap CTest script = |
| 3 | +# ========================== |
| 4 | + |
| 5 | +# CDash |
| 6 | +set(MODEL "Experimental") |
| 7 | +set(PROJECT_NAME "libtuntap") |
| 8 | + |
| 9 | +# Github |
| 10 | +set(GITHUB_ACCOUNT "LaKabane") |
| 11 | +set(GITHUB_PROJECT "${PROJECT_NAME}") |
| 12 | +set(GIT_BRANCH "master") |
| 13 | + |
| 14 | +# Compiler |
| 15 | +set(COMPILER_NAME "") |
| 16 | +set(COMPILER_VERSION "") |
| 17 | + |
| 18 | +# Tunning |
| 19 | +#set(OPTION_BUILD "-j16") |
| 20 | + |
| 21 | +include("host.ctest") |
| 22 | + |
| 23 | +if ("${MODEL}" STREQUAL "") |
| 24 | + set(MODEL "Experimental") |
| 25 | +endif() |
| 26 | +if ("${PROJECT_NAME}" STREQUAL "") |
| 27 | + message(FATAL_ERROR "Missing PROJECT_NAME") |
| 28 | +endif() |
| 29 | +if ("${GITHUB_PROJECT}" STREQUAL "") |
| 30 | + set(GITHUB_PROJECT "${PROJECT_NAME}") |
| 31 | +endif() |
| 32 | +if ("${GITHUB_ACCOUNT}" STREQUAL "") |
| 33 | + set(GITHUB_ACCOUNT "LaKabane") |
| 34 | +endif() |
| 35 | +if ("${GIT_BRANCH}" STREQUAL "") |
| 36 | + set(GIT_BRANCH "master") |
| 37 | +endif() |
| 38 | +if ("${OS_NAME}" STREQUAL "") |
| 39 | + message(FATAL_ERROR "Missing OS_NAME") |
| 40 | +endif() |
| 41 | +if ("${OS_VERSION}" STREQUAL "") |
| 42 | + message(FATAL_ERROR "Missing OS_VERSION") |
| 43 | +endif() |
| 44 | +if ("${ARCH_NAME}" STREQUAL "") |
| 45 | + message(FATAL_ERROR "Missing ARCH_NAME") |
| 46 | +endif() |
| 47 | +if ("${COMPILER_NAME}" STREQUAL "") |
| 48 | + message(FATAL_ERROR "Missing COMPILER_NAME") |
| 49 | +endif() |
| 50 | +if ("${COMPILER_VERSION}" STREQUAL "") |
| 51 | + message(FATAL_ERROR "Missing COMPILER_VERSION") |
| 52 | +endif() |
| 53 | + |
| 54 | +string(REPLACE "/" "_" CLEANED_GIT_BRANCH ${GIT_BRANCH}) |
| 55 | + |
| 56 | +# ----------------- |
| 57 | +# - CTest Options - |
| 58 | +# ----------------- |
| 59 | +set(CTEST_DASHBOARD_ROOT "$ENV{HOME}/build") |
| 60 | +set(CTEST_PROJECT_DIRECTORY "${PROJECT_NAME}-${CLEANED_GIT_BRANCH}") |
| 61 | +set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_PROJECT_DIRECTORY}") |
| 62 | +set(CTEST_BINARY_DIRECTORY |
| 63 | + "${CTEST_DASHBOARD_ROOT}/${CTEST_PROJECT_DIRECTORY}-build") |
| 64 | + |
| 65 | +# -------------------------- |
| 66 | +# - CTest Host Environment - |
| 67 | +# -------------------------- |
| 68 | +set(${CMAKE_SYSTEM_NAME} True) |
| 69 | + |
| 70 | +# Craft GitHub URL |
| 71 | +set(GITHUB "git://github.com/${GITHUB_ACCOUNT}/${GITHUB_PROJECT}.git") |
| 72 | + |
| 73 | +# Find make XXX: This UNIXish |
| 74 | +find_program(MAKE NAMES make) |
| 75 | + |
| 76 | +# Find git |
| 77 | +find_program(CTEST_GIT_COMMAND NAMES git) |
| 78 | +set(CTEST_CHECKOUT_COMMAND |
| 79 | + "${CTEST_GIT_COMMAND} clone --branch ${GIT_BRANCH} ${GITHUB} ${CTEST_PROJECT_DIRECTORY}") |
| 80 | +set(CTEST_UPDATE_COMMAND "${CTEST_GIT_COMMAND}") |
| 81 | + |
| 82 | +# Find optional programs |
| 83 | +if (Linux) |
| 84 | + find_program(CTEST_COVERAGE_COMMAND NAMES gcov) |
| 85 | + find_program(CTEST_MEMORYCHECK_COMMAND NAMES valgrind) |
| 86 | +endif(Linux) |
| 87 | + |
| 88 | +# Hostname |
| 89 | +find_program(HOSTNAME_CMD NAMES hostname) |
| 90 | +exec_program(${HOSTNAME_CMD} ARGS OUTPUT_VARIABLE HOSTNAME) |
| 91 | +set(CTEST_SITE "${HOSTNAME}") |
| 92 | + |
| 93 | +# Build name |
| 94 | +set(CTEST_BUILD_NAME "${OS_NAME}-${OS_VERSION}-${ARCH_NAME}-${COMPILER_NAME}-${COMPILER_VERSION}-${GIT_BRANCH}") |
| 95 | + |
| 96 | +# CMake generation |
| 97 | +if (UNIX) |
| 98 | + set(CTEST_CMAKE_GENERATOR "Unix Makefiles") |
| 99 | +else (WIN32) |
| 100 | + set(CTEST_CMAKE_GENERATOR "Visual Studio") |
| 101 | +endif () |
| 102 | +set(CTEST_CONFIGURE_COMMAND |
| 103 | + "${CMAKE_COMMAND} \"-DCMAKE_C_COMPILER=${COMPILER_NAME}\"") |
| 104 | +set(CTEST_CONFIGURE_COMMAND "${CTEST_CONFIGURE_COMMAND} ${CONFIGURE_COMMAND}") |
| 105 | +set(CTEST_CONFIGURE_COMMAND "${CTEST_CONFIGURE_COMMAND} \"-G${CTEST_CMAKE_GENERATOR}\"") |
| 106 | +set(CTEST_CONFIGURE_COMMAND "${CTEST_CONFIGURE_COMMAND} \"${CTEST_SOURCE_DIRECTORY}\"") |
| 107 | + |
| 108 | +# make options |
| 109 | +set(CTEST_BUILD_COMMAND "${MAKE} ${OPTION_BUILD}") |
| 110 | + |
| 111 | +# ----------------- |
| 112 | +# - CDash Options - |
| 113 | +# ----------------- |
| 114 | +set(CTEST_PROJECT_NAME "${PROJECT_NAME}") |
| 115 | +set(CTEST_NIGHTLY_START_TIME "00:00:00 EST") |
| 116 | +set(CTEST_DROP_METHOD "http") |
| 117 | +set(CTEST_DROP_SITE "farm.medu.se") |
| 118 | +set(CTEST_DROP_LOCATION "/submit.php?project=${PROJECT_NAME}") |
| 119 | +set(CTEST_DROP_SITE_CDASH TRUE) |
| 120 | + |
| 121 | +# --------------- |
| 122 | +# - Ctest rules - |
| 123 | +# --------------- |
| 124 | +if (NOT EXISTS "${CTEST_SOURCE_DIRECTORY}") |
| 125 | + message(" -- Clone ${GITHUB} branch ${GIT_BRANCH} --") |
| 126 | +else() |
| 127 | + # Prevent CTest from failling here |
| 128 | + set(CTEST_CHECKOUT_COMMAND "true") |
| 129 | +endif() |
| 130 | + |
| 131 | +message(" -- Start ${MODEL}-${CTEST_BUILD_NAME} --") |
| 132 | +ctest_start(${MODEL}) |
| 133 | + |
| 134 | +# This line totally wipe out the build directory |
| 135 | +ctest_empty_binary_directory(${CTEST_BINARY_DIRECTORY}) |
| 136 | + |
| 137 | +message(" -- Update ${GIT_BRANCH} --") |
| 138 | +ctest_update(RETURN_VALUE RET) |
| 139 | +if (${RET} EQUAL -1) |
| 140 | + message(" -- Can't update --") |
| 141 | +endif() |
| 142 | + |
| 143 | +if (${RET} EQUAL 0) |
| 144 | + message(" -- Configure --") |
| 145 | + ctest_configure(RETURN_VALUE RET) |
| 146 | + if (${RET} EQUAL -1) |
| 147 | + message(" -- Can't configure --") |
| 148 | + endif() |
| 149 | +endif() |
| 150 | + |
| 151 | +if (${RET} EQUAL 0) |
| 152 | + message(" -- Build --") |
| 153 | + ctest_build(RETURN_VALUE RET) |
| 154 | + if (${RET} EQUAL -1) |
| 155 | + message(" -- Can't build --") |
| 156 | + endif() |
| 157 | +endif() |
| 158 | + |
| 159 | +message(" -- Done --") |
| 160 | + |
0 commit comments