Adding examples to cmake

This commit is contained in:
Mark Berrill 2014-06-18 13:54:12 -04:00
parent f8bb4d0603
commit f232b92978
6 changed files with 43 additions and 8 deletions

View File

@ -108,7 +108,7 @@ IF ( NOT ONLY_BUILD_DOCS )
ENDIF()
INSTALL_LBPM_TARGET( lbpm-wia )
ADD_SUBDIRECTORY( tests )
INSTALL( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/example DESTINATION ${LBPM_INSTALL_DIR} )
ADD_SUBDIRECTORY( example )
ENDIF()

View File

@ -296,9 +296,9 @@ FUNCTION( ADD_LBPM_PROVISIONAL_TEST EXEFILE )
# The correct target has already been added
ELSE()
# We are trying to add 2 different tests with the same name
MESSAGE ( "Existing test: ${tmp}" )
MESSAGE ( "New test: ${CMAKE_CURRENT_BINARY_DIR}/${EXEFILE}" )
MESSAGE ( FATAL_ERROR "Trying to add 2 different tests with the same name" )
MESSAGE( "Existing test: ${tmp}" )
MESSAGE( "New test: ${CMAKE_CURRENT_BINARY_DIR}/${EXEFILE}" )
MESSAGE( FATAL_ERROR "Trying to add 2 different tests with the same name" )
ENDIF()
ENDFUNCTION()
@ -388,6 +388,27 @@ MACRO( ADD_LBPM_TEST_THREAD_MPI EXEFILE PROCS THREADS ${ARGN} )
ENDMACRO()
# Copy an example folder
MACRO( INSTALL_EXAMPLE EXAMPLE )
INSTALL( DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${EXAMPLE}" DESTINATION "${LBPM_INSTALL_DIR}/example" )
ENDMACRO()
# Copy an example folder
MACRO( TEST_EXAMPLE EXAMPLE EXEFILE PROCS ${ARGN} )
ADD_CUSTOM_TARGET(
${EXAMPLE} ALL
${CMAKE_COMMAND} -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}/${EXAMPLE}" "${CMAKE_CURRENT_BINARY_DIR}/${EXAMPLE}"
DEPENDS ${EXEFILE}
)
ADD_TEST(
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 )
ENDMACRO()
# Macro to check if a flag is enabled
MACRO ( CHECK_ENABLE_FLAG FLAG DEFAULT )
IF( NOT DEFINED ${FLAG} )

View File

@ -19,7 +19,6 @@ ELSEIF( ${HOSTNAME} MATCHES "vayu" )
SET( COVERAGE_COMMAND /usr/bin/gcov )
SET( VALGRIND_COMMAND /usr/local/bin/valgrind )
SET( CUDA_FLAGS "--use_fast_math -Xptxas=-v -arch=sm_20" )
SET( CUDA_HOST_COMPILER "g++" )
SET( CTEST_CMAKE_GENERATOR "Unix Makefiles" )
SET( CC "mpicc" )
SET( CXX "mpicxx" )

13
example/CMakeLists.txt Normal file
View File

@ -0,0 +1,13 @@
# Copy the examples to the install folder
INSTALL_EXAMPLE( Bubble )
INSTALL_EXAMPLE( ConstrainedBubble )
INSTALL_EXAMPLE( Sph1896 )
# Create unit tests for each example
# TEST_EXAMPLE( example exe N_procs )
TEST_EXAMPLE( Bubble TestBubble 1 )
TEST_EXAMPLE( Sph1896 lb2_Color_wia_mpi 27 )
TEST_EXAMPLE( ConstrainedBubble lb2_Color_wia_mpi 1 )

View File

@ -1,5 +1,6 @@
# Copy files for the tests
INSTALL_LBPM_EXE( lb2_Color_wia_mpi )
INSTALL_LBPM_EXE( TestBubble )
CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/cylindertest ${CMAKE_CURRENT_BINARY_DIR}/cylindertest COPYONLY )

View File

@ -245,9 +245,10 @@ int main(int argc, char **argv)
if (nprocs != nprocx*nprocy*nprocz){
printf("Fatal error in processor number! \n");
printf("nprocx = %i \n",nprocx);
printf("nprocy = %i \n",nprocy);
printf("nprocz = %i \n",nprocz);
printf(" nprocx = %i \n",nprocx);
printf(" nprocy = %i \n",nprocy);
printf(" nprocz = %i \n",nprocz);
return 1;
}
if (rank==0){