Merge branch 'master' of github.com:JamesEMcClure/LBPM-WIA

This commit is contained in:
James McClure 2015-01-30 11:48:50 -05:00
commit 90401beac7
5 changed files with 433 additions and 86 deletions

View File

@ -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 )

View File

@ -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
View 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")

View File

@ -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"

View File

@ -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(){