|
- ##
- ## HINTS: ctest -Ddashboard_model=Continuous -S $(pwd)/lapack/lapack_build.cmake
- ## HINTS: ctest -Ddashboard_model=Experimental -S $(pwd)/lapack/lapack_build.cmake
- ## HINTS: ctest -Ddashboard_model=Nightly -S $(pwd)/lapack/lapack_build.cmake
- ##
-
- cmake_minimum_required(VERSION 2.8.10)
- ###################################################################
- # The values in this section must always be provided
- ###################################################################
- if(UNIX)
- if(NOT compiler)
- set(compiler gcc)
- endif()
- if(NOT c_compiler)
- set(c_compiler gcc)
- endif()
- if(NOT full_compiler)
- set(full_compiler g++)
- endif()
- endif()
-
- if(EXISTS "/proc/cpuinfo")
- set(parallel 1)
- file(STRINGS "/proc/cpuinfo" CPUINFO)
- foreach(line ${CPUINFO})
- if("${line}" MATCHES processor)
- math(EXPR parallel "${parallel} + 1")
- endif()
- endforeach()
- endif()
-
- if(WIN32)
- set(VSLOCATIONS
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\6.0\\Setup;VsCommonDir]/MSDev98/Bin"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\7.0\\Setup\\VS;EnvironmentDirectory]"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\7.1\\Setup\\VS;EnvironmentDirectory]"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0;InstallDir]"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0\\Setup;Dbghelp_path]"
- "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\9.0\\Setup\\VS;EnvironmentDirectory]"
- )
- set(GENERATORS
- "Visual Studio 6"
- "Visual Studio 7"
- "Visual Studio 7 .NET 2003"
- "Visual Studio 8 2005"
- "Visual Studio 8 2005"
- "Visual Studio 9 2008"
- )
- set(vstype 0)
- foreach(p ${VSLOCATIONS})
- get_filename_component(VSPATH ${p} PATH)
- if(NOT "${VSPATH}" STREQUAL "/" AND EXISTS "${VSPATH}")
- message(" found VS install = ${VSPATH}")
- set(genIndex ${vstype})
- endif()
- math(EXPR vstype "${vstype} +1")
- endforeach()
- if(NOT DEFINED genIndex)
- message(FATAL_ERROR "Could not find installed visual stuido")
- endif()
- list(GET GENERATORS ${genIndex} GENERATOR)
- set(CTEST_CMAKE_GENERATOR "${GENERATOR}")
- message("${CTEST_CMAKE_GENERATOR} - found")
- set(compiler cl)
- endif()
-
- find_program(HOSTNAME NAMES hostname)
- find_program(UNAME NAMES uname)
-
- # Get the build name and hostname
- execute_process(${HOSTNAME}
- OUTPUT_VARIABLE hostname)
- string(REGEX REPLACE "[/\\\\+<> #]" "-" hostname "${hostname}")
-
- message("HOSTNAME: ${hostname}")
- # default to parallel 1
- if(NOT DEFINED parallel)
- set(parallel 1)
- endif()
-
- find_package(Git REQUIRED)
-
- set(CTEST_GIT_COMMAND ${GIT_EXECUTABLE})
- set(CTEST_UPDATE_COMMAND ${GIT_EXECUTABLE})
- macro(getuname name flag)
- execute_process(COMMAND "${UNAME}" "${flag}"
- OUTPUT_VARIABLE "${name}")
- string(REGEX REPLACE "[/\\\\+<> #]" "-" "${name}" "${${name}}")
- string(REGEX REPLACE "^(......|.....|....|...|..|.).*" "\\1" "${name}" "${${name}}")
- endmacro()
-
- getuname(osname -s)
- getuname(osver -v)
- getuname(osrel -r)
- getuname(cpu -m)
- if("${osname}" MATCHES Darwin)
- find_program(SW_VER sw_vers)
- execute_process(COMMAND "${SW_VER}" -productVersion OUTPUT_VARIABLE osver)
- string(REPLACE "\n" "" osver "${osver}")
- set(osname "MacOSX")
- set(osrel "")
- if("${cpu}" MATCHES "Power")
- set(cpu "ppc")
- endif()
- endif()
-
- if(NOT compiler)
- message(FATAL_ERROR "compiler must be set")
- endif()
-
-
- set(BUILDNAME "${osname}${osver}${osrel}${cpu}-${compiler}")
- message("BUILDNAME: ${BUILDNAME}")
-
- # this is the module name that should be checked out
- set (CTEST_DIR_NAME "lapackGIT")
-
- # Settings:
- message("NOSPACES = ${NOSPACES}")
- if(NOSPACES)
- set(CTEST_DASHBOARD_ROOT "$ENV{HOME}/Dashboards/MyTests-${BUILDNAME}")
- else()
- set(CTEST_DASHBOARD_ROOT "$ENV{HOME}/Dashboards/My Tests-${BUILDNAME}")
- endif()
- set(CTEST_SITE "${hostname}")
- set(CTEST_BUILD_NAME "${BUILDNAME}")
- set(CTEST_TEST_TIMEOUT "36000")
-
- # GIT command and the checkout command
- # Select Git source to use.
- if(NOT DEFINED dashboard_git_url)
- set(dashboard_git_url "https://github.com/Reference-LAPACK/lapack.git")
- endif()
- if(NOT DEFINED dashboard_git_branch)
- set(dashboard_git_branch master)
- endif()
-
- if(NOT EXISTS "${CTEST_DASHBOARD_ROOT}/${CTEST_DIR_NAME}")
- set(CTEST_CHECKOUT_COMMAND
- "\"${CTEST_UPDATE_COMMAND}\" clone ${dashboard_git_url} ${CTEST_DIR_NAME}")
- endif()
-
- # Explicitly specify the remote as "origin". This ensure we are pulling from
- # the correct remote and prevents command failures when the git tracking
- # branch has not been configured.
- set(CTEST_GIT_UPDATE_CUSTOM "${CTEST_GIT_COMMAND}" pull origin ${dashboard_git_branch})
-
- # Set the generator and build configuration
- if(NOT DEFINED CTEST_CMAKE_GENERATOR)
- set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
- endif()
- set(CTEST_PROJECT_NAME "LAPACK")
- set(CTEST_BUILD_CONFIGURATION "Release")
-
- # Extra special variables
- set(ENV{DISPLAY} "")
- if(CTEST_CMAKE_GENERATOR MATCHES Makefiles)
- set(ENV{CC} "${c_compiler}")
- set(ENV{FC} "${f_compiler}")
- set(ENV{CXX} "${full_compiler}")
- endif()
-
- #----------------------------------------------------------------------------------
- # Should not need to edit under this line
- #----------------------------------------------------------------------------------
-
- # if you do not want to use the default location for a
- # dashboard then set this variable to the directory
- # the dashboard should be in
- make_directory("${CTEST_DASHBOARD_ROOT}")
- # these are the names of the source and binary directory on disk.
- # They will be appended to DASHBOARD_ROOT
- set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_ROOT}/${CTEST_DIR_NAME}")
- set(CTEST_BINARY_DIRECTORY "${CTEST_SOURCE_DIRECTORY}-${CTEST_BUILD_NAME}")
- set(CTEST_NOTES_FILES "${CTEST_NOTES_FILES}"
- "${CMAKE_CURRENT_LIST_FILE}"
- )
-
- # check for parallel
- if(parallel GREATER 1 )
- if(NOT CTEST_BUILD_COMMAND)
- set(CTEST_BUILD_COMMAND "make -j${parallel} -i")
- endif()
-
- message("Use parallel build")
- message("CTEST_BUILD_COMMAND: ${CTEST_BUILD_COMMAND}")
- message("CTEST_CONFIGURE_COMMAND: ${CTEST_CONFIGURE_COMMAND}")
- endif()
-
- ###################################################################
- # Values for the cmake build
- ###################################################################
-
- set( CACHE_CONTENTS "
- SITE:STRING=${hostname}
- BUILDNAME:STRING=${BUILDNAME}
- DART_ROOT:PATH=
- GITCOMMAND:FILEPATH=${CTEST_UPDATE_COMMAND}
- DROP_METHOD:STRING=https
- DART_TESTING_TIMEOUT:STRING=${CTEST_TEST_TIMEOUT}
- #Set build type to use optimized build
- CMAKE_BUILD_TYPE:STRING=Release
- # Enable LAPACKE
- LAPACKE:OPTION=ON
- CBLAS:OPTION=ON
- # Use Reference BLAS by default
- USE_OPTIMIZED_BLAS:OPTION=OFF
- USE_OPTIMIZED_LAPACK:OPTION=OFF
- " )
-
-
- ##########################################################################
- # wipe the binary dir
- message("Remove binary directory...")
- ctest_empty_binary_directory("${CTEST_BINARY_DIRECTORY}")
-
- message("CTest Directory: ${CTEST_DASHBOARD_ROOT}")
- message("Initial checkout: ${CTEST_CVS_CHECKOUT}")
- message("Initial cmake: ${CTEST_CMAKE_COMMAND}")
- message("CTest command: ${CTEST_COMMAND}")
-
- # this is the initial cache to use for the binary tree, be careful to escape
- # any quotes inside of this string if you use it
- file(WRITE "${CTEST_BINARY_DIRECTORY}/CMakeCache.txt" "${CACHE_CONTENTS}")
-
- # Select the model (Nightly, Experimental, Continuous).
- if(NOT DEFINED dashboard_model)
- set(dashboard_model Nightly)
- endif()
- if(NOT "${dashboard_model}" MATCHES "^(Nightly|Experimental|Continuous)$")
- message(FATAL_ERROR "dashboard_model must be Nightly, Experimental, or Continuous")
- endif()
-
- message("Start dashboard...")
- ctest_start(${dashboard_model})
- #ctest_start(Experimental)
- message(" Update")
- ctest_update(SOURCE "${CTEST_SOURCE_DIRECTORY}" RETURN_VALUE res)
- message(" Configure")
- ctest_configure(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res)
- message("read custom files after configure")
- ctest_read_custom_files("${CTEST_BINARY_DIRECTORY}")
- message(" Build")
- ctest_build(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res)
- message(" Test")
- ctest_test(BUILD "${CTEST_BINARY_DIRECTORY}" RETURN_VALUE res)
- #ctest_test(BUILD "${CTEST_BINARY_DIRECTORY}" INCLUDE "Summary")
- message(" Submit")
- ctest_submit(RETURN_VALUE res)
- message(" All done")
-
|