CMakeLists.txt 2.7 KB
Newer Older
1
2
3
4
5
6
7
#
# Testing
#

ENABLE_TESTING()

INCLUDE(FindCUDA)
Peter Eastman's avatar
Peter Eastman committed
8
INCLUDE_DIRECTORIES(${CUDA_TOOLKIT_INCLUDE})
9

10
11
SET(OPENMM_BUILD_CUDA_DOUBLE_PRECISION_TESTS TRUE CACHE BOOL "Whether to build double precision versions of CUDA test cases")

12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
SET( INCLUDE_SERIALIZATION FALSE )
#SET( INCLUDE_SERIALIZATION TRUE )

IF( INCLUDE_SERIALIZATION )
    INCLUDE_DIRECTORIES(${OPENMM_DIR}/serialization/include)
    SET( SHARED_OPENMM_SERIALIZATION "OpenMMSerialization" )
ENDIF( INCLUDE_SERIALIZATION )

# Automatically create tests using files named "Test*.cpp"
FILE(GLOB TEST_PROGS "*Test*.cpp")
FOREACH(TEST_PROG ${TEST_PROGS})
    GET_FILENAME_COMPONENT(TEST_ROOT ${TEST_PROG} NAME_WE)

    # Link with shared library
    ADD_EXECUTABLE(${TEST_ROOT} ${TEST_PROG})
    TARGET_LINK_LIBRARIES(${TEST_ROOT} ${SHARED_TARGET})
28
    IF (APPLE)
29
30
31
        SET_TARGET_PROPERTIES(${TEST_ROOT} PROPERTIES LINK_FLAGS "${EXTRA_COMPILE_FLAGS} -F/Library/Frameworks -framework CUDA" COMPILE_FLAGS "${EXTRA_COMPILE_FLAGS}")
    ELSE (APPLE)
        SET_TARGET_PROPERTIES(${TEST_ROOT} PROPERTIES LINK_FLAGS "${EXTRA_COMPILE_FLAGS}" COMPILE_FLAGS "${EXTRA_COMPILE_FLAGS}")
32
    ENDIF (APPLE)
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62

    IF( ${TEST_ROOT} STREQUAL "TestCUDAGBSAOBCForce2" )

        SET(DEFINE_STRING "-DTEST_PLATFORM=1 ")
        IF( INCLUDE_SERIALIZATION )
            SET(DEFINE_STRING "${DEFINE_STRING} -DOPENMM_SERIALIZE ")
        ENDIF( INCLUDE_SERIALIZATION )
    
        # nonbond

        SET(NONBOND_DEFINE_STRING "${DEFINE_STRING} -DIMPLICIT_SOLVENT=0")
        SET(NONBOND_TEST "TestCUDANonbondedForce2")
        ADD_EXECUTABLE(${NONBOND_TEST} ${TEST_PROG})

        SET_TARGET_PROPERTIES(${NONBOND_TEST} PROPERTIES COMPILE_FLAGS ${NONBOND_DEFINE_STRING} )
        ADD_TEST(${NONBOND_TEST} ${EXECUTABLE_OUTPUT_PATH}/${NONBOND_TEST})

        # OBC

        SET(DEFINE_STRING "${DEFINE_STRING} -DIMPLICIT_SOLVENT=1")
        SET_TARGET_PROPERTIES(${TEST_ROOT} PROPERTIES COMPILE_FLAGS ${DEFINE_STRING} )

        IF( INCLUDE_SERIALIZATION )
            TARGET_LINK_LIBRARIES(${NONBOND_TEST} ${SHARED_TARGET} ${SHARED_OPENMM_SERIALIZATION} )
            TARGET_LINK_LIBRARIES(${TEST_ROOT} ${SHARED_TARGET} ${SHARED_OPENMM_SERIALIZATION} )
        ELSE( INCLUDE_SERIALIZATION )
            TARGET_LINK_LIBRARIES(${NONBOND_TEST} ${SHARED_TARGET})
        ENDIF( INCLUDE_SERIALIZATION )

    ENDIF( ${TEST_ROOT} STREQUAL "TestCUDAGBSAOBCForce2" )
63
64
65
66
67
    ADD_TEST(${TEST_ROOT}Single ${EXECUTABLE_OUTPUT_PATH}/${TEST_ROOT} single)
    IF (OPENMM_BUILD_CUDA_DOUBLE_PRECISION_TESTS)
        ADD_TEST(${TEST_ROOT}Mixed ${EXECUTABLE_OUTPUT_PATH}/${TEST_ROOT} mixed)
        ADD_TEST(${TEST_ROOT}Double ${EXECUTABLE_OUTPUT_PATH}/${TEST_ROOT} double)
    ENDIF(OPENMM_BUILD_CUDA_DOUBLE_PRECISION_TESTS)
68
69

ENDFOREACH(TEST_PROG ${TEST_PROGS})