1 cmake_minimum_required(VERSION 2.8)
4 include(ExternalProject)
6 include("${CMAKE_CURRENT_SOURCE_DIR}/LocalOverrides.cmake" OPTIONAL)
7 include("${CMAKE_CURRENT_BINARY_DIR}/LocalOverrides.cmake" OPTIONAL)
10 if(DEFINED ENV{CTEST_REAL_HOME})
11 set(HOME "$ENV{CTEST_REAL_HOME}")
13 set(HOME "$ENV{HOME}")
16 message(STATUS "HOME='${HOME}'")
19 set(repo "git://public.kitware.com/cse.git")
21 message(STATUS "repo='${repo}'")
24 set(tag "cc1dcb95439a21ab1d58f444d93481598414196e")
26 message(STATUS "tag='${tag}'")
28 string(SUBSTRING "${tag}" 0 8 shorttag)
30 set(base_dir "${HOME}/.cmake/Contracts/${PROJECT_NAME}/${shorttag}")
31 set(binary_dir "${base_dir}/build")
32 set(script_dir "${base_dir}")
33 set(source_dir "${base_dir}/src")
35 if(NOT DEFINED BUILDNAME)
36 set(BUILDNAME "CMakeContract-${shorttag}")
38 message(STATUS "BUILDNAME='${BUILDNAME}'")
43 message(STATUS "SITE='${SITE}'")
45 if(NOT DEFINED PROCESSOR_COUNT)
47 set(PROCESSOR_COUNT 0)
50 set(cpuinfo_file "/proc/cpuinfo")
51 if(EXISTS "${cpuinfo_file}")
52 file(STRINGS "${cpuinfo_file}" procs REGEX "^processor.: [0-9]+$")
53 list(LENGTH procs PROCESSOR_COUNT)
58 find_program(cmd_sysctl "sysctl")
60 execute_process(COMMAND ${cmd_sysctl} -n hw.ncpu
61 OUTPUT_VARIABLE PROCESSOR_COUNT
62 OUTPUT_STRIP_TRAILING_WHITESPACE)
68 set(PROCESSOR_COUNT "$ENV{NUMBER_OF_PROCESSORS}")
71 message(STATUS "PROCESSOR_COUNT='${PROCESSOR_COUNT}'")
74 if(NOT GIT_EXECUTABLE)
75 message(FATAL_ERROR "error: could not find git")
76 # adjust PATH to find git, or set GIT_EXECUTABLE in LocalOverrides.cmake
78 message(STATUS "GIT_EXECUTABLE='${GIT_EXECUTABLE}'")
81 "${CMAKE_CURRENT_SOURCE_DIR}/Dashboard.cmake.in"
82 "${script_dir}/Dashboard.cmake"
85 # Source dir for this project exists outside the CMake build tree because it
88 if(EXISTS "${source_dir}/.git")
89 # If it exists already, download is a complete no-op:
90 ExternalProject_Add(download-${PROJECT_NAME}
97 # If it does not yet exist, download clones the git repository:
98 ExternalProject_Add(download-${PROJECT_NAME}
99 SOURCE_DIR "${source_dir}"
100 GIT_REPOSITORY "${repo}"
108 ExternalProject_Add(build-${PROJECT_NAME}
111 BUILD_COMMAND ${CMAKE_CTEST_COMMAND} -S "${script_dir}/Dashboard.cmake"
113 DEPENDS download-${PROJECT_NAME}