test/CMakeLists.txt
author Alpar Juttner <alpar@cs.elte.hu>
Sat, 25 May 2013 06:59:31 +0200
changeset 1064 fc3854d936f7
parent 1000 404b98971e1f
child 1065 490d89913a17
permissions -rw-r--r--
Enable/disable options for LP/MIP backends (#465)
     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   arc_look_up_test
    17   bellman_ford_test
    18   bfs_test
    19   circulation_test
    20   connectivity_test
    21   counter_test
    22   dfs_test
    23   digraph_test
    24   dijkstra_test
    25   dim_test
    26   edge_set_test
    27   error_test
    28   euler_test
    29   fractional_matching_test
    30   gomory_hu_test
    31   graph_copy_test
    32   graph_test
    33   graph_utils_test
    34   hao_orlin_test
    35   heap_test
    36   kruskal_test
    37   lgf_test
    38   maps_test
    39   matching_test
    40   max_cardinality_search_test
    41   max_clique_test
    42   min_cost_arborescence_test
    43   min_cost_flow_test
    44   min_mean_cycle_test
    45   nagamochi_ibaraki_test
    46   path_test
    47   planarity_test
    48   preflow_test
    49   radix_sort_test
    50   random_test
    51   suurballe_test
    52   time_measure_test
    53   unionfind_test
    54 )
    55 
    56 IF(LEMON_HAVE_LP)
    57   IF(${CMAKE_BUILD_TYPE} STREQUAL "Maintainer")
    58     ADD_EXECUTABLE(lp_test lp_test.cc)
    59   ELSE()
    60     ADD_EXECUTABLE(lp_test EXCLUDE_FROM_ALL lp_test.cc)
    61   ENDIF()
    62 
    63   SET(LP_TEST_LIBS lemon)
    64 
    65   IF(LEMON_HAVE_GLPK)
    66     SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${GLPK_LIBRARIES})
    67   ENDIF()
    68   IF(LEMON_HAVE_CPLEX)
    69     SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${ILOG_LIBRARIES})
    70   ENDIF()
    71   IF(LEMON_HAVE_CLP)
    72     SET(LP_TEST_LIBS ${LP_TEST_LIBS} ${COIN_CLP_LIBRARIES})
    73   ENDIF()
    74 
    75   TARGET_LINK_LIBRARIES(lp_test ${LP_TEST_LIBS})
    76   ADD_TEST(lp_test lp_test)
    77   ADD_DEPENDENCIES(check lp_test)
    78 
    79   IF(WIN32 AND LEMON_HAVE_GLPK)
    80     GET_TARGET_PROPERTY(TARGET_LOC lp_test LOCATION)
    81     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
    82     ADD_CUSTOM_COMMAND(TARGET lp_test POST_BUILD
    83       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/glpk.dll ${TARGET_PATH}
    84       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/libltdl3.dll ${TARGET_PATH}
    85       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/zlib1.dll ${TARGET_PATH}
    86     )
    87   ENDIF()
    88 
    89   IF(WIN32 AND LEMON_HAVE_CPLEX)
    90     GET_TARGET_PROPERTY(TARGET_LOC lp_test LOCATION)
    91     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
    92     ADD_CUSTOM_COMMAND(TARGET lp_test POST_BUILD
    93       COMMAND ${CMAKE_COMMAND} -E copy ${ILOG_CPLEX_DLL} ${TARGET_PATH}
    94     )
    95   ENDIF()
    96 ENDIF()
    97 
    98 IF(LEMON_HAVE_MIP)
    99   IF(${CMAKE_BUILD_TYPE} STREQUAL "Maintainer")
   100     ADD_EXECUTABLE(mip_test mip_test.cc)
   101   ELSE()
   102     ADD_EXECUTABLE(mip_test EXCLUDE_FROM_ALL mip_test.cc)
   103   ENDIF()
   104 
   105   SET(MIP_TEST_LIBS lemon)
   106 
   107   IF(LEMON_HAVE_GLPK)
   108     SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${GLPK_LIBRARIES})
   109   ENDIF()
   110   IF(LEMON_HAVE_CPLEX)
   111     SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${ILOG_LIBRARIES})
   112   ENDIF()
   113   IF(LEMON_HAVE_CBC)
   114     SET(MIP_TEST_LIBS ${MIP_TEST_LIBS} ${COIN_CBC_LIBRARIES})
   115   ENDIF()
   116 
   117   TARGET_LINK_LIBRARIES(mip_test ${MIP_TEST_LIBS})
   118   ADD_TEST(mip_test mip_test)
   119   ADD_DEPENDENCIES(check mip_test)
   120 
   121   IF(WIN32 AND LEMON_HAVE_GLPK)
   122     GET_TARGET_PROPERTY(TARGET_LOC mip_test LOCATION)
   123     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
   124     ADD_CUSTOM_COMMAND(TARGET mip_test POST_BUILD
   125       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/glpk.dll ${TARGET_PATH}
   126       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/libltdl3.dll ${TARGET_PATH}
   127       COMMAND ${CMAKE_COMMAND} -E copy ${GLPK_BIN_DIR}/zlib1.dll ${TARGET_PATH}
   128     )
   129   ENDIF()
   130 
   131   IF(WIN32 AND LEMON_HAVE_CPLEX)
   132     GET_TARGET_PROPERTY(TARGET_LOC mip_test LOCATION)
   133     GET_FILENAME_COMPONENT(TARGET_PATH ${TARGET_LOC} PATH)
   134     ADD_CUSTOM_COMMAND(TARGET mip_test POST_BUILD
   135       COMMAND ${CMAKE_COMMAND} -E copy ${ILOG_CPLEX_DLL} ${TARGET_PATH}
   136     )
   137   ENDIF()
   138 ENDIF()
   139 
   140 FOREACH(TEST_NAME ${TESTS})
   141   IF(${CMAKE_BUILD_TYPE} STREQUAL "Maintainer")
   142     ADD_EXECUTABLE(${TEST_NAME} ${TEST_NAME}.cc)
   143   ELSE()
   144     ADD_EXECUTABLE(${TEST_NAME} EXCLUDE_FROM_ALL ${TEST_NAME}.cc)
   145   ENDIF()
   146   TARGET_LINK_LIBRARIES(${TEST_NAME} lemon)
   147     IF(TEST_WITH_VALGRIND)
   148       ADD_TEST(${TEST_NAME}
   149         valgrind --error-exitcode=1 ${VALGRIND_FLAGS}
   150         ${CMAKE_CURRENT_BINARY_DIR}/${TEST_NAME} )
   151     ELSE()
   152       ADD_TEST(${TEST_NAME} ${TEST_NAME})
   153     ENDIF()
   154   ADD_DEPENDENCIES(check ${TEST_NAME})
   155 ENDFOREACH()