test/CMakeLists.txt
author Alpar Juttner <alpar@cs.elte.hu>
Fri, 06 Jan 2012 16:27:06 +0100
changeset 1120 ee581a0ecfbf
parent 1069 b1b534ddb539
child 1122 0976225b5cae
child 1124 b1744d7bdb47
child 1149 157427808b40
permissions -rw-r--r--
Make CBC interface compatible with latest CBC releases

CBC now uses the CLP backend unconditionally
     1 INCLUDE_DIRECTORIES(
     2   ${PROJECT_SOURCE_DIR}
     3   ${PROJECT_BINARY_DIR}
     4 )
     5 
     6 LINK_DIRECTORIES(
     7   ${PROJECT_BINARY_DIR}/lemon
     8 )
     9 
    10 SET(TEST_WITH_VALGRIND "NO" CACHE STRING
    11   "Run the test with valgrind (YES/NO).")
    12 SET(VALGRIND_FLAGS "" CACHE STRING "Valgrind flags used by the tests.")
    13 
    14 SET(TESTS
    15   adaptors_test
    16   bfs_test
    17   circulation_test
    18   connectivity_test
    19   counter_test
    20   dfs_test
    21   digraph_test
    22   dijkstra_test
    23   dim_test
    24   edge_set_test
    25   error_test
    26   euler_test
    27   gomory_hu_test
    28   graph_copy_test
    29   graph_test
    30   graph_utils_test
    31   hao_orlin_test
    32   heap_test
    33   kruskal_test
    34   lgf_test
    35   maps_test
    36   matching_test
    37   min_cost_arborescence_test
    38   min_cost_flow_test
    39   path_test
    40   preflow_test
    41   radix_sort_test
    42   random_test
    43   suurballe_test
    44   time_measure_test
    45   unionfind_test
    46 )
    47 
    48 IF(LEMON_HAVE_LP)
    49   IF(${CMAKE_BUILD_TYPE} STREQUAL "Maintainer")
    50     ADD_EXECUTABLE(lp_test lp_test.cc)
    51   ELSE()
    52     ADD_EXECUTABLE(lp_test EXCLUDE_FROM_ALL lp_test.cc)
    53   ENDIF()
    54 
    55   SET(LP_TEST_LIBS lemon)
    56 
    57   IF(LEMON_HAVE_GLPK)
    58     SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${GLPK_LIBRARIES})
    59   ENDIF()
    60   IF(LEMON_HAVE_CPLEX)
    61     SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${CPLEX_LIBRARIES})
    62   ENDIF()
    63   IF(LEMON_HAVE_CLP)
    64     SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${COIN_CLP_LIBRARIES})
    65   ENDIF()
    66 
    67   TARGET_LINK_LIBRARIES(lp_test ${LP_TEST_LIBS})
    68   ADD_TEST(lp_test lp_test)
    69   ADD_DEPENDENCIES(check lp_test)
    70 
    71   IF(WIN32 AND LEMON_HAVE_GLPK)
    72     GET_TARGET_PROPERTY(TARGET_LOC lp_test LOCATION)
    73     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
    74     ADD_CUSTOM_COMMAND(TARGET lp_test POST_BUILD
    75       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/glpk.dll ${TARGET_PATH}
    76       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/libltdl3.dll ${TARGET_PATH}
    77       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/zlib1.dll ${TARGET_PATH}
    78     )
    79   ENDIF()
    80 
    81   IF(WIN32 AND LEMON_HAVE_CPLEX)
    82     GET_TARGET_PROPERTY(TARGET_LOC lp_test LOCATION)
    83     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
    84     ADD_CUSTOM_COMMAND(TARGET lp_test POST_BUILD
    85       COMMAND ${CMAKE_COMMAND} -E copy ${CPLEX_BIN_DIR}/cplex.dll ${TARGET_PATH}
    86     )
    87   ENDIF()
    88 ENDIF()
    89 
    90 IF(LEMON_HAVE_MIP)
    91   IF(${CMAKE_BUILD_TYPE} STREQUAL "Maintainer")
    92     ADD_EXECUTABLE(mip_test mip_test.cc)
    93   ELSE()
    94     ADD_EXECUTABLE(mip_test EXCLUDE_FROM_ALL mip_test.cc)
    95   ENDIF()
    96 
    97   SET(MIP_TEST_LIBS lemon)
    98 
    99   IF(LEMON_HAVE_GLPK)
   100     SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${GLPK_LIBRARIES})
   101   ENDIF()
   102   IF(LEMON_HAVE_CPLEX)
   103     SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${CPLEX_LIBRARIES})
   104   ENDIF()
   105   IF(LEMON_HAVE_CBC)
   106     SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${COIN_CBC_LIBRARIES})
   107   ENDIF()
   108 
   109   TARGET_LINK_LIBRARIES(mip_test ${MIP_TEST_LIBS})
   110   ADD_TEST(mip_test mip_test)
   111   ADD_DEPENDENCIES(check mip_test)
   112 
   113   IF(WIN32 AND LEMON_HAVE_GLPK)
   114     GET_TARGET_PROPERTY(TARGET_LOC mip_test LOCATION)
   115     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
   116     ADD_CUSTOM_COMMAND(TARGET mip_test POST_BUILD
   117       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/glpk.dll ${TARGET_PATH}
   118       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/libltdl3.dll ${TARGET_PATH}
   119       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/zlib1.dll ${TARGET_PATH}
   120     )
   121   ENDIF()
   122 
   123   IF(WIN32 AND LEMON_HAVE_CPLEX)
   124     GET_TARGET_PROPERTY(TARGET_LOC mip_test LOCATION)
   125     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
   126     ADD_CUSTOM_COMMAND(TARGET mip_test POST_BUILD
   127       COMMAND ${CMAKE_COMMAND} -E copy ${CPLEX_BIN_DIR}/cplex.dll ${TARGET_PATH}
   128     )
   129   ENDIF()
   130 ENDIF()
   131 
   132 FOREACH(TEST_NAME ${TESTS})
   133   IF(${CMAKE_BUILD_TYPE} STREQUAL "Maintainer")
   134     ADD_EXECUTABLE(${TEST_NAME} ${TEST_NAME}.cc)
   135   ELSE()
   136     ADD_EXECUTABLE(${TEST_NAME} EXCLUDE_FROM_ALL ${TEST_NAME}.cc)
   137   ENDIF()
   138   TARGET_LINK_LIBRARIES(${TEST_NAME} lemon)
   139     IF(TEST_WITH_VALGRIND)
   140       ADD_TEST(${TEST_NAME}
   141         valgrind --error-exitcode=1 ${VALGRIND_FLAGS}
   142         ${CMAKE_CURRENT_BINARY_DIR}/${TEST_NAME} )
   143     ELSE()
   144       ADD_TEST(${TEST_NAME} ${TEST_NAME})
   145     ENDIF()
   146   ADD_DEPENDENCIES(check ${TEST_NAME})
   147 ENDFOREACH()