Merge branch 'master' of github.com:JamesEMcClure/LBPM-WIA
This commit is contained in:
commit
90401beac7
@ -1,7 +1,9 @@
|
||||
# Set some CMake properties
|
||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
|
||||
CMAKE_POLICY(SET CMP0011 OLD)
|
||||
CMAKE_POLICY(SET CMP0014 OLD)
|
||||
IF ( ${CMAKE_MAJOR_VERSION} EQUAL 3 )
|
||||
CMAKE_POLICY(SET CMP0026 OLD)
|
||||
ENDIF()
|
||||
|
||||
|
||||
MESSAGE("====================")
|
||||
@ -9,26 +11,16 @@ MESSAGE("Configuring LBPM-WIA")
|
||||
MESSAGE("====================")
|
||||
|
||||
|
||||
# Prevent users from building in place
|
||||
IF ("${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}" )
|
||||
MESSAGE( FATAL_ERROR "Building code in place is a bad idea" )
|
||||
ENDIF()
|
||||
|
||||
|
||||
# Set the project name
|
||||
PROJECT( LBPM-WIA )
|
||||
|
||||
|
||||
# Check if we are only compiling docs
|
||||
INCLUDE( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/macros.cmake )
|
||||
INCLUDE( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/libraries.cmake )
|
||||
CHECK_ENABLE_FLAG( ONLY_BUILD_DOCS 0 )
|
||||
|
||||
|
||||
# Set testing paramaters
|
||||
SET( DROP_METHOD "http" )
|
||||
SET( DROP_SITE "oblivion.engr.colostate.edu" )
|
||||
SET( DROP_LOCATION "/CDash/submit.php?project=LBPM-WIA" )
|
||||
SET( TRIGGER_SITE "" )
|
||||
SET( DROP_SITE_CDASH TRUE )
|
||||
ENABLE_TESTING()
|
||||
INCLUDE( CTest )
|
||||
|
||||
|
||||
# Set some common paths
|
||||
SET( LBPM_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR} )
|
||||
SET( LBPM_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR} )
|
||||
@ -40,6 +32,26 @@ ENDIF()
|
||||
SET( CMAKE_MODULE_PATH ${LBPM_SOURCE_DIR} ${LBPM_SOURCE_DIR}/cmake )
|
||||
|
||||
|
||||
# Include macros
|
||||
SET( PROJ LBPM )
|
||||
INCLUDE( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/macros.cmake" )
|
||||
INCLUDE( "${CMAKE_CURRENT_SOURCE_DIR}/cmake/libraries.cmake" )
|
||||
|
||||
|
||||
# Check if we are only compiling docs
|
||||
CHECK_ENABLE_FLAG( ONLY_BUILD_DOCS 0 )
|
||||
|
||||
|
||||
# Set testing paramaters
|
||||
SET( DROP_METHOD "http" )
|
||||
SET( DROP_SITE "" )
|
||||
SET( DROP_LOCATION "/CDash/submit.php?project=LBPM-WIA" )
|
||||
SET( TRIGGER_SITE "" )
|
||||
SET( DROP_SITE_CDASH TRUE )
|
||||
ENABLE_TESTING()
|
||||
INCLUDE( CTest )
|
||||
|
||||
|
||||
# Create custom targets for build-test, check, and distclean
|
||||
ADD_CUSTOM_TARGET( doc )
|
||||
ADD_CUSTOM_TARGET( latex_docs )
|
||||
@ -89,7 +101,7 @@ IF ( NOT ONLY_BUILD_DOCS )
|
||||
CONFIGURE_CUDA()
|
||||
CONFIGURE_MIC()
|
||||
CONFIGURE_LBPM()
|
||||
CONFIGURE_TIMER()
|
||||
CONFIGURE_TIMER( 0 "${${PROJ}_INSTALL_DIR}/null_timer" )
|
||||
CONFIGURE_LINE_COVERAGE()
|
||||
ENDIF()
|
||||
|
||||
@ -98,6 +110,14 @@ ENDIF()
|
||||
SET( LBPM_LIBS lbpm-wia )
|
||||
|
||||
|
||||
# Macro to create 1,2,4 processor tests
|
||||
MACRO( ADD_LBPM_TEST_1_2_4 EXENAME ${ARGN} )
|
||||
ADD_LBPM_TEST( ${EXENAME} ${ARGN} )
|
||||
ADD_LBPM_TEST_PARALLEL( ${EXENAME} 2 ${ARGN} )
|
||||
ADD_LBPM_TEST_PARALLEL( ${EXENAME} 4 ${ARGN} )
|
||||
ENDMACRO()
|
||||
|
||||
|
||||
# Add the src directories
|
||||
IF ( NOT ONLY_BUILD_DOCS )
|
||||
BEGIN_PACKAGE_CONFIG( lbpm-wia )
|
||||
|
@ -1,35 +1,58 @@
|
||||
# Macro to find and configure timer
|
||||
MACRO( CONFIGURE_TIMER )
|
||||
SET( NULL_TIMER_DIR "${LBPM_INSTALL_DIR}/include" )
|
||||
# Configure the Profiler App for the current project
|
||||
# The 'CONFIGURE_TIMER' macro searches for the timer library if included,
|
||||
# or creates a dummy null timer if it is not used:
|
||||
# CONFIGURE_TIMER( DEFAULT_USE_TIMER NULL_TIMER_DIR )
|
||||
# This function assumes that USE_TIMER is set to indicate if the timer should be used
|
||||
# If USE_TIMER is set, TIMER_DIRECTORY specifies the install path for the timer
|
||||
# If USE_TIMER is not set we will create a summy timer that does nothing.
|
||||
# The input argument DEFAULT_USE_TIMER specifies if the timer library is included by default.
|
||||
# The input argument NULL_TIMER_DIR specifies the location to install the dummy timer.
|
||||
# If it is an empty string, the default install path "${CMAKE_CURRENT_BINARY_DIR}/null_timer" is used.
|
||||
# This function will set the following variables and add the appropriate paths to the include list
|
||||
# TIMER_INCLUDE - Path to the timer headers
|
||||
# TIMER_CXXFLAGS - C++ flags for the timer library
|
||||
# TIMER_LDFLAGS - Linker flags to link the timer library
|
||||
# TIMER_LDLIBS - Linker libraries to link the timer library
|
||||
FUNCTION( CONFIGURE_TIMER DEFAULT_USE_TIMER NULL_TIMER_DIR )
|
||||
# Determine if we want to use the timer utility
|
||||
CHECK_ENABLE_FLAG( USE_TIMER 1 )
|
||||
CHECK_ENABLE_FLAG( USE_TIMER ${DEFAULT_USE_TIMER} )
|
||||
SET( TIMER_INCLUDE )
|
||||
SET( TIMER_CXXFLAGS )
|
||||
SET( TIMER_LDFLAGS )
|
||||
SET( TIMER_LDLIBS )
|
||||
IF ( USE_TIMER )
|
||||
# Check if we specified the timer directory
|
||||
EXECUTE_PROCESS( COMMAND ${CMAKE_COMMAND} -E remove -f "${NULL_TIMER_DIR}/ProfilerApp.h" )
|
||||
IF ( NOT TIMER_DIRECTORY AND TIMER_INSTALL_DIR )
|
||||
SET( TIMER_DIRECTORY ${TIMER_INSTALL_DIR} )
|
||||
ENDIF()
|
||||
IF ( TIMER_DIRECTORY )
|
||||
VERIFY_PATH ( ${TIMER_DIRECTORY} )
|
||||
VERIFY_PATH ( ${TIMER_DIRECTORY}/include )
|
||||
VERIFY_PATH ( ${TIMER_DIRECTORY}/lib )
|
||||
SET( TIMER_INCLUDE ${TIMER_DIRECTORY}/include )
|
||||
VERIFY_PATH( ${TIMER_DIRECTORY} )
|
||||
VERIFY_PATH( ${TIMER_DIRECTORY}/include )
|
||||
VERIFY_PATH( ${TIMER_DIRECTORY}/lib )
|
||||
FIND_LIBRARY( TIMER_LIBS NAMES timerutility PATHS ${TIMER_DIRECTORY}/lib NO_DEFAULT_PATH )
|
||||
SET( TIMER_INCLUDE ${TIMER_DIRECTORY}/include )
|
||||
SET( TIMER_CXXFLAGS "-DUSE_TIMER -I${TIMER_DIRECTORY}/include" )
|
||||
SET( TIMER_LDFLAGS -L${TIMER_DIRECTORY}/lib )
|
||||
SET( TIMER_LDLIBS -ltimerutility )
|
||||
ELSE()
|
||||
MESSAGE( FATAL_ERROR "Default search for TIMER is not yet supported. Use -D TIMER_DIRECTORY=" )
|
||||
ENDIF()
|
||||
SET(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_RPATH} "${TIMER_DIRECTORY}/lib" )
|
||||
INCLUDE_DIRECTORIES( ${TIMER_INCLUDE} )
|
||||
SET(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_RPATH} "${TIMER_DIRECTORY}/lib" PARENT_SCOPE )
|
||||
INCLUDE_DIRECTORIES( "${TIMER_INCLUDE}" )
|
||||
ADD_DEFINITIONS( "-D USE_TIMER" )
|
||||
MESSAGE( "Using timer utility" )
|
||||
MESSAGE( " TIMER_LIBRARIES = ${TIMER_LIBS}" )
|
||||
ELSE()
|
||||
IF ( "${NULL_TIMER_DIR}" STREQUAL "" )
|
||||
SET( NULL_TIMER_DIR "${CMAKE_CURRENT_BINARY_DIR}/null_timer" )
|
||||
ENDIF()
|
||||
FILE(WRITE "${NULL_TIMER_DIR}/ProfilerApp.h" "#define PROFILE_START(...) do {} while(0)\n" )
|
||||
FILE(APPEND "${NULL_TIMER_DIR}/ProfilerApp.h" "#define PROFILE_STOP(...) do {} while(0)\n" )
|
||||
FILE(APPEND "${NULL_TIMER_DIR}/ProfilerApp.h" "#define PROFILE_START2(...) do {} while(0)\n" )
|
||||
FILE(APPEND "${NULL_TIMER_DIR}/ProfilerApp.h" "#define PROFILE_STOP2(...) do {} while(0)\n" )
|
||||
FILE(APPEND "${NULL_TIMER_DIR}/ProfilerApp.h" "#define PROFILE_SCOPED(...) do {} while(0)\n" )
|
||||
FILE(APPEND "${NULL_TIMER_DIR}/ProfilerApp.h" "#define PROFILE_SYNCRONIZE() do {} while(0)\n" )
|
||||
FILE(APPEND "${NULL_TIMER_DIR}/ProfilerApp.h" "#define PROFILE_SYNCHRONIZE() do {} while(0)\n" )
|
||||
FILE(APPEND "${NULL_TIMER_DIR}/ProfilerApp.h" "#define PROFILE_SAVE(...) do {} while(0)\n" )
|
||||
FILE(APPEND "${NULL_TIMER_DIR}/ProfilerApp.h" "#define PROFILE_STORE_TRACE(X) do {} while(0)\n" )
|
||||
FILE(APPEND "${NULL_TIMER_DIR}/ProfilerApp.h" "#define PROFILE_ENABLE(...) do {} while(0)\n" )
|
||||
@ -38,9 +61,39 @@ MACRO( CONFIGURE_TIMER )
|
||||
FILE(APPEND "${NULL_TIMER_DIR}/ProfilerApp.h" "#define PROFILE_DISABLE_TRACE() do {} while(0)\n" )
|
||||
FILE(APPEND "${NULL_TIMER_DIR}/ProfilerApp.h" "#define PROFILE_ENABLE_MEMORY() do {} while(0)\n" )
|
||||
FILE(APPEND "${NULL_TIMER_DIR}/ProfilerApp.h" "#define PROFILE_DISABLE_MEMORY() do {} while(0)\n" )
|
||||
SET( TIMER_INCLUDE "${NULL_TIMER_DIR}" )
|
||||
INCLUDE_DIRECTORIES( "${TIMER_INCLUDE}" )
|
||||
MESSAGE( "Disabling timer utility" )
|
||||
ENDIF()
|
||||
SET( TIMER_INCLUDE "${TIMER_INCLUDE}" PARENT_SCOPE )
|
||||
SET( TIMER_CXXFLAGS "${TIMER_CXXFLAGS}" PARENT_SCOPE )
|
||||
SET( TIMER_LDFLAGS "${TIMER_LDFLAGS}" PARENT_SCOPE )
|
||||
SET( TIMER_LDLIBS "${TIMER_LDLIBS}" PARENT_SCOPE )
|
||||
SET( USE_TIMER "${USE_TIMER}" PARENT_SCOPE )
|
||||
ENDFUNCTION()
|
||||
|
||||
# Check that a path is valid
|
||||
FUNCTION( VERIFY_PATH PATH_NAME )
|
||||
IF ("${PATH_NAME}" STREQUAL "")
|
||||
MESSAGE( FATAL_ERROR "Path is not set: ${PATH_NAME}" )
|
||||
ENDIF()
|
||||
IF ( NOT EXISTS ${PATH_NAME} )
|
||||
MESSAGE( FATAL_ERROR "Path does not exist: ${PATH_NAME}" )
|
||||
ENDIF()
|
||||
ENDFUNCTION()
|
||||
|
||||
# Macro to check if a flag is enabled
|
||||
MACRO( CHECK_ENABLE_FLAG FLAG DEFAULT )
|
||||
IF( NOT DEFINED ${FLAG} )
|
||||
SET( ${FLAG} ${DEFAULT} )
|
||||
ELSEIF( ${FLAG} STREQUAL "" )
|
||||
SET( ${FLAG} ${DEFAULT} )
|
||||
ELSEIF( ( ${${FLAG}} STREQUAL "false" ) OR ( ${${FLAG}} STREQUAL "0" ) OR ( ${${FLAG}} STREQUAL "OFF" ) )
|
||||
SET( ${FLAG} 0 )
|
||||
ELSEIF( ( ${${FLAG}} STREQUAL "true" ) OR ( ${${FLAG}} STREQUAL "1" ) OR ( ${${FLAG}} STREQUAL "ON" ) )
|
||||
SET( ${FLAG} 1 )
|
||||
ELSE()
|
||||
MESSAGE( "Bad value for ${FLAG} (${${FLAG}}); use true or false" )
|
||||
ENDIF ()
|
||||
ENDMACRO()
|
||||
|
||||
|
||||
|
||||
|
233
cmake/ctest_script.cmake
Normal file
233
cmake/ctest_script.cmake
Normal file
@ -0,0 +1,233 @@
|
||||
# ctest script for building, running, and submitting the test results
|
||||
# Usage: ctest -s script,build
|
||||
# build = debug / optimized / weekly / valgrind / valgrind-matlab
|
||||
# Note: this test will use use the number of processors defined in the variable N_PROCS,
|
||||
# the enviornmental variable N_PROCS, or the number of processors availible (if not specified)
|
||||
|
||||
# Set platform specific variables
|
||||
SITE_NAME( HOSTNAME )
|
||||
SET( CC $ENV{CC} )
|
||||
SET( CXX $ENV{CXX} )
|
||||
SET( MPIEXEC $ENV{MPIEXEC} )
|
||||
SET( USE_TIMER "$ENV{USE_TIMER}" )
|
||||
SET( TIMER_DIRECTORY "$ENV{TIMER_DIRECTORY}" )
|
||||
SET( RATES_DIRECTORY "$ENV{RATES_DIRECTORY}" )
|
||||
SET( USE_ACML $ENV{USE_ACML} )
|
||||
SET( ACML_DIRECTORY $ENV{ACML_DIRECTORY} )
|
||||
SET( USE_MKL $ENV{USE_MKL} )
|
||||
SET( MKL_DIRECTORY $ENV{MKL_DIRECTORY} )
|
||||
SET( BLAS_DIRECTORY $ENV{BLAS_DIRECTORY} )
|
||||
SET( BLAS_LIB $ENV{BLAS_LIB} )
|
||||
SET( LAPACK_DIRECTORY $ENV{LAPACK_DIRECTORY} )
|
||||
SET( LAPACK_LIB $ENV{LAPACK_LIB} )
|
||||
SET( USE_MATLAB $ENV{USE_MATLAB} )
|
||||
SET( MATLAB_DIRECTORY $ENV{MATLAB_DIRECTORY} )
|
||||
SET( COVERAGE_COMMAND $ENV{COVERAGE_COMMAND} )
|
||||
SET( VALGRIND_COMMAND $ENV{VALGRIND_COMMAND} )
|
||||
SET( CMAKE_MAKE_PROGRAM $ENV{CMAKE_MAKE_PROGRAM} )
|
||||
SET( CTEST_CMAKE_GENERATOR $ENV{CTEST_CMAKE_GENERATOR} )
|
||||
SET( LDLIBS $ENV{LDLIBS} )
|
||||
SET( LDFLAGS $ENV{LDFLAGS} )
|
||||
SET( MPI_COMPILER $ENV{MPI_COMPILER} )
|
||||
SET( MPI_DIRECTORY $ENV{MPI_DIRECTORY} )
|
||||
SET( MPI_INCLUDE $ENV{MPI_INCLUDE} )
|
||||
SET( MPI_LINK_FLAGS $ENV{MPI_LINK_FLAGS} )
|
||||
SET( MPI_LIBRARIES $ENV{MPI_LIBRARIES} )
|
||||
SET( MPIEXEC $ENV{MPIEXEC} )
|
||||
SET( BUILD_SERIAL $ENV{BUILD_SERIAL} )
|
||||
|
||||
|
||||
# Get the source directory based on the current directory
|
||||
IF ( NOT LBPM_SOURCE_DIR )
|
||||
SET( LBPM_SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/.." )
|
||||
ENDIF()
|
||||
IF ( NOT CMAKE_MAKE_PROGRAM )
|
||||
SET( CMAKE_MAKE_PROGRAM make )
|
||||
ENDIF()
|
||||
|
||||
|
||||
# Check that we specified the build type to run
|
||||
IF( NOT CTEST_SCRIPT_ARG )
|
||||
MESSAGE(FATAL_ERROR "No build specified: ctest -S /path/to/script,build (debug/optimized/valgrind")
|
||||
ELSEIF( ${CTEST_SCRIPT_ARG} STREQUAL "debug" )
|
||||
SET( CTEST_BUILD_NAME "LBPM-WIA-debug" )
|
||||
SET( CMAKE_BUILD_TYPE "Debug" )
|
||||
SET( CTEST_COVERAGE_COMMAND ${COVERAGE_COMMAND} )
|
||||
SET( ENABLE_GCOV "true" )
|
||||
SET( USE_VALGRIND FALSE )
|
||||
SET( USE_CUDA FALSE )
|
||||
ELSEIF( ${CTEST_SCRIPT_ARG} STREQUAL "debug-cuda" )
|
||||
SET( CTEST_BUILD_NAME "LBPM-WIA-debug-cuda" )
|
||||
SET( CMAKE_BUILD_TYPE "Debug" )
|
||||
SET( CTEST_COVERAGE_COMMAND ${COVERAGE_COMMAND} )
|
||||
SET( ENABLE_GCOV "true" )
|
||||
SET( USE_VALGRIND FALSE )
|
||||
SET( USE_CUDA TRUE )
|
||||
ELSEIF( (${CTEST_SCRIPT_ARG} STREQUAL "optimized") OR (${CTEST_SCRIPT_ARG} STREQUAL "opt") )
|
||||
SET( CTEST_BUILD_NAME "LBPM-WIA-opt" )
|
||||
SET( CMAKE_BUILD_TYPE "Release" )
|
||||
SET( CTEST_COVERAGE_COMMAND )
|
||||
SET( ENABLE_GCOV "false" )
|
||||
SET( USE_VALGRIND FALSE )
|
||||
SET( USE_CUDA FALSE )
|
||||
ELSEIF( (${CTEST_SCRIPT_ARG} STREQUAL "optimized-cuda") OR (${CTEST_SCRIPT_ARG} STREQUAL "opt-cuda") )
|
||||
SET( CTEST_BUILD_NAME "LBPM-WIA-opt-cuda" )
|
||||
SET( CMAKE_BUILD_TYPE "Release" )
|
||||
SET( CTEST_COVERAGE_COMMAND )
|
||||
SET( ENABLE_GCOV "false" )
|
||||
SET( USE_VALGRIND FALSE )
|
||||
SET( USE_CUDA TRUE )
|
||||
ELSEIF( ${CTEST_SCRIPT_ARG} STREQUAL "valgrind" )
|
||||
SET( CTEST_BUILD_NAME "LBPM-WIA-valgrind" )
|
||||
SET( CMAKE_BUILD_TYPE "Debug" )
|
||||
SET( CTEST_COVERAGE_COMMAND )
|
||||
SET( ENABLE_GCOV "false" )
|
||||
SET( USE_VALGRIND TRUE )
|
||||
SET( USE_CUDA FALSE )
|
||||
ELSEIF( ${CTEST_SCRIPT_ARG} STREQUAL "valgrind-cuda" )
|
||||
SET( CTEST_BUILD_NAME "LBPM-WIA-valgrind-cuda" )
|
||||
SET( CMAKE_BUILD_TYPE "Debug" )
|
||||
SET( CTEST_COVERAGE_COMMAND )
|
||||
SET( ENABLE_GCOV "false" )
|
||||
SET( USE_VALGRIND TRUE )
|
||||
SET( USE_CUDA TRUE )
|
||||
ELSE()
|
||||
MESSAGE(FATAL_ERROR "Invalid build (${CTEST_SCRIPT_ARG}): ctest -S /path/to/script,build (debug/opt/valgrind")
|
||||
ENDIF()
|
||||
IF ( NOT CTEST_COVERAGE_COMMAND )
|
||||
SET( ENABLE_GCOV "false" )
|
||||
ENDIF()
|
||||
|
||||
|
||||
# Set the number of processors
|
||||
IF( NOT DEFINED N_PROCS )
|
||||
SET( N_PROCS $ENV{N_PROCS} )
|
||||
ENDIF()
|
||||
IF( NOT DEFINED N_PROCS )
|
||||
SET(N_PROCS 1)
|
||||
# Linux:
|
||||
SET(cpuinfo_file "/proc/cpuinfo")
|
||||
IF(EXISTS "${cpuinfo_file}")
|
||||
FILE(STRINGS "${cpuinfo_file}" procs REGEX "^processor.: [0-9]+$")
|
||||
list(LENGTH procs N_PROCS)
|
||||
ENDIF()
|
||||
# Mac:
|
||||
IF(APPLE)
|
||||
find_program(cmd_sys_pro "system_profiler")
|
||||
if(cmd_sys_pro)
|
||||
execute_process(COMMAND ${cmd_sys_pro} OUTPUT_VARIABLE info)
|
||||
STRING(REGEX REPLACE "^.*Total Number of Cores: ([0-9]+).*$" "\\1" N_PROCS "${info}")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
# Windows:
|
||||
IF(WIN32)
|
||||
SET(N_PROCS "$ENV{NUMBER_OF_PROCESSORS}")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
|
||||
# Set basic variables
|
||||
SET( CTEST_PROJECT_NAME "LBPM-WIA" )
|
||||
SET( CTEST_SOURCE_DIRECTORY "${LBPM_SOURCE_DIR}" )
|
||||
SET( CTEST_BINARY_DIRECTORY "." )
|
||||
SET( CTEST_DASHBOARD "Nightly" )
|
||||
SET( CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS 500 )
|
||||
SET( CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS 500 )
|
||||
SET( CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE 10000 )
|
||||
SET( CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE 10000 )
|
||||
SET( NIGHTLY_START_TIME "18:00:00 EST" )
|
||||
SET( CTEST_NIGHTLY_START_TIME "22:00:00 EST" )
|
||||
SET( CTEST_COMMAND "\"${CTEST_EXECUTABLE_NAME}\" -D ${CTEST_DASHBOARD}" )
|
||||
IF ( BUILD_SERIAL )
|
||||
SET( CTEST_BUILD_COMMAND "${CMAKE_MAKE_PROGRAM} -i install" )
|
||||
ELSE()
|
||||
SET( CTEST_BUILD_COMMAND "${CMAKE_MAKE_PROGRAM} -i -j ${N_PROCS} install" )
|
||||
ENDIF()
|
||||
|
||||
|
||||
# Set timeouts: 5 minutes for debug, 2 for opt, and 30 minutes for valgrind/weekly
|
||||
IF ( USE_VALGRIND )
|
||||
SET( CTEST_TEST_TIMEOUT 1800 )
|
||||
ELSEIF ( RUN_WEEKLY )
|
||||
SET( CTEST_TEST_TIMEOUT 1800 )
|
||||
ELSEIF( ${CMAKE_BUILD_TYPE} STREQUAL "Debug" )
|
||||
SET( CTEST_TEST_TIMEOUT 300 )
|
||||
ELSE()
|
||||
SET( CTEST_TEST_TIMEOUT 120 )
|
||||
ENDIF()
|
||||
|
||||
|
||||
# Set valgrind options
|
||||
#SET (VALGRIND_COMMAND_OPTIONS "--tool=memcheck --leak-check=yes --track-fds=yes --num-callers=50 --show-reachable=yes --track-origins=yes --malloc-fill=0xff --free-fill=0xfe --suppressions=${LBPM_SOURCE_DIR}/ValgrindSuppresionFile" )
|
||||
SET( VALGRIND_COMMAND_OPTIONS "--tool=memcheck --leak-check=yes --track-fds=yes --num-callers=50 --show-reachable=yes --suppressions=${LBPM_SOURCE_DIR}/ValgrindSuppresionFile" )
|
||||
IF ( USE_VALGRIND )
|
||||
SET( MEMORYCHECK_COMMAND ${VALGRIND_COMMAND} )
|
||||
SET( MEMORYCHECKCOMMAND ${VALGRIND_COMMAND} )
|
||||
SET( CTEST_MEMORYCHECK_COMMAND ${VALGRIND_COMMAND} )
|
||||
SET( CTEST_MEMORYCHECKCOMMAND ${VALGRIND_COMMAND} )
|
||||
SET( CTEST_MEMORYCHECK_COMMAND_OPTIONS ${VALGRIND_COMMAND_OPTIONS} )
|
||||
SET( CTEST_MEMORYCHECKCOMMAND_OPTIONS ${VALGRIND_COMMAND_OPTIONS} )
|
||||
ENDIF()
|
||||
|
||||
|
||||
# Clear the binary directory and create an initial cache
|
||||
EXECUTE_PROCESS( COMMAND ${CMAKE_COMMAND} -E remove -f CMakeCache.txt )
|
||||
EXECUTE_PROCESS( COMMAND ${CMAKE_COMMAND} -E remove_directory CMakeFiles )
|
||||
FILE(WRITE "${CTEST_BINARY_DIRECTORY}/CMakeCache.txt" "CTEST_TEST_CTEST:BOOL=1")
|
||||
|
||||
|
||||
# Set the configure options
|
||||
SET( CTEST_OPTIONS )
|
||||
SET( CTEST_OPTIONS "-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}" )
|
||||
SET( CTEST_OPTIONS "${CTEST_OPTIONS};-DCMAKE_C_COMPILER:PATH=${CC};-DCMAKE_C_FLAGS='${C_FLAGS}';" )
|
||||
SET( CTEST_OPTIONS "${CTEST_OPTIONS};-DCMAKE_CXX_COMPILER:PATH=${CXX};-DCMAKE_CXX_FLAGS='${CXX_FLAGS}'" )
|
||||
SET( CTEST_OPTIONS "${CTEST_OPTIONS};-DMPI_COMPILER:BOOL=true;-DMPIEXEC=${MPIEXEC};-DUSE_EXT_MPI_FOR_SERIAL_TESTS:BOOL=true")
|
||||
IF ( USE_TIMER )
|
||||
SET( CTEST_OPTIONS "${CTEST_OPTIONS};-DUSE_TIMER:BOOL=true;-DTIMER_DIRECTORY='${TIMER_DIRECTORY}'" )
|
||||
ELSE()
|
||||
SET( CTEST_OPTIONS "${CTEST_OPTIONS};-DUSE_TIMER:BOOL=false" )
|
||||
ENDIF()
|
||||
IF ( USE_CUDA )
|
||||
SET( CTEST_OPTIONS "${CTEST_OPTIONS};-DUSE_CUDA:BOOL=true;-DCUDA_NVCC_FLAGS='${CUDA_FLAGS}';-DCUDA_HOST_COMPILER=${CUDA_HOST_COMPILER}" )
|
||||
ELSE()
|
||||
SET( CTEST_OPTIONS "${CTEST_OPTIONS};-DUSE_CUDA:BOOL=false" )
|
||||
ENDIF()
|
||||
SET( CTEST_OPTIONS "${CTEST_OPTIONS};-DLDLIBS:STRING=\"${LDLIBS}\"" )
|
||||
SET( CTEST_OPTIONS "${CTEST_OPTIONS};-DENABLE_GCOV:BOOL=${ENABLE_GCOV}" )
|
||||
|
||||
# Configure and run the tests
|
||||
SET( CTEST_SITE ${HOSTNAME} )
|
||||
CTEST_START("${CTEST_DASHBOARD}")
|
||||
CTEST_UPDATE()
|
||||
CTEST_CONFIGURE(
|
||||
BUILD ${CTEST_BINARY_DIRECTORY}
|
||||
SOURCE ${CTEST_SOURCE_DIRECTORY}
|
||||
OPTIONS "${CTEST_OPTIONS}"
|
||||
)
|
||||
CTEST_BUILD()
|
||||
IF ( USE_VALGRIND_MATLAB )
|
||||
CTEST_TEST( INCLUDE MATLAB--test_hello_world PARALLEL_LEVEL ${N_PROCS} )
|
||||
ELSEIF ( USE_VALGRIND )
|
||||
CTEST_MEMCHECK( EXCLUDE procs PARALLEL_LEVEL ${N_PROCS} )
|
||||
ELSE()
|
||||
# CTEST_TEST( EXCLUDE WEEKLY PARALLEL_LEVEL ${N_PROCS} )
|
||||
CTEST_TEST( PARALLEL_LEVEL ${N_PROCS} )
|
||||
ENDIF()
|
||||
IF( CTEST_COVERAGE_COMMAND )
|
||||
CTEST_COVERAGE()
|
||||
ENDIF()
|
||||
|
||||
|
||||
# Submit the results to oblivion
|
||||
SET( CTEST_DROP_METHOD "http" )
|
||||
SET( CTEST_DROP_SITE "mberrill.myqnapcloud.com" )
|
||||
SET( CTEST_DROP_LOCATION "/CDash/submit.php?project=LBPM-WIA" )
|
||||
SET( CTEST_DROP_SITE_CDASH TRUE )
|
||||
SET( DROP_SITE_CDASH TRUE )
|
||||
CTEST_SUBMIT()
|
||||
|
||||
|
||||
# Clean up
|
||||
# exec_program("make distclean")
|
||||
|
||||
|
@ -1,4 +1,16 @@
|
||||
INCLUDE(CheckCSourceCompiles)
|
||||
SET( TEST_FAIL_REGULAR_EXPRESSION "(FAILED)" )
|
||||
|
||||
|
||||
# Check that the PROJ and ${PROJ}_INSTALL_DIR variables are set
|
||||
# These variables are used to generate the ADD_PROJ_TEST macros
|
||||
IF ( NOT PROJ )
|
||||
MESSAGE(FATAL_ERROR "PROJ must be set before including macros.cmake")
|
||||
ENDIF()
|
||||
IF ( NOT ${PROJ}_INSTALL_DIR )
|
||||
MESSAGE(FATAL_ERROR "${PROJ}_INSTALL_DIR must be set before including macros.cmake")
|
||||
ENDIF()
|
||||
#MESSAGE("Installing project ${PROJ} in ${${PROJ}_INSTALL_DIR}")
|
||||
|
||||
|
||||
# Macro to print all variables
|
||||
@ -10,15 +22,15 @@ MACRO( PRINT_ALL_VARIABLES )
|
||||
ENDMACRO()
|
||||
|
||||
|
||||
# Add a package to the LBPM library
|
||||
MACRO( ADD_LBPM_LIBRARY PACKAGE )
|
||||
#INCLUDE_DIRECTORIES ( ${LBPM_INSTALL_DIR}/include/${PACKAGE} )
|
||||
# Add a package to the project's library
|
||||
MACRO( ADD_${PROJ}_LIBRARY PACKAGE )
|
||||
#INCLUDE_DIRECTORIES ( ${${PROJ}_INSTALL_DIR}/include/${PACKAGE} )
|
||||
ADD_SUBDIRECTORY( ${PACKAGE} )
|
||||
ENDMACRO()
|
||||
|
||||
|
||||
# Add an LBPM executable
|
||||
MACRO( ADD_LBPM_EXECUTABLE PACKAGE )
|
||||
# Add a project executable
|
||||
MACRO( ADD_${PROJ}_EXECUTABLE PACKAGE )
|
||||
ADD_SUBDIRECTORY( ${PACKAGE} )
|
||||
ENDMACRO()
|
||||
|
||||
@ -88,7 +100,7 @@ MACRO( ADD_PACKAGE_SUBDIRECTORY SUBDIR )
|
||||
FIND_FILES_PATH( ${SUBDIR} )
|
||||
FILE( GLOB HFILES RELATIVE ${FULLSUBDIR} ${SUBDIR}/*.h ${SUBDIR}/*.hh ${SUBDIR}/*.hpp ${SUBDIR}/*.I )
|
||||
FOREACH( HFILE ${HFILES} )
|
||||
CONFIGURE_FILE( ${FULLSUBDIR}/${HFILE} ${LBPM_INSTALL_DIR}/include/${SUBDIR}/${HFILE} COPYONLY )
|
||||
CONFIGURE_FILE( ${FULLSUBDIR}/${HFILE} ${${PROJ}_INSTALL_DIR}/include/${SUBDIR}/${HFILE} COPYONLY )
|
||||
INCLUDE_DIRECTORIES( ${FULLSUBDIR} )
|
||||
ENDFOREACH()
|
||||
ADD_SUBDIRECTORY( ${SUBDIR} )
|
||||
@ -102,8 +114,8 @@ MACRO( INSTALL_LBPM_TARGET PACKAGE )
|
||||
# Copy the header files to the include path
|
||||
FILE( GLOB HFILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/*.h ${CMAKE_CURRENT_SOURCE_DIR}/*.hh ${CMAKE_CURRENT_SOURCE_DIR}/*.hpp ${CMAKE_CURRENT_SOURCE_DIR}/*.I )
|
||||
FOREACH( HFILE ${HFILES} )
|
||||
#CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/${HFILE} ${LBPM_INSTALL_DIR}/include/${CURPACKAGE}/${HFILE} COPYONLY )
|
||||
CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/${HFILE} ${LBPM_INSTALL_DIR}/include/${HFILE} COPYONLY )
|
||||
#CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/${HFILE} ${${PROJ}_INSTALL_DIR}/include/${CURPACKAGE}/${HFILE} COPYONLY )
|
||||
CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/${HFILE} ${${PROJ}_INSTALL_DIR}/include/${HFILE} COPYONLY )
|
||||
ENDFOREACH()
|
||||
# Configure the CUDA files
|
||||
IF ( CUSOURCES )
|
||||
@ -119,8 +131,8 @@ MACRO( INSTALL_LBPM_TARGET PACKAGE )
|
||||
ENDIF()
|
||||
TARGET_LINK_LIBRARIES( ${PACKAGE} ${COVERAGE_LIBS} ${SYSTEM_LIBS} ${LDLIBS} )
|
||||
# Install the package
|
||||
INSTALL( TARGETS ${PACKAGE} DESTINATION ${LBPM_INSTALL_DIR}/lib )
|
||||
INSTALL( FILES ${HFILES} DESTINATION ${LBPM_INSTALL_DIR}/include )
|
||||
INSTALL( TARGETS ${PACKAGE} DESTINATION ${${PROJ}_INSTALL_DIR}/lib )
|
||||
INSTALL( FILES ${HFILES} DESTINATION ${${PROJ}_INSTALL_DIR}/include )
|
||||
# Clear the sources
|
||||
SET( HEADERS "" )
|
||||
SET( CSOURCES "" )
|
||||
@ -130,7 +142,7 @@ ENDMACRO()
|
||||
|
||||
# Macro to verify that a variable has been set
|
||||
MACRO( VERIFY_VARIABLE VARIABLE_NAME )
|
||||
IF( NOT ${VARIABLE_NAME} )
|
||||
IF ( NOT ${VARIABLE_NAME} )
|
||||
MESSAGE( FATAL_ERROR "PLease set: " ${VARIABLE_NAME} )
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
@ -138,8 +150,11 @@ ENDMACRO()
|
||||
|
||||
# Macro to verify that a path has been set
|
||||
MACRO( VERIFY_PATH PATH_NAME )
|
||||
IF( NOT EXISTS "${PATH_NAME}" )
|
||||
MESSAGE( FATAL_ERROR "Path does not exist: " ${PATH_NAME} )
|
||||
IF ("${PATH_NAME}" STREQUAL "")
|
||||
MESSAGE ( FATAL_ERROR "Path is not set: ${PATH_NAME}" )
|
||||
ENDIF()
|
||||
IF ( NOT EXISTS "${PATH_NAME}" )
|
||||
MESSAGE( FATAL_ERROR "Path does not exist: ${PATH_NAME}" )
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
@ -166,6 +181,14 @@ MACRO( SET_COMPILER )
|
||||
SET(USING_PGCC TRUE)
|
||||
ADD_DEFINITIONS( -D USING_ICCPGCC )
|
||||
MESSAGE("Using pgCC")
|
||||
ELSEIF( (${CMAKE_C_COMPILER_ID} MATCHES "CRAY") OR (${CMAKE_C_COMPILER_ID} MATCHES "Cray") )
|
||||
SET(USING_CRAY TRUE)
|
||||
ADD_DEFINITIONS( -D USING_CRAY )
|
||||
MESSAGE("Using Cray")
|
||||
ELSEIF( (${CMAKE_C_COMPILER_ID} MATCHES "CLANG") OR (${CMAKE_C_COMPILER_ID} MATCHES "Clang") )
|
||||
SET(USING_CLANG TRUE)
|
||||
ADD_DEFINITIONS( -D USING_CLANG )
|
||||
MESSAGE("Using Clang")
|
||||
ELSE()
|
||||
SET(USING_DEFAULT TRUE)
|
||||
MESSAGE("${CMAKE_C_COMPILER_ID}")
|
||||
@ -193,6 +216,18 @@ MACRO ( SET_COMPILER_FLAGS )
|
||||
## Disable warnings that I think are irrelavent (may need to be revisited)
|
||||
#SET(CMAKE_C_FLAGS " ${CMAKE_C_FLAGS} -wd383 -wd981" )
|
||||
#SET(CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS} -wd383 -wd981" )
|
||||
ELSEIF ( USING_CRAY )
|
||||
# Add default compiler options
|
||||
SET(CMAKE_C_FLAGS " ${CMAKE_C_FLAGS}")
|
||||
SET(CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS}")
|
||||
ELSEIF ( USING_PGCC )
|
||||
# Add default compiler options
|
||||
SET(CMAKE_C_FLAGS " ${CMAKE_C_FLAGS}")
|
||||
SET(CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS}")
|
||||
ELSEIF ( USING_CLANG )
|
||||
# Add default compiler options
|
||||
SET(CMAKE_C_FLAGS " ${CMAKE_C_FLAGS}")
|
||||
SET(CMAKE_CXX_FLAGS " ${CMAKE_CXX_FLAGS}")
|
||||
ELSEIF ( USING_DEFAULT )
|
||||
## Add default compiler options
|
||||
#SET(CMAKE_C_FLAGS " ${CMAKE_C_FLAGS} -Wall")
|
||||
@ -245,17 +280,17 @@ ENDMACRO()
|
||||
|
||||
|
||||
# Macro to add the dependencies and libraries to an executable
|
||||
MACRO( ADD_LBPM_EXE_DEP EXE )
|
||||
MACRO( ADD_PROJ_EXE_DEP EXE )
|
||||
# Add the package dependencies
|
||||
IF( LBPM_TEST_LIB_EXISTS )
|
||||
IF( ${PROJ}_TEST_LIB_EXISTS )
|
||||
ADD_DEPENDENCIES ( ${EXE} ${PACKAGE_TEST_LIB} )
|
||||
TARGET_LINK_LIBRARIES ( ${EXE} ${PACKAGE_TEST_LIB} )
|
||||
ENDIF()
|
||||
# Add the executable to the dependencies of check and build-test
|
||||
ADD_DEPENDENCIES( check ${EXE} )
|
||||
ADD_DEPENDENCIES( build-test ${EXE} )
|
||||
# Add the libraries
|
||||
TARGET_LINK_LIBRARIES( ${EXE} ${LBPM_LIBS} )
|
||||
# Add the project libraries
|
||||
TARGET_LINK_LIBRARIES( ${EXE} ${${PROJ}_LIBS} )
|
||||
# Add external libraries
|
||||
TARGET_LINK_LIBRARIES( ${EXE} ${TIMER_LIBS} )
|
||||
TARGET_LINK_LIBRARIES( ${EXE} ${EXTERNAL_LIBS} )
|
||||
@ -268,20 +303,24 @@ ENDMACRO()
|
||||
|
||||
|
||||
# Add a executable
|
||||
MACRO( INSTALL_LBPM_EXE EXE )
|
||||
MACRO( INSTALL_${PROJ}_EXE EXE )
|
||||
SET( SOURCES ${EXE}.cpp )
|
||||
ADD_EXECUTABLE( ${EXE} ${SOURCES} )
|
||||
ADD_LBPM_EXE_DEP( ${EXE} )
|
||||
ADD_PROJ_EXE_DEP( ${EXE} )
|
||||
INSTALL( TARGETS ${EXE} DESTINATION ${LBPM_INSTALL_DIR}/bin )
|
||||
ENDMACRO()
|
||||
|
||||
|
||||
# Add a provisional test
|
||||
FUNCTION( ADD_LBPM_PROVISIONAL_TEST EXEFILE )
|
||||
FUNCTION( ADD_PROJ_PROVISIONAL_TEST EXEFILE )
|
||||
# Check if we actually want to add the test
|
||||
SET( EXCLUDE_TESTS_FROM_ALL 0 )
|
||||
# Check if test has already been added
|
||||
GET_TARGET_PROPERTY(tmp ${EXEFILE} LOCATION)
|
||||
SET( tmp )
|
||||
IF ( TARGET ${EXEFILE} )
|
||||
GET_TARGET_PROPERTY(tmp ${EXEFILE} LOCATION)
|
||||
STRING(REGEX REPLACE "//" "/" tmp "${tmp}" )
|
||||
ENDIF()
|
||||
IF ( NOT tmp )
|
||||
# The target has not been added
|
||||
SET( CXXFILE ${EXEFILE}.cpp )
|
||||
@ -291,13 +330,15 @@ FUNCTION( ADD_LBPM_PROVISIONAL_TEST EXEFILE )
|
||||
ELSE()
|
||||
ADD_EXECUTABLE( ${EXEFILE} EXCLUDE_FROM_ALL ${CXXFILE} )
|
||||
ENDIF()
|
||||
ADD_LBPM_EXE_DEP( ${EXEFILE} )
|
||||
ADD_PROJ_EXE_DEP( ${EXEFILE} )
|
||||
ELSEIF( ${tmp} STREQUAL "${CMAKE_CURRENT_BINARY_DIR}/${EXEFILE}" )
|
||||
# The correct target has already been added
|
||||
ELSEIF( ${tmp} STREQUAL "${CMAKE_CURRENT_BINARY_DIR}/${EXEFILE}.exe" )
|
||||
# The correct target has already been added
|
||||
ELSEIF( ${tmp} STREQUAL "${CMAKE_CURRENT_BINARY_DIR}/$(Configuration)/${EXEFILE}.exe" )
|
||||
# The correct target has already been added
|
||||
ELSEIF( ${tmp} STREQUAL "${CMAKE_CURRENT_BINARY_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/${EXEFILE}" )
|
||||
# The correct target has already been added
|
||||
ELSEIF( ${tmp} STREQUAL "${CMAKE_CURRENT_BINARY_DIR}/$(OutDir)/${EXEFILE}.exe" )
|
||||
# The correct target has already been added
|
||||
ELSE()
|
||||
@ -307,6 +348,10 @@ FUNCTION( ADD_LBPM_PROVISIONAL_TEST EXEFILE )
|
||||
MESSAGE( FATAL_ERROR "Trying to add 2 different tests with the same name" )
|
||||
ENDIF()
|
||||
ENDFUNCTION()
|
||||
FUNCTION( ADD_${PROJ}_PROVISIONAL_TEST EXEFILE )
|
||||
ADD_PROJ_PROVISIONAL_TEST( ${EXEFILE} )
|
||||
ENDFUNCTION()
|
||||
|
||||
|
||||
|
||||
# Macro to create the test name
|
||||
@ -320,8 +365,8 @@ ENDMACRO()
|
||||
|
||||
|
||||
# Add a executable as a test
|
||||
FUNCTION( ADD_LBPM_TEST EXEFILE ${ARGN} )
|
||||
ADD_LBPM_PROVISIONAL_TEST ( ${EXEFILE} )
|
||||
FUNCTION( ADD_${PROJ}_TEST EXEFILE ${ARGN} )
|
||||
ADD_PROJ_PROVISIONAL_TEST ( ${EXEFILE} )
|
||||
CREATE_TEST_NAME( ${EXEFILE} ${ARGN} )
|
||||
GET_TARGET_PROPERTY(EXE ${EXEFILE} LOCATION)
|
||||
STRING(REGEX REPLACE "\\$\\(Configuration\\)" "${CONFIGURATION}" EXE "${EXE}" )
|
||||
@ -330,13 +375,14 @@ FUNCTION( ADD_LBPM_TEST EXEFILE ${ARGN} )
|
||||
ELSE()
|
||||
ADD_TEST( ${TESTNAME} ${CMAKE_CURRENT_BINARY_DIR}/${EXEFILE} ${ARGN} )
|
||||
ENDIF()
|
||||
SET_TESTS_PROPERTIES( ${TESTNAME} PROPERTIES FAIL_REGULAR_EXPRESSION ".*FAILED.*" PROCESSORS 1 )
|
||||
SET_TESTS_PROPERTIES( ${TESTNAME} PROPERTIES FAIL_REGULAR_EXPRESSION "${TEST_FAIL_REGULAR_EXPRESSION}" PROCESSORS 1 )
|
||||
SET_TESTS_PROPERTIES( ${TESTNAME} PROPERTIES RESOURCE_LOCK ${EXEFILE} )
|
||||
ENDFUNCTION()
|
||||
|
||||
|
||||
# Add a executable as a weekly test
|
||||
FUNCTION( ADD_LBPM_WEEKLY_TEST EXEFILE PROCS ${ARGN} )
|
||||
ADD_LBPM_PROVISIONAL_TEST ( ${EXEFILE} )
|
||||
FUNCTION( ADD_${PROJ}_WEEKLY_TEST EXEFILE PROCS ${ARGN} )
|
||||
ADD_PROJ_PROVISIONAL_TEST ( ${EXEFILE} )
|
||||
GET_TARGET_PROPERTY(EXE ${EXEFILE} LOCATION)
|
||||
STRING(REGEX REPLACE "\\$\\(Configuration\\)" "${CONFIGURATION}" EXE "${EXE}" )
|
||||
IF( ${PROCS} STREQUAL "1" )
|
||||
@ -350,35 +396,29 @@ FUNCTION( ADD_LBPM_WEEKLY_TEST EXEFILE PROCS ${ARGN} )
|
||||
CREATE_TEST_NAME( "${EXEFILE}_${PROCS}procs_WEEKLY" ${ARGN} )
|
||||
ADD_TEST( ${TESTNAME} ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${PROCS} ${EXE} ${ARGN} )
|
||||
ENDIF()
|
||||
SET_TESTS_PROPERTIES( ${TESTNAME} PROPERTIES FAIL_REGULAR_EXPRESSION ".*FAILED.*" PROCESSORS ${PROCS} )
|
||||
SET_TESTS_PROPERTIES( ${TESTNAME} PROPERTIES FAIL_REGULAR_EXPRESSION "${TEST_FAIL_REGULAR_EXPRESSION}" PROCESSORS ${PROCS} )
|
||||
SET_TESTS_PROPERTIES( ${TESTNAME} PROPERTIES RESOURCE_LOCK ${EXEFILE} )
|
||||
ENDFUNCTION()
|
||||
|
||||
|
||||
# Add a executable as a parallel test
|
||||
FUNCTION( ADD_LBPM_TEST_PARALLEL EXEFILE PROCS ${ARGN} )
|
||||
ADD_LBPM_PROVISIONAL_TEST ( ${EXEFILE} )
|
||||
FUNCTION( ADD_${PROJ}_TEST_PARALLEL EXEFILE PROCS ${ARGN} )
|
||||
ADD_PROJ_PROVISIONAL_TEST ( ${EXEFILE} )
|
||||
GET_TARGET_PROPERTY(EXE ${EXEFILE} LOCATION)
|
||||
STRING(REGEX REPLACE "\\$\\(Configuration\\)" "${CONFIGURATION}" EXE "${EXE}" )
|
||||
IF ( USE_MPI )
|
||||
CREATE_TEST_NAME( "${EXEFILE}_${PROCS}procs" ${ARGN} )
|
||||
ADD_TEST( ${TESTNAME} ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${PROCS} ${EXE} ${ARGN} )
|
||||
SET_TESTS_PROPERTIES( ${TESTNAME} PROPERTIES FAIL_REGULAR_EXPRESSION ".*FAILED.*" PROCESSORS ${PROCS} )
|
||||
SET_TESTS_PROPERTIES( ${TESTNAME} PROPERTIES FAIL_REGULAR_EXPRESSION "${TEST_FAIL_REGULAR_EXPRESSION}" PROCESSORS ${PROCS} )
|
||||
SET_TESTS_PROPERTIES( ${TESTNAME} PROPERTIES RESOURCE_LOCK ${EXEFILE} )
|
||||
ENDIF()
|
||||
ENDFUNCTION()
|
||||
|
||||
|
||||
# Add a parallel test on 1, 2, and 4 processors
|
||||
MACRO( ADD_LBPM_TEST_1_2_4 EXENAME ${ARGN} )
|
||||
ADD_LBPM_TEST ( ${EXENAME} ${ARGN} )
|
||||
ADD_LBPM_TEST_PARALLEL ( ${EXENAME} 2 ${ARGN} )
|
||||
ADD_LBPM_TEST_PARALLEL ( ${EXENAME} 4 ${ARGN} )
|
||||
ENDMACRO()
|
||||
|
||||
|
||||
# Add a parallel test that may use both MPI and threads
|
||||
# This allows us to correctly compute the number of processors used by the test
|
||||
MACRO( ADD_LBPM_TEST_THREAD_MPI EXEFILE PROCS THREADS ${ARGN} )
|
||||
ADD_LBPM_PROVISIONAL_TEST( ${EXEFILE} )
|
||||
MACRO( ADD_${PROJ}_TEST_THREAD_MPI EXEFILE PROCS THREADS ${ARGN} )
|
||||
ADD_PROJ_PROVISIONAL_TEST( ${EXEFILE} )
|
||||
GET_TARGET_PROPERTY(EXE ${EXEFILE} LOCATION)
|
||||
STRING(REGEX REPLACE "\\$\\(Configuration\\)" "${CONFIGURATION}" EXE "${EXE}" )
|
||||
CREATE_TEST_NAME( "${EXEFILE}_${PROCS}procs_${THREADS}threads" ${ARGN} )
|
||||
@ -387,10 +427,13 @@ MACRO( ADD_LBPM_TEST_THREAD_MPI EXEFILE PROCS THREADS ${ARGN} )
|
||||
MESSAGE("Disabling test ${TESTNAME} (exceeds maximum number of processors ${TEST_MAX_PROCS}")
|
||||
ELSEIF ( ( ${PROCS} STREQUAL "1" ) AND NOT USE_EXT_MPI_FOR_SERIAL_TESTS )
|
||||
ADD_TEST ( ${TESTNAME} ${CMAKE_CURRENT_BINARY_DIR}/${EXEFILE} ${ARGN} )
|
||||
SET_TESTS_PROPERTIES( ${TESTNAME} PROPERTIES FAIL_REGULAR_EXPRESSION "${TEST_FAIL_REGULAR_EXPRESSION}" PROCESSORS ${TOT_PROCS} )
|
||||
SET_TESTS_PROPERTIES( ${TESTNAME} PROPERTIES RESOURCE_LOCK ${EXEFILE} )
|
||||
ELSEIF ( USE_MPI )
|
||||
ADD_TEST ( ${TESTNAME} ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${PROCS} ${EXE} ${ARGN} )
|
||||
ADD_TEST( ${TESTNAME} ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${PROCS} ${EXE} ${ARGN} )
|
||||
SET_TESTS_PROPERTIES( ${TESTNAME} PROPERTIES FAIL_REGULAR_EXPRESSION "${TEST_FAIL_REGULAR_EXPRESSION}" PROCESSORS ${TOT_PROCS} )
|
||||
SET_TESTS_PROPERTIES( ${TESTNAME} PROPERTIES RESOURCE_LOCK ${EXEFILE} )
|
||||
ENDIF()
|
||||
SET_TESTS_PROPERTIES ( ${TESTNAME} PROPERTIES FAIL_REGULAR_EXPRESSION ".*FAILED.*" PROCESSORS ${TOT_PROCS} )
|
||||
ENDMACRO()
|
||||
|
||||
|
||||
@ -411,7 +454,7 @@ MACRO( TEST_EXAMPLE EXAMPLE EXEFILE PROCS ${ARGN} )
|
||||
NAME example--${EXAMPLE}
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${EXAMPLE}"
|
||||
COMMAND ${MPIEXEC} ${MPIEXEC_NUMPROC_FLAG} ${PROCS} "${LBPM_INSTALL_DIR}/bin/${EXEFILE}" ${ARGN} )
|
||||
SET_TESTS_PROPERTIES( ${TESTNAME} PROPERTIES FAIL_REGULAR_EXPRESSION ".*FAILED.*" PROCESSORS 1 )
|
||||
SET_TESTS_PROPERTIES( ${TESTNAME} PROPERTIES FAIL_REGULAR_EXPRESSION "${TEST_FAIL_REGULAR_EXPRESSION}" PROCESSORS ${PROCS} RESOURCE_LOCK ${EXEFILE} )
|
||||
ENDMACRO()
|
||||
|
||||
|
||||
@ -475,7 +518,7 @@ ENDMACRO()
|
||||
|
||||
# add custom target distclean
|
||||
# cleans and removes cmake generated files etc.
|
||||
MACRO( ADD_DISTCLEAN )
|
||||
MACRO( ADD_DISTCLEAN ${ARGN} )
|
||||
SET(DISTCLEANED
|
||||
cmake.depends
|
||||
cmake.check_depends
|
||||
@ -521,14 +564,11 @@ MACRO( ADD_DISTCLEAN )
|
||||
ipch
|
||||
x64
|
||||
)
|
||||
FILE(WRITE ${CMAKE_CURRENT_BINARY_DIR}/distclean.bat "del /s /q /f " )
|
||||
FOREACH (fileToDelete ${DISTCLEANED})
|
||||
FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/distclean.bat "${fileToDelete} " )
|
||||
ENDFOREACH ()
|
||||
FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/distclean.bat "\n" )
|
||||
FOREACH (fileToDelete ${DISTCLEANED})
|
||||
FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/distclean.bat "for /d %%x in (${fileToDelete}) do rd /s /q \"%%x\"\n" )
|
||||
ENDFOREACH ()
|
||||
SET( DISTCLEAN_FILE "${CMAKE_CURRENT_BINARY_DIR}/distclean.bat" )
|
||||
FILE( WRITE "${DISTCLEAN_FILE}" "del /s /q /f " )
|
||||
APPEND_LIST( "${DISTCLEAN_FILE}" "${DISTCLEANED}" " " " " )
|
||||
FILE( APPEND "${DISTCLEAN_FILE}" "\n" )
|
||||
APPEND_LIST( "${DISTCLEAN_FILE}" "${DISTCLEANED}" "for /d %%x in (" ") do rd /s /q \"%%x\"\n" )
|
||||
ADD_CUSTOM_COMMAND(
|
||||
DEPENDS clean
|
||||
COMMENT "distribution clean"
|
||||
|
@ -306,11 +306,12 @@ public:
|
||||
void TwoPhase::ColorToSignedDistance(double Beta, double *ColorData, double *DistData){
|
||||
|
||||
double temp=0.5/Beta;
|
||||
for (int n=0; n<Nx*Ny*Nz; n++){
|
||||
/* for (int n=0; n<Nx*Ny*Nz; n++){
|
||||
double value = ColorData[n];
|
||||
DistData[n] = temp*log((1.0+value)/(1.0-value));
|
||||
}
|
||||
// for (int n=0; n<Nx*Ny*Nz; n++) DistData[n] = ColorData[n];
|
||||
*/
|
||||
for (int n=0; n<Nx*Ny*Nz; n++) DistData[n] = ColorData[n];
|
||||
}
|
||||
|
||||
void TwoPhase::ComputeDelPhi(){
|
||||
|
Loading…
Reference in New Issue
Block a user